Benchmarks

Performance of Eigen’s dense kernels measured against BLAS/LAPACK libraries, one machine and one dataset per page, each with the conditions it was taken under: CPU, operating system, compiler and flags, Eigen commit, library versions, thread count and method. Ratios between Eigen and a library are formed on one machine with one build configuration; absolute rates are not comparable across pages.

Current results

  • Intel Xeon Gold 6444Y, September 2026: twelve BLAS/LAPACK operations in float and double against OpenBLAS 0.3.26 and native Intel oneMKL 2025.3, with upstream BLIS 2.1 for the six BLAS operations; single thread, AVX-512, Eigen master ab4f7316d.
  • AMD Zen 5 (Ryzen AI MAX+ 395), September 2026: AXPY, DOT, GEMV, GEMM, TRSM, SYRK, POTRF, GETRF, GEQRF, SYEV, GESDD and GEEV in float and double against OpenBLAS 0.3.26, Intel oneMKL 2025.3 and AMD AOCL 5.2, single thread, AVX-512, Eigen master 15f227178.
  • AMD Zen 5 (Ryzen AI MAX+ 395) limited to AVX2, September 2026: the same operations, shapes and libraries with Eigen built for AVX2 and FMA and every library held to its AVX2 kernels, Eigen master 15f227178.
  • Apple M4 (Mac mini) with SME, September 2026: the same operations and shapes against Apple Accelerate (macOS 27.0), Arm Performance Libraries 26.07 and OpenBLAS 0.3.34, single thread, Eigen master 46a2d0c56 built with -mcpu=apple-m4, which selects its SME matrix-product kernel.
  • Apple M4 (Mac mini) with NEON, September 2026: the same cells with Eigen built for NEON alone, against OpenBLAS, Eigen master 46a2d0c56. Accelerate and Arm Performance Libraries cannot be held to NEON through documented means; the SME page has those comparisons.

Every page is produced by the comparison harness under benchmarks/comparison/ in the Eigen source tree (in review as merge request !2903), which validates each reference library’s result against Eigen before timing it and records the full provenance of a run. The charts are drawn from the raw result files by scripts/benchmarks/plot_comparison.py in the website repository, where the result files behind each page are kept beside its images. The plan and progress are tracked in Eigen issue #3112.

Historical results (2009–2011)

These pages measured Eigen 2 and an early Eigen 3 with the BTL harness, which has since been removed from the tree, against libraries that have all been superseded. They are kept as a record; the numbers say nothing about current hardware or current Eigen.


Eigen vs. BLAS/LAPACK libraries, AMD Zen 5 (September 2026)

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, SYRK) and LAPACK (POTRF, GETRF, GEQRF, SYEV, GESDD, GEEV): Eigen master against OpenBLAS, Intel oneMKL and AMD AOCL on an AMD Ryzen AI MAX+ 395.

Eigen vs. BLAS/LAPACK libraries, AMD Zen 5 limited to AVX2 (September 2026)

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, SYRK) and LAPACK (POTRF, GETRF, GEQRF, SYEV, GESDD, GEEV): Eigen master against OpenBLAS, Intel oneMKL and AMD AOCL on an AMD Ryzen AI MAX+ 395, every library limited to AVX2 and FMA.

Eigen vs. BLAS/LAPACK libraries, Intel Xeon Gold 6444Y (September 2026)

Single-threaded float and double BLAS/LAPACK comparisons on an Intel Xeon Gold 6444Y: Eigen against OpenBLAS and oneMKL, with upstream BLIS for BLAS.

Eigen vs. BLAS/LAPACK libraries, Apple M4 with SME (September 2026)

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, SYRK) and LAPACK (POTRF, GETRF, GEQRF, SYEV, GESDD, GEEV): Eigen master, built for the Apple M4 with its SME matrix-product kernel, against Apple Accelerate, Arm Performance Libraries and OpenBLAS on a Mac mini.

Eigen vs. BLAS/LAPACK libraries, Apple M4 with NEON (September 2026)

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, SYRK) and LAPACK (POTRF, GETRF, GEQRF, SYEV, GESDD, GEEV): Eigen master built for NEON alone against OpenBLAS on an Apple M4 Mac mini.

Benchmark

Benchmark AMD Intel compare

Benchmark AMD

Benchmark Intel