据我了解, BLAS 3 级矩阵/矩阵例程采用参数lda
等ldb
,允许传递“跨步”矩阵。例如,如果我有以下 2 x 2 列主矩阵:
|1 2|
|3 4|
|x x|
其中 x 是我想要忽略的数据,我可以使用参数来表示它m = 2, n = 2, lda=3
(对于列主矩阵)。我的问题是,可以使用 BLAS 例程复制这样的矩阵吗?
如果步幅等于矩阵维数(即矩阵没有步幅),则使用向量复制过程(例如dcopy(m*n,A,1,B,1)
执行此操作)是微不足道的。当矩阵元素不连续时有没有办法做到这一点,即 lda/stride != m
我能想到的一种方法是重复调用dcopy
增加偏移量,同时保持incrx
参数等于 m。似乎效率不高。或者dgemm
B = I 和 C = 0。