CUDA组织并行编程

组织并行编程

从前面的例子可以看出,如果使用了合适的网格和块大小来正确地组织线程,那么可以对内核性能产生很大的影响。在向量加法的例子中,为了实现最佳性能我们调整了块的大小,并基于块大小和向量数据大小计算出了网格大小。

现在通过一个矩阵加法的例子说明这一点。对于矩阵运算,传统的方法是在内核中使用一个包含二维网格与二位块的布局来组织线程。但是,这种传统的方法无法获得最佳性能。在矩阵加法中使用以下布局将有助于了解更多关于网格和块的启发性的用法:

  1. 有二维线程块构成的二维网格
  2. 由一维线程块构成的一维网格
  3. 由一维线程块构成的二维网格

参考资料

CUDA C编程权威指南 程润伟,Max Grossman(美),Ty Mckercher


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!