CUDA核函数:
要写在显示芯片上执行的程序。在 CUDA 中,在函数前面加上__global__
表示这个函式是要在显示芯片上执行的,所以我们只要在正常函数之前加上一个__global__
就行了:
// __global__ 函数 (GPU上执行) 计算立方和
__global__ static void sumOfSquares(int *num, int* result)
{
int sum = 0;
int i;
for (i = 0; i < DATA_SIZE; i++) {
sum += num[i] * num[i] * num[i];
}
*result = sum;
}
在显示芯片上执行的程序有一些限制,首先最明显的一个限制——不能有传回值,还有一些其他的限制,后面会慢慢提到。
执行核函数:
写好核函数之后需要让CUDA执行这个函数。
在 CUDA 中,要执行一个核函数,使用以下的语法:
函数名称<<<block 数目, thread 数目, shared memory 大小>>>(