一个简单的例子
#include<iostream>
__global__ void add(int a,int b,int *c)
{
*c = a+b;
}
int main()
{
int c;
int *dev_c;
cudaMalloc((void **)&dev_c,sizeof(int));
add<<<1,1>>>(2,7,dev_c);
cudaMemcpy(&c,dev_c,sizeof(int),cudaMemcpyDeviceToHost);
std::cout<<c<<std::endl;
cudaFree(dev_c);
return 0;
}
__global__:告诉编译器,函数编译为在设备运行而不是主机运行;
add<<<x,y>>>():表示对函数的调用,x表示启动的线程块,y表示每个线程块中线程的个数;
相关函数参考链接:https://blog.csdn.net/limengjuhanxin/article/details/88386492