如何在CUDA中的较大矩阵中复制矩阵

时间:2013-05-02 06:57:57

标签: cuda cublas cula

我想在我的GPU上设置一个大矩阵,用CULA解决相应的方程式系统。

为了解问题,请为您提供一些数字:

big matrix:     400x400
small matrices: 200x200

现在我想将小矩阵的每个季度(100x100)复制到第二个矩阵的特定部分。

我找到了两个可能但很明显很慢的例子:cublasSetMatrixcublasGetMatrix支持领先维度的规范,所以我可以将部分放在我想要的位置,但必须将矩阵复制回来给主人。 另一个例子是cudaMemcpy,它不支持领先维度。在这里,我可以手动复制每一行/列(目前我不确定此例程使用的是什么,数据来自Fortran)。但是这样,我应该得到很大的开销......

有没有比编写我自己的内核更好的方法来复制矩阵?

1 个答案:

答案 0 :(得分:0)

你可以修改你的Q.我猜你找到的方法既可以改变领先维度又可以做D2Dcpy。

here所示,常规cudaMemcpy2D()可以执行此操作。