Re: [eigen] AVX support

[ Thread Index | Date Index | More Archives ]

2013/11/4 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
Just a side note, doesn't give Eigen a fair treatment.

First, it passes -DEIGEN_USE_BLAS to the compiler which means it's not actually testing Eigen, or letting Eigen fully take advantage of its _expression_ templates.

Second, it also doesn't seem to let Eigen use any SIMD. See how Eigen peaks around 3.9 MFlop/s on this 3.9 GHz CPU. No SIMD here.

Oh, I guess I'm wrong here. There are probably too many load/store instructions in this a=b+c benchmark to maximize arithmetic throughput here, I suppose.

But it remains that passing -DEIGEN_USE_BLAS is really an absurd thing to do in such a benchmark, unless the goal is to measure the performance of whichever BLAS they're using instead of measuring Eigen performance.


Maybe you could report these issues to the maintainers of these benchmarks?

Regarding AVX support, I'm just watching Eigen from the sidelines anymore, but I'll say this: the best thing that could happen to Eigen is broadening of its user base, so it would be great to see features like AVX being contributed by new/non-core contributors.


2013/11/4 Jason Newton <nevion@xxxxxxxxx>

I've been paying attention to eigen development waiting for AVX support to come around and it looks like it still may not get added before 2014.  This is a bit concerning and flys a bit in the face of eigen's raison d'etre of a performance and convenience package for linear algebra in C++.  Is there any progress to be discussed?

In the mean time we've had some other guys pop up utilizing yet again the same techniques Eigen et al have used to make an efficient C++ library: ... I don't think this is a good thing.  This library is much younger than Eigen but demonstrates the performance advantages of AVX: but being younger it has a fraction of Eigen's flexibility and conveniences.  I'm not really all that interested in moving either.

By the way - feature request from looking at blaze-lib: add C++11 variadic template based constructors that check the correct number of arguments were used.  This is a (minor) simplification over comma operator based initialization... and more in kind with the usual C++ way of declaration.


Mail converted by MHonArc 2.6.19+