1

我想在我的 GPU 上设置一个大矩阵来用 CULA 求解相应的方程组。

给你一些数字,以了解问题:

big matrix:     400x400
small matrices: 200x200

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

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

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

4

1 回答 1

0

您可以修改您的 Q。我猜您正在寻找一种既可以更改前导维度又可以执行 D2Dcpy 的方法。

有一个例程可以做到这一点,如此cudaMemcpy2D()所示。

于 2013-05-02T09:52:00.180 回答