我在使用MATLAB和mkl时遇到了一些问题。当我编译mexfile并将其链接到外部优化库(称为“worhp”)时,我得到以下运行时错误:
Intel MKL ERROR: Parameter 5 was incorrect on entry to DGEMM.
当我在MATLAB之外编译并运行我的代码时,我没有收到此错误。 我想这与MATLAB特定的blas和lapack发行版有关。
如果我可以强制MATLAB使用这些库的系统特定分布,我可以删除此错误吗?
我正在使用Ubuntu 16.04。
答案 0 :(得分:0)
当您从MATLAB外部编译和运行代码时,您要链接哪些BLAS / LAPACK?
DGEMM
的参数编号5是A
的列数和B
中A * B
的行数,显然必须匹配;根据您是否链接到Fortran(extern "C" DGEMM
)例程或c / c ++绑定(cblas_dgemm
),您需要将该值作为int
或int*
传递。
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);