一个CUDA程序包含了两个部分代码,在CPU上运行的主机代码和肆旦滚在GPU上裂余运行的设备代码。
而CPU上线程是重量级实体,可以开启1~32个线程,且上下文切换较迟行为缓慢,GPU上线程是高度轻量级的,可以开几百甚至上千个线程,所以CUDA开不了上亿线程。
__global__ static void sumOfSquares(int *gpudata, int* result) 你把static去掉!另敏咐薯外我简芦不明白你的global函数里面为什么没有定义线程的索引啊。那你那些数据运算是在哪桥者运算的啊。我觉得应该定义int bx=blockIdx.x之类的变量啊,你这程序就是在一个线程中执行,没有并行。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)