![]() Registered Member ![]()
|
How easy or hard is it to write a new "back end" for Eigen? We have a custom-designed vector processor and would like the same application code that runs on off-the-shelf computers to run efficient on this special machine.
|
![]() Moderator ![]()
|
It's quite straightforward, you basically have to copy-paste the PacketMath.h file in Core/src/arch/SSE, and adapt the p* functions.
|
![]() Registered Member ![]()
|
BTW, what is the status of AVX2 support in Eigen? This is something we'd be very excited to see!
|
![]() Moderator ![]()
|
as far as I known nobody started working on it, but since we already have an AVX backend, adding AVX2 support for integers should be rather straightforward.
|
![]() Registered Member ![]()
|
(dropping AVX2, now asking about AVX1)
In version 3.2.2, I see no mention of AVX in Eigen/src/Core/arch/SSE. In your repository, I see you have an Eigen/src/Core/arch/AVX directory, which is not included in the 3.2 branch. If I want to get some AVX optimizations with maximum overall stability, what would you recommend? What would it take to merge arch/AVX into 3.2? |
![]() Moderator ![]()
|
The current devel branch is pretty stable and I'd recommend to use it. However, keep the current revision as we'll merge a huge refactoring of the code soon.
|
Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell, Yahoo [Bot]