Sor*_*ram 7 cuda gpu gpgpu matrix-multiplication
我需要在GPU上使用CUDA实现矩阵乘法,以获得大型矩阵.单独每个矩阵的大小大于GPU内存.所以我认为我需要一种算法来有效地做到这一点.我绕着互联网走了但找不到任何东西.任何人都可以给我这样的算法的名称或链接.
谢谢
tal*_*ies 17
对此没有真正的算法; 通常,这些类型的线性代数运算,其中整个问题没有同时存储在存储器中,被称为"核心外"操作.
要解决这个问题,您不需要特别复杂的算法,只需要CUBLAS库和铅笔和纸.例如,您可以像这样分解矩阵产品:
它为您提供了四个独立的子矩阵乘法运算.这些可以使用非常直接的主机代码使用四次调用CUBLAS gemm来计算.您可以将想法扩展到匹配问题大小和GPU容量所需的子矩阵.同样的原理也可用于在多个GPU上实现矩阵乘法问题(例如,请参阅此问题).
另外,您可以在哈佛开发的SciGPU-GEMM代码库和HPL-CUDA linpack实现中找到这个精确构思的工作实现(免责声明:我隶属于后者代码库).