CUDA 的减少完全让我感到困惑!首先,Mark Harris 的本教程和 Mike Giles 的本教程都使用了声明extern __shared__ temp[]
。声明时在 C 中使用关键字extern
,但分配发生在“elsehre”(例如,通常在另一个 C 文件上下文中)。这里的相关性是extern
什么?我们为什么不使用:
__shared__ float temp[N/2];
例如?或者我们为什么不声明temp
为全局变量,例如
#define N 1024
__shared__ float temp[N/2];
__global__ void sum(float *sum, float *data){ ... }
int main(){
...
sum<<<M,L>>>(sum, data);
}
我还有一个问题?每个块应该使用多少块和线程来调用求和内核?我试过这个例子(基于this)。
注意:您可以在此处找到有关我的设备的信息。