【问题标题】:How to copy a matrix in a bigger matrix in CUDA如何在 CUDA 中将矩阵复制到更大的矩阵中
【发布时间】:2013-04-26 06:38:52
【问题描述】:

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

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

big matrix:     400x400
small matrices: 200x200

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

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

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

【问题讨论】:

    标签: cuda cublas cula


    【解决方案1】:

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

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

    【讨论】:

    • 这个程序就是我要找的。顺便说一句,我不打算改变我的主要维度。我只需要一种方法来指定前导维度,以便在查看线性内存时考虑一定的差距。
    猜你喜欢
    • 2011-05-02
    • 2013-04-12
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多