首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MKL语言编译Eigen3

用MKL语言编译Eigen3
EN

Stack Overflow用户
提问于 2017-05-22 23:42:34
回答 1查看 381关注 0票数 2

在Ubuntu1.1与我正在进行的Ubuntu16上的C++项目的集成工作中...我想包括对MKL和64位整数的支持。在实例化一个直接调用MKL的模板结构时,我在Eigen库中遇到了编译问题:

代码语言:javascript
复制
 In file included from /usr/local/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/Core:526:0,
                 from /usr/local/include/eigen3/unsupported/Eigen/CXX11/Tensor:14,
                 from /home/drormeirovich/projects/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
                 from /home/drormeirovich/projects/tensorflow/tensorflow/core/framework/tensor.h:19,
                 from /home/drormeirovich/projects/tensorflow/tensorflow/cc/framework/ops.h:21,
                 from /home/drormeirovich/projects/tensorflow/tensorflow/cc/client/client_session.h:24,
                 from /home/drormeirovich/projects/my_project.cpp:10:
/usr/local/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h: In static member function ‘static void Eigen::internal::general_matrix_matrix_product<Index, double, LhsStorageOrder, ConjugateLhs, double, RhsStorageOrder, ConjugateRhs, 0>::run(Index, Index, Index, const double*, Index, const double*, Index, double*, Index, double, Eigen::internal::level3_blocking<double, double>&, Eigen::internal::GemmParallelInfo<Index>*)’:
/usr/local/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h:103:173: error: cannot convert ‘char*’ to ‘CBLAS_LAYOUT’ for argument ‘1’ to ‘void cblas_dgemm(CBLAS_LAYOUT, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, long long int, long long int, long long int, double, const double*, long long int, const double*, long long int, double, double*, long long int)’
   BLASPREFIX##gemm(&transa, &transb, &m, &n, &k, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
                                                                                                                                                                             ^
/usr/local/include/eigen3/unsupported/Eigen/CXX11/../../../Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h:106:1: note: in expansion of macro ‘GEMM_SPECIALIZATION’
 GEMM_SPECIALIZATION(double,   d,  double, cblas_d)
 ^

有关更多详细信息...我在这个集成问题上的所有进展都在这个链接中:

https://docs.google.com/document/d/1VFTdPJy59QTCTHO8NHMNmnO8AOoQhNXgWixas9KmLLM/edit?usp=drivesdk

我必须从Eigen3中移除对MKL的支持吗?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 19:52:30

免责声明:我曾经是一名EasyBuild开发人员。

在EasyBuild中,我们可以构建支持MKL的Eigen3,所以这应该是可行的。

我们的一位贡献者似乎已经了解到,对于eigen3,您需要将'signature_of_eigen3_matrix_library‘文件复制到您用于包含的路径中,请参阅https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/e/eigen.py

https://github.com/RLovelett/eigen/blob/master/signature_of_eigen3_matrix_library

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44117020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档