开发者

cblas_dgemm - correct parameters : incorrect error message

I am trying to compute: C = 1*(A*B') + 0*C using cblas_dgemm(). As far as I can tell, the parameters are correct. The error message itself does not make sense:

"ldb must be >= MAX(K,1): ldb=3 K=3Parameter 11 to routine cblas_dgemm was incorrect" 

But, ldb = k = 3! Here is the detailed output of all three matrices and the parameters.

 A:  (m x n: 4x3), lda = 4
 B': (n x k: 3x9), lda = 3
 C:  (m x k, 4x9), ldc = 4


A: 
Dense matrix: 0xfe5cf0, nrows = 4, ncols = 3, ColumnMajor = 1
0.1246  0.5407  0.1822 
0.1020  0.4639  0.3164 
0.3058  0.9872  0.3348 
0.8375  0.9343  0.5893 

B: 
Dense matrix: 0xfe5cd0, nrows = 9, ncols = 3, ColumnMajor = 1
0.4387  0.3447  0.2999 
0.1582  0.6505  0.5076 
0.1497  0.6515  0.7486 
0.3936  0.1065  0.7850 
0.7182  0.5477  0.0220 
0.3291  0.0453  0开发者_如何学运维.6630 
0.4005  0.3075  0.1818 
0.4071  0.0083  0.0840 
0.1868  0.0998  0.3279 

C: 
Dense matrix: 0xfe7180, nrows = 4, ncols = 9, ColumnMajor = 1
0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000 
0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000 
0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000 
0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000 


Transpose A ta = 111 (CblasNoTrans)
Transpose B tb = 112 (CblasTrans)
m = 4, k = 3, n = 9 
lda = 4, ldb = 3, ldc = 4
alpha = 1, beta = 0

CALLING CBLAS_DGEMM:
cblas_dgemm( CblasColMajor, ta, tb, m, n, k, alpha, A->d, lda, B->d, ldb, beta, C->d, ldc );

I am sure I am making a silly mistake, I just can't spot it. Any help will be appreciated.

many thanks,

Russ


My understanding of ldb was incorrect. ldb refers to the rows(B) and NOT rows(B')! Sorry to have wasted your time. Somehow just posting seems to help.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜