【发布时间】:2015-10-02 06:14:54
【问题描述】:
我试图理解 cuBLAS 中领先维度的概念。提到lda 必须始终大于或等于矩阵中的行数。
如果我有一个 100x100 的矩阵 A,我想访问 A(90:99, 0:99),cublasSetMatrix 的参数是什么? lda 指定同一列中元素之间的行数(在本例中为 100),但我将在哪里指定 90?我只能通过调整*A看到方法。
函数定义为:
cublasStatus_t cublasSetMatrix(int rows, int cols, int elemSize, const void *A, int lda, void *B, int ldb)
而且我还猜测,鉴于长度限制,我将无法传输 5x5 矩阵的右下角 3x3 部分。
【问题讨论】:
-
答案取决于矩阵的存储顺序。 A以哪种方式存储?
-
@talonmies 列专业
-
是的,您可以使用 CUBLAS(或任何 BLAS,就此而言)访问任意子矩阵。请解码您的符号。
A(90:99, 0:99)= 第 90 行到第 0 行的第 99 列?为什么以相反的顺序指定行? -
我自己也很困惑。我的意思是 90-99 列,每列有 100 行,索引为 0-99。