带Eigen_的Eigen_MKL_ALL 我用EngIsUnEngBLAS选项编译了我的C++项目(使用EGEN 3.2.8),链接到MKL BLAS,每件事情都很好,这确实加速了我的程序(可能是由于很多复值矩阵向量乘法)< /P>
然后,我还尝试了EIGEN_USE_MKL_ALL,但是出现了一些类似的错误:带Eigen_的Eigen_MKL_ALL 我用EngIsUnEngBLAS选项编译了我的C++项目(使用EGEN 3.2.8),链接到MKL BLAS,每件事情都很好,这确实加速了我的程序(可能是由于很多复值矩阵向量乘法)< /P>,c++,eigen,eigen3,C++,Eigen,Eigen3,然后,我还尝试了EIGEN_USE_MKL_ALL,但是出现了一些类似的错误: /eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h:94:1 error: Cannot convert "Eigen::PlainObjectBase<Eigen::matrix<int,-1,1>>::Scalar* {aka int*}" to "long long int*" in initialization EIGEN_MKL_OR_COL
/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h:94:1 error:
Cannot convert "Eigen::PlainObjectBase<Eigen::matrix<int,-1,1>>::Scalar*
{aka int*}" to "long long int*" in initialization
EIGEN_MKL_OR_COLPIV(...)
/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h:94:1错误:
无法转换“Eigen::PlainObjectBase::Scalar”*
初始化中的{aka int*}到“long long int*”
本征值(…)
这里有两个问题:
float
操作,带有FMA和3个操作数指令),而Eigen 3.2.8仅支持最多4个32位float
操作(每个时钟)。正如ggael所指出的,您可以更新到3.3beta1以获得更好的性能float
操作,带有FMA和3个操作数指令),而Eigen 3.2.8仅支持最多4个32位float
操作(每个时钟)。正如ggael所指出的,您可以更新到3.3beta1以获得更好的性能为了完成康诗音的回答,Egen 3.3支持AVX/FMA,因此可以实现类似的性能。您需要在启用AVX和FMA指令的情况下编译。例如,对于GCC、clang或ICC:
-mavx-mfma
要完成抗世音回答,Egen 3.3支持AVX/FMA,因此可以实现类似的性能。您需要在启用AVX和FMA指令的情况下编译。例如,对于GCC、clang或ICC:-mavx-mfma
谢谢您的确认,问题2呢?我认为kangshiyin关于LP64接口是正确的。谢谢您的确认,问题2呢?我认为kangshiyin关于LP64接口是正确的。您是否将MKL与ILP64接口一起使用?您是否将MKL与ILP64接口一起使用?