转置时CUBLAS中前导维度的澄清

转置时CUBLAS中前导维度的澄清,c,matrix,cuda,gpgpu,cublas,C,Matrix,Cuda,Gpgpu,Cublas,对于矩阵a,仅说明相应的前导尺寸参数lda指: 用于存储矩阵A的二维数组的前导维数 因此,我假设这只是给定CUBLAS列主要存储格式的A的行数时,领导维度指的是什么?< /强> 没有变化。前导维度始终指数组第一维度的长度。数据顺序标志(正常、转置、共轭)仅向BLAS指示数组中数据的存储方式。它们对数组本身没有影响,数组本身总是按列主顺序排列,并且需要一个LDA值来在2D中进行索引 因此,无论矩阵数据是否以转置形式存储,一个m x n数组始终具有LDA>=m.如果使用行主表示法,“列”的数量将是

对于矩阵
a
,仅说明相应的前导尺寸参数
lda
指:

用于存储矩阵A的二维数组的前导维数


因此,我假设这只是给定CUBLAS列主要存储格式的
A
的行数<但是,当我们考虑<代码> OP(A)< /代码>时,领导维度指的是什么?< /强>

没有变化。前导维度始终指数组第一维度的长度。数据顺序标志(正常、转置、共轭)仅向BLAS指示数组中数据的存储方式。它们对数组本身没有影响,数组本身总是按列主顺序排列,并且需要一个LDA值来在2D中进行索引


因此,无论矩阵数据是否以转置形式存储,一个m x n数组始终具有LDA>=m.

如果使用行主表示法,“列”的数量将是前导维度,反之亦然,列主表示法中“行”的数量

从你的回答中,我可以得出结论,LDA=m。为什么要在那里签“>”:/+1顺便说一句。也许这终究能回答这个问题:@gsamaras:想想BLAS调用何时在子矩阵上运行,或者当矩阵的间距与内存控制器页面大小或缓存线大小或其他匹配时,硬件何时工作得更好。看,谢谢!你的答案应该是我所接受的。“BLAS中的LDA参数实际上是线性内存中矩阵的步长。”| | | |现在,我想跳转到分布式情况,因此如果您有时间,也许您可以对这个问题进行讨论: