一般问题:线程的数量必须等于我想要处理的元素的大小?例如:如果我有矩阵M [a] [b]。我必须分配(aXb)线程,或者我可以分配比我需要的更多的线程(比ab更多)?因为专注于元素aXb + 1的线程会将我们抛出,不是吗?或者解决方案是放置一个条件(只有在范围(ab))?关于在cuda中组织线程
具体问题:let是M [x] [y] x行y列的矩阵。考虑1000 < = x < = 300000和y < = 100.我如何以这种方式组织线程,这对于x和y的每个输入都是通用的。我希望每个线程都会关注矩阵中的一个元素。 CC = 2.1谢谢!
您可以分配更多,或者甚至可以分配更少。任何一种方法都可以工作。如果你分配的线程多于所需的线程数,你的内核应该包含一个条件测试来确保每个线程都在有效的数据上运行。如果你分配的线程少于所需的线程数,你的内核应该包含[某种类型的循环](https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/ )涵盖所有数据项目。 –