Benchmark

From Eigen
Revision as of 16:43, 17 March 2009 by Ggael (Talk | contribs)

Jump to: navigation, search

The following benchmark results have been generated using a (heavily) modified version of the Benchmark for Templated Libraries (BTL) from Laurent Plagne. Our modified version can be found in the svn repository in eigen2/bench/btl. We did our best to make the best use of each library, however, any hints on making a lib working better are welcome. All libs have been configured to use dynamic-size column-major matrices and only one thread.

Higher is better. By MFLOPS we mean millions of (effective) arithmetic operations per second. The reason why the values are typically low for small sizes, is that in this benchmark we deal with dynamic-size matrices which are relatively inefficient for small sizes. The reason why some libraries/benchmarks show a decline for large sizes, is that for such large matrices issues of CPU cache friendliness become predominant.

In this benchmark we only included the fastest BLAS libraries because all other C++ matrix libraries we have tested (ublas, mtl4, blitz, gmm) are consistently much slower. To get an idea, see this previous benchmark.

Here is the list of the libraries included in the following benchmarks:

  • eigen2: ourselves, with the default options (SSE2 vectorization enabled).
  • eigen2_novec: ourselves but with Eigen's explicit vectorization disabled. However, gcc's auto-vectorization was enabled.
  • INTEL_MKL: The Intel Math Kernel Library, which includes a BLAS/LAPACK (11.0). Closed-source.
  • ACML: The AMD's core math library, which includes a BLAS/LAPACK (4.2.0). Closed-source.
  • GOTO: The GOTO BLAS library (1.26). Non-free license. This library has been compiled by hand specifically for the core2 architecture.
  • ATLAS: The math-atlas BLAS library (3.8.3). This library has been compiled by hand specifically for the core2 architecture.

17 March 2009

ERROR in include.php: URL http://download.tuxfamily.org/eigen/btl-results/index.html not in allowed list.