-1

我正在寻找一些专用于典型密集矩阵乘法的特殊函数(CUDA),例如 A*B,其中 A 的大小为 6*n,B 的大小为 n*6,n 非常大(n=2 ^24)。我已经使用 CUBLAS 和其他一些库来测试这个示例,在 CUBLAS 中,对于这个示例,我们使用 6*6=36 个线程,这与 GPU 的总并行度相差甚远,所以我将 A 和 B 拆分为子矩阵(向量)然后对它们中的每一个实现点积函数,性能得到了很好的提升。问题是,在这种情况下,我们需要启动 36 个 CUDA 内核,并且在它们之间有很多相同的数据足迹(相同的数据已经从 GPU 的全局内存中访问过多次)。所以我问这种问题是否存在任何解决方案。

4

1 回答 1

1

我最近为我的一个客户编写了这样一个矩阵乘法例程。诀窍是通过将长的内部总和分成几个较小的总和来提取更多的并行性。然后使用单独的内核启动来计算部分总和。

于 2013-05-29T12:41:07.820 回答