我需要使用CUDA将矩阵的每个元素(基本上是浮点值的向量一次在内存中)平方根.
矩阵尺寸不是'先验',可能会有所不同[2-20.000].
我想知道:我可能会使用(如Jonathan建议的那样)一个块尺寸,如下所示:
int thread_id = blockDim.x * block_id + threadIdx.x;
Run Code Online (Sandbox Code Playgroud)
并检查thread_id是否低于rows*columns ...这非常简单直接.
但是,为什么我应该使用两个(甚至三个)块网格尺寸来执行这样的计算(请记住我有一个矩阵,而不是只有一个),是否有任何特殊的性能原因?
我正在考虑合并问题,比如让所有线程按顺序读取值