本次代码实现GPU代码中使用类语法.
经过多次实验,发现类语法GPU是可以使用的但是是有条件的.
比如__global__ 修饰的函数是不能写在类中的.__device__是可以写在类中的而且__device__是不能开线程的.
例如:
__device__ void add(int igdx)
{
printf("hello GPU = %d\n",igdx);
}
add<<<1,4>>>(m);
这样写是不对的.
只能写add(m);
上一个总体的代码:
里面调用的有GPU类语法,GPU和函数的嵌套,当然嵌套核函数是需要条件的.
#include <cuda_runtime.h>
#include <iostream>
class CUDAdem
{
public:
__device__ void add(int igdx)
{
printf("hello GPU = %d\n",igdx);
}
};
__global__ void add()
{
int igdx = threadIdx.x;
CUDAdem cdmo;
cdmo.add(igdx);
}
int main()
{
add<<<1,4>>>();
cudaDeviceReset();
printf("hello world!\n");
return 0;
}