MKL错误DGEMM错误输入

时间:2018-04-12 10:58:45

标签: matlab mex lapack blas worhp

我在使用MATLAB和mkl时遇到了一些问题。当我编译mexfile并将其链接到外部优化库(称为“worhp”)时,我得到以下运行时错误:

Intel MKL ERROR: Parameter 5 was incorrect on entry to DGEMM.

当我在MATLAB之外编译并运行我的代码时,我没有收到此错误。 我想这与MATLAB特定的blas和lapack发行版有关。

如果我可以强制MATLAB使用这些库的系统特定分布,我可以删除此错误吗?

我正在使用Ubuntu 16.04。

1 个答案:

答案 0 :(得分:0)

当您从MATLAB外部编译和运行代码时,您要链接哪些BLAS / LAPACK?

DGEMM的参数编号5是A的列数和BA * B的行数,显然必须匹配;根据您是否链接到Fortran(extern "C" DGEMM)例程或c / c ++绑定(cblas_dgemm),您需要将该值作为intint*传递。

FORTRAN绑定:

extern void dgemm_(char*, char*, int*, int*,int*, double*, double*, int*, double*, int*, double*, double*, int*);

C绑定(MKL):

void cblas_dgemm (const char, const char, const char, const int m, const int n, const int, const double*, const double*, const int lda, const double*, const int, const double, double*, constint ldc);