我需要使用CUDA对矩阵(在内存中基本上是一个浮点值向量)的每个元素进行平方根运算。
矩阵的尺寸事先未知,可能会有所变化[2-20,000]。
我在想:我可以像Jonathan在这里建议的那样使用一个块维度:
int thread_id = blockDim.x * block_id + threadIdx.x;
检查线程ID是否小于行数乘以列数...这很简单和直接。
但是,为什么我应该使用两个(甚至三个)块网格维度来执行这样的计算(记住我毕竟有一个矩阵),而不是只使用一个呢?
我在考虑一些协同问题,比如使所有线程按顺序读取值。