请各位大侠确认一下我的想法是否正确。
假设我有一个核函数mykernel(double *array)
。我希望内核中的代码被执行 128 次。从主机调用内核时,我可以通过两种方式执行此操作:
mykernel<<<128, 1>>>(myarray);
//or
mykernel<<<1, 128>>>(myarray);
第一次调用时,我将创建 128 个块,每个块运行 1 个线程。在第二次调用中,我将创建 1 个具有 128 个线程的块。但是由于内核内部的代码在同一个数组上工作,所以使用第二次调用效率更高。
我是傻子还是应该坚持学习CUDA?:)