Cblas_dgemm - correct parameters: invalid error message

I am trying to calculate: 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 a detailed output of all three matrices and parameters.

  A: (mxn: 4x3), lda = 4 B': (nxk: 3x9), lda = 3 C: (mxk, 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'm sure I’m making a stupid mistake, I just can’t notice it. Any help would be appreciated.

thank you very much,

Russ

+4
source share
1 answer

My understanding of ldb was wrong. ldb refers to rows (B) and NOT rows (B ')! Sorry to waste your time. Somehow just a message seems to help.

+8
source

All Articles