CUDA c++加速


c++
#include <stdio.h> // 包含标准输入输出库头文件
#include <cuda_runtime.h> // 包含CUDA运行时库头文件


void CPUFunction()
{
  printf("运行在CPU中的程序\n"); // 在CPU上打印一条消息
}

// __global__表示这个函数在GPU上可全局调用
__global__ void GPUFunction() // 定义一个在GPU上运行的函数
{
  printf("运行在GPU中的程序\n"); // 在GPU上打印一条消息
}



int main()
{
  CPUFunction(); // 调用在CPU上运行的函数
    // 每个线程块内部的线程共享一些资源,如共享内存和寄存器
  GPUFunction<<<1, 1>>>(); // 在GPU上启动一个线程块,每个线程块中有一个线程,执行GPUFunction
  GPUFunction<<<1, 10>>>(); //配置为在具有 10 线程的单个线程块中运行后,将运行 10 次。
  GPUFunction<<<10, 1>>>(); //配置为在 10 个线程块(每个均具有单线程)中运行后,将运行 10 次。
  GPUFunction<<<10, 10>>>(); //配置为在 10 个线程块(每个均具有 10 线程)中运行后,将运行 100 次。
  cudaDeviceSynchronize(); // 等待GPU上的所有任务完成
}