gpu上的大矩阵乘法

时间:2013-01-28 07:06:06

标签: cuda gpu gpgpu matrix-multiplication

我需要在GPU上使用CUDA在大矩阵上实现矩阵乘法。单独每个矩阵的大小大于GPU内存。所以我认为我需要一种算法来有效地做到这一点。我绕着互联网走了但找不到任何东西。任何人都可以给我这些算法的名称或链接。

谢谢

1 个答案:

答案 0 :(得分:16)

对此没有真正的算法;一般来说,这些类型的线性代数运算,其中整个问题没有同时存储在存储器中,被称为“核心外”操作。

要解决这个问题,您不需要特别复杂的算法,只需要CUBLAS库和铅笔和纸。例如,您可以像这样分解矩阵产品:

enter image description here

它为您提供了四个独立的子矩阵乘法运算。这些可以使用非常直接的主机代码使用四次调用CUBLAS gemm来计算。您可以将想法扩展到匹配问题大小和GPU容量所需的子矩阵。同样的原理也可以用于在多个GPU上实现矩阵乘法问题(例如,参见this question)。

另一方面,您可以在哈佛大学开发的SciGPU-GEMM代码库和HPL-CUDA linpack实现(免责声明:我隶属于后一个代码库)中找到这个精确构思的工作实现。 / p>

相关问题