c++ - Eigen with EIGEN_USE_MKL_ALL -
i compiled c++ project(using eigen 3.2.8) eigen_use_blas option , link against mkl-blas, every thing works fine , indeed speeds program substantially(perhaps due lot of complex-valued matrix-vector multiplication)
then tried eigen_use_mkl_all, however, similar errors prompt up:
/eigen3/eigen/src/qr/colpivhouseholderqr_mkl.h:94:1 error: cannot convert "eigen::plainobjectbase<eigen::matrix<int,-1,1>>::scalar* {aka int*}" "long long int*" in initialization eigen_mkl_or_colpiv(...)
two questions here:
eigen_use_blas enables 4x speed though didn't expect much, possible reason?
eigen_use_mkl_all seems have type conflict lapack stuff, how fix compiling error?
mkl utilizes new avx/avx2 instruction set (8 32-bit
float
operations per clock fma , 3-operand instructions), while eigen 3.2.8 supports sse4 (4 32-bitfloat
operations per clock). indicated ggael, update 3.3beta1 achieve better performance.you try eigen 3.3-beta1. cannot reproduce problem. may want provide code sample , compile option. based on error message, guess using ilp64 interface, not supported eigen. use lp64 instead.
Comments
Post a Comment