我知道 Disptach(x, y, z) 将定义实例化的线程组数, numthreads(n, m, p) 给出每个组的大小。
结合在一起,Dispatch 和 numthreads 给出了线程的总数。我还理解调度参数用于将参数传递给每个线程。
问题:
1) I 组 J 线程和 I 线程上的 J 组之间有性能差异吗?两个选项都提供相同数量的线程。
2)假设我必须处理一个仅在运行时才知道大小的二维矩阵,使用 Dispatch(DimX, DimY, 1) 和 numthreads(1, 1, 1) 很方便,这样我每个矩阵元素都有一个线程其位置由 DTid.xy 给出。由于 numthreads() 参数是在编译时确定的,我如何才能获得处理具有不是线程组大小倍数且在编译时未知的矩阵所需的确切线程数?