Alex Rivera | Logout

How can the C++ Eigen library perform better than specialized vendor libraries?

Asked 2012-04-28T17:52:25.420
52

I was looking over the performance benchmarks: https://libeigen.gitlab.io/benchmarks/

I could not help but notice that eigen appears to consistently outperform all the specialized vendor libraries. The questions is: how is it possible? One would assume that mkl/goto would use processor specific tuned code, while eigen is rather generic.

Notice this http://download.tuxfamily.org/eigen/btl-results-110323/aat.pdf, essentially a dgemm. For N=1000 Eigen gets roughly 17Gf, MKL only 12Gf

Edit
Report

1 Answer

16

About the comparison ATLAS vs. Eigen

Have a look at this thread on the Eigen mailing list starting here:

It shows for instance that ATLAS outperforms Eigen on the matrix-matrix product by 46%:

More benchmarks results and details on how the benchmarks were done can be found here:

Edit:

For my lecture "Software Basics for High Performance Computing" I created a little framework called ulmBLAS. It contains the ATLAS benchmark suite and students could implement their own matrix-matrix product based on the BLIS papers. You can have a look at the final benchmarks which also measure Eigen:

You can use the ulmBLAS framework

answered 2012-09-27T21:29:39.483

Your Answer