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:

  1. eigen_use_blas enables 4x speed though didn't expect much, possible reason?

  2. eigen_use_mkl_all seems have type conflict lapack stuff, how fix compiling error?

  1. 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-bit float operations per clock). indicated ggael, update 3.3beta1 achieve better performance.

  2. 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

Popular posts from this blog

Sass watch command compiles .scss files before full sftp upload -

filehandler - java open files not cleaned, even when the process is killed -

gridview - Yii2 DataPorivider $totalSum for a column -