Summary: | Compilation failure due to missing assign_impl when building with MKL | ||
---|---|---|---|
Product: | Eigen | Reporter: | Kevin locke <kevin> |
Component: | Interoperability | Assignee: | Nobody <eigen.nobody> |
Status: | RESOLVED FIXED | ||
Severity: | Compilation Problem | CC: | chtz, gael.guennebaud, hauke.heibel, jacob.benoit.1, zhouyan |
Priority: | Normal | ||
Version: | 3.3 (current stable) | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Bug Depends on: | |||
Bug Blocks: | 558 |
Description
Kevin locke
2014-12-22 18:59:05 UTC
Unfortunately, MKL is barely tested. Very likely it was never fully ported to the new evaluator design. To find the problem, first you could add this to beginning of your test program: #define EIGEN_TEST_EVALUATORS and bisect which is the first failing version. Perhaps from that you can figure out how to fix it, otherwise hopefully Gael can have a look at it. Generally, it would be very appreciated, if the test suite was run with MKL activated more regularly. See here on how to do that: http://eigen.tuxfamily.org/index.php?title=Tests You can also test the latest stable version (3.2.3 at the moment) Hi Cristoph, Sorry for the slow reply, I missed your response because the mail server used by Bugzilla (edony.tuxfamily.net) is blacklisted by the Barracuda RBL <http://barracudacentral.org/rbl>, which is used by my mail server. Bisecting with "#define EIGEN_TEST_EVALUATORS" added to the test program shows that the error was introduced in 1b9b24c4ace8. However, the preceeding commit (ab2f3cc049c1) shows a different error which may be covering the error I was looking for, the last of which was: In file included from ./Eigen/Core:386:0, from eigentest.cpp:3: ./Eigen/src/Core/products/TriangularMatrixVector.h:216:8: error: ‘triangular_product_impl’ is not a class template struct triangular_product_impl<Mode,true,Lhs,false,Rhs,true> ^ ./Eigen/src/Core/products/TriangularMatrixVector.h:227:61: error: wrong number of template arguments (6, should be 3) struct triangular_product_impl<Mode,false,Lhs,true,Rhs,false> ^ ./Eigen/src/Core/products/TriangularMatrixVector.h:216:60: error: provided for ‘template<int Mode, class Lhs, class Rhs> struct Eigen::internal::triangular_product_impl’ struct triangular_product_impl<Mode,true,Lhs,false,Rhs,true> ^ It appears that there were different errors preceding this one as well. If it would be helpful to determine the history of when each error was introduced, let me know and I'll work it out. But, as you say, it looks like software rot in the MKL codepaths and just need some love from someone familiar with MKL and the new evaluator design. Eigen 3.2.3 compiles correctly. Unfortunately, for our use case we need AVX which is not available in 3.2.3 (in my understanding). I'll see about running the test suite more regularly with MKL to help catch these issues as they appear. Thanks for pointing that out! *** Bug 1015 has been marked as a duplicate of this bug. *** https://bitbucket.org/eigen/eigen/commits/3ae2c8f4a27f/ Summary: Bug 923: fix EIGEN_USE_BLAS mode Support for VML coming soon... Forgot to update this entry: https://bitbucket.org/eigen/eigen/commits/aa79288d6b3b -- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/923. |