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’s dense kernels measured head-to-head against three BLAS/LAPACK libraries on one machine, one thread, the same binary driver and the same flop count for every arm: six BLAS operations from level 1 to level 3 and six LAPACK factorizations and solvers. Intel oneMKL appears twice: as shipped, and with its CPUID vendor check bypassed so that it runs the kernels it would run on an Intel CPU. This is the first dataset of the refreshed benchmark series; more machines, scalar types and a multithreaded sweep follow. The same cells with Eigen and every library limited to AVX2 are on the AVX2 page.

Conditions

CPU AMD RYZEN AI MAX+ 395 w/ Radeon 8060S (Zen 5, “Strix Halo”), 16 cores / 32 threads, L1d 48 KiB, L2 1 MiB per core, L3 as seen by the guest 32 MiB
OS Ubuntu 24.04.4 LTS under WSL2 (Linux 6.18, Hyper-V); see the caveats below
Compiler GCC 13.3.0, -O3 -DNDEBUG -mavx512dq -mfma, C++17
Eigen master 15f227178 (5.0.1-dev), default configuration, no external BLAS; built from harness commit 9599d90fa, whose Eigen/ tree is that master’s. The library runs were built from harness commits 21b7559df, 0e4690cbb and a73dce41a, whose Eigen/ tree is the older master 4c3ac80d3
OpenBLAS 0.3.26 (Ubuntu package, DYNAMIC_ARCH, OpenMP build; runtime-selected kernel target Cooperlake); its LAPACK is the reference LAPACK it bundles
Intel oneMKL 2025.3 (Product Build 20251007), sequential LP64 interface, as shipped
oneMKL, vendor check bypassed the same library, with mkl_serv_get_cpu_true() answered “Intel” by a definition compiled into the benchmark binary (mkl_vendor_bypass.cpp); an unsupported configuration, see the caveats
AMD AOCL 5.2.0 (Build 20251223): AOCL-BLIS libblis-mt for BLAS, AOCL-libFLAME for LAPACK
Threads 1 for every arm: OPENBLAS_NUM_THREADS, MKL_NUM_THREADS, BLIS_NUM_THREADS, OMP_NUM_THREADS all set to 1; Eigen built without OpenMP
Method Google Benchmark, 10 repetitions of at least 0.2 s each per cell, median of the 10 rates; the process pinned to one thread per physical core with taskset
Date Libraries: 2026-09-10 for GEMM, GEMV and POTRF (26 runs, about 130 minutes) and 2026-09-11 for the other nine operations (81 runs, about 370 minutes). Eigen: re-measured 2026-09-16 (48 runs, about 3.9 hours of measurement)
Harness benchmarks/comparison/run.py from Eigen merge request !2903, machine profile zen5-ai-max-395

How to read the numbers. Every rate is nominal GFLOP/s: the textbook operation count of the operation, stated in each section below, divided by the median wall time of one call. Both arms of a comparison are built into the same binary and run on the same freshly randomized operands, and the reference library’s result is validated against Eigen’s before it is timed. The library rates are from the runs of 2026-09-10 and 2026-09-11. Eigen was re-measured on 2026-09-16, after changes to its Schur decomposition and divide-and-conquer SVD reached master: the same four binaries, rebuilt at that commit, ran their Eigen cells only, one pass each. The Eigen line on each chart is the median of the four passes and the shaded band is their spread, the best available estimate of run-to-run noise on this host: within 3 % for 74 % of the cells and above 10 % for 5 %, mostly AXPY, DOT and GEMV cells. A ratio divides that median by the library’s rate from the earlier session. Eigen’s previous measurement, on 2026-09-13, bounds the drift between sessions: every operation but GEEV and GESDD repeats its rates within 1 % at the median cell, so ratio differences of a few percent are not significant. For the eigenvalue and singular value decompositions the count is the one of the classical algorithm, so a divide-and-conquer or blocked implementation is credited with work it does not do; the ratios between arms are unaffected.

AXPY

y += alpha * x against ?axpy, alpha = 0.75; (2n) flops. Lengths run from 2 to (2^{24}) (128 MiB per double vector), through every cache level into DRAM.

Short vectors. Up to about n = 32 the AXPY and DOT rates measure the cost of a call rather than the kernel. Eigen’s expression compiles inline into the calling loop. A library call goes through the shared library’s PLT stub, the Fortran interface’s argument checks and a runtime kernel dispatch before it reads an element; AOCL’s ddot_ also queries the OpenMP runtime, the architecture and the BLIS context. That cost is fixed per call while the cost per element is similar in every arm, so the ratios at the small end are ratios of fixed costs. The DOT cells in double at n = 2 show it directly: 0.51 ns per call for Eigen against 3.6 ns for OpenBLAS, 4.0 and 4.5 ns for the two oneMKL arms and 8.9 ns for AOCL. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

AXPY’s lead is smaller because every call adds into the y written by the call before it, and reading that memory back puts a floor under every arm: Eigen’s AXPY holds at 2.6 to 3.0 ns per call from n = 2 to 32, while the same kernel cycling through 64 vectors instead of one took 0.8 to 1.5 ns in a separate test on this machine.

AXPY double AXPY float

DOT

x.dot(y) against ?dot; (2n) flops, the same lengths. Real scalars only: the Fortran convention for returning a complex function value is not fixed by the platform ABI and differs between library builds, so ?dotc cannot be declared portably.

Up to about n = 32 the rates measure the cost of a call; see AXPY.

DOT double DOT float

GEMV

y.noalias() += A * x against ?gemv, column-major, no transposition; (2mn) flops.

Square matrices, then the short-fat (n = 10000, m grows) and tall-skinny (m = 10000, n grows) sweeps.

GEMV double, square GEMV double, sweeps GEMV float, square GEMV float, sweeps

GEMM

C.noalias() += A * B against ?gemm, column-major, no transposition; (2mnk) flops.

Square matrices first; then the two tall-skinny sweeps, where m stays at 4096 or 10000 while n = k grows; then the assorted non-square shapes that fit neither.

GEMM double, square GEMM double, tall-skinny sweeps GEMM double, other shapes GEMM float, square GEMM float, tall-skinny sweeps GEMM float, other shapes

TRSM

A.triangularView<Lower>().solveInPlace(X) against ?trsm with the m-by-m lower triangle on the left and n right-hand sides, no transposition, non-unit diagonal; (m(m+1)n) flops. The solve is destructive, so the timed region includes one copy of B for both arms.

Square shapes (m = n), then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of right-hand sides, then the remaining shapes with 4096 right-hand sides against a small triangle.

TRSM double, square TRSM double, sweeps TRSM double, other shapes TRSM float, square TRSM float, sweeps TRSM float, other shapes

SYRK

C.selfadjointView<Lower>().rankUpdate(A) against ?syrk, lower triangle, no transposition, with C n-by-n and A n-by-k; (n(n+1)k) flops.

Square shapes (n = k), then the sweeps: a 4096-by-4096 matrix updated by a growing number of columns, and the Gram matrix of a short, wide factor with 4096 columns.

SYRK double, square SYRK double, sweeps SYRK float, square SYRK float, sweeps

POTRF

LLT<Ref<MatrixXd>> in place against ?potrf, lower triangle, symmetric positive definite operand; (n^3/3) flops. The timed region includes one copy of the operand for both arms, since the factorization is destructive.

POTRF double POTRF float

GETRF

PartialPivLU<Ref<MatrixXd>> in place against ?getrf, square operand; (2n^3/3) flops. Both arms copy the operand into a destination allocated once and factorize the copy; neither allocates inside the timed region.

GETRF double GETRF float

GEQRF

HouseholderQR<Ref<MatrixXd>> in place against ?geqrf, m ≥ n; (2mn^2 - 2n^3/3) flops, the same copy-then-factorize protocol as GETRF.

Square shapes, then the tall-skinny sweeps with m fixed at 4096, 10000 and 100000.

GEQRF double, square GEQRF double, tall-skinny sweeps GEQRF float, square GEQRF float, tall-skinny sweeps

SYEV

SelfAdjointEigenSolver with eigenvectors against ?syev (jobz = 'V', lower triangle), the like-for-like pair: tridiagonalization followed by implicit QR iteration on both sides; (9n^3) flops, the count of that algorithm (Golub & Van Loan, section 8.3.3). Neither works in place: the solver copies the operand internally and the reference arm pays the same one copy. Sizes to 2048.

SYEV double SYEV float

GESDD

BDCSVD<MatrixXd, ComputeThinU | ComputeThinV> against ?gesdd with jobz = 'S', divide and conquer on both sides, m ≥ n, the thin U and V computed; (14mn^2 + 8n^3) flops, the Golub-Reinsch count (Golub & Van Loan, table 8.6.1). Square sizes to 2048, then tall-skinny sweeps with m fixed at 4096 and 10000.

GESDD double, square GESDD double, tall-skinny sweeps GESDD float, square GESDD float, tall-skinny sweeps

GEEV

EigenSolver with eigenvectors against ?geev (jobvr = 'V'), a dense random nonsymmetric operand: Hessenberg reduction, QR iteration to the Schur form and back-substitution for the eigenvectors on both sides; (25n^3) flops, the count of the Hessenberg QR algorithm with Schur vectors (Golub & Van Loan, section 7.5.6). Sizes to 1024, where a call of EigenSolver takes 2.5 s in double.

GEEV double GEEV float

Summary

Geometric mean of the Eigen ÷ library rate ratio over the square shapes in each size band. Above 1, Eigen is faster. Only the vector operations reach the last band.

Operation Scalar Library n ≤ 16 24–128 192–1024 1536–16384 > 16384
AXPY float OpenBLAS 2.31 2.09 1.17 0.98 1.06
AXPY float Intel oneMKL 1.98 2.44 3.31 2.70 1.36
AXPY float oneMKL, vendor check bypassed 1.81 1.67 1.09 0.96 1.04
AXPY float AOCL-BLIS 2.15 1.79 1.19 0.97 0.99
AXPY double OpenBLAS 2.06 1.60 1.00 1.00 1.03
AXPY double Intel oneMKL 1.79 2.59 3.19 2.28 1.26
AXPY double oneMKL, vendor check bypassed 1.55 1.36 0.90 0.96 1.01
AXPY double AOCL-BLIS 3.16 2.25 1.15 1.03 1.00
DOT float OpenBLAS 2.44 2.59 1.21 1.04 0.99
DOT float Intel oneMKL 4.11 3.75 3.75 2.61 1.32
DOT float oneMKL, vendor check bypassed 4.29 3.13 1.50 1.10 1.03
DOT float AOCL-BLIS 5.79 3.86 1.39 1.06 1.08
DOT double OpenBLAS 4.88 2.39 1.18 1.02 1.04
DOT double Intel oneMKL 5.12 4.07 3.84 2.13 1.25
DOT double oneMKL, vendor check bypassed 5.43 2.56 1.22 1.03 1.01
DOT double AOCL-BLIS 10.58 4.20 1.45 1.08 1.08
GEMV float OpenBLAS 1.55 1.45 1.03 0.96
GEMV float Intel oneMKL 2.63 2.41 1.24 1.17
GEMV float oneMKL, vendor check bypassed 2.74 1.52 0.99 0.85
GEMV float AOCL-BLIS 4.95 2.43 1.08 0.98
GEMV double OpenBLAS 2.48 1.77 1.07 0.88
GEMV double Intel oneMKL 3.32 2.36 1.23 1.19
GEMV double oneMKL, vendor check bypassed 3.36 1.58 0.98 0.79
GEMV double AOCL-BLIS 2.59 1.39 1.04 0.89
GEMM float OpenBLAS 1.30 0.89 1.05 1.05
GEMM float Intel oneMKL 2.74 1.98 2.24 2.28
GEMM float oneMKL, vendor check bypassed 2.75 0.92 1.04 1.01
GEMM float AOCL-BLIS 20.69 1.40 1.06 1.20
GEMM double OpenBLAS 1.28 0.95 1.30 1.21
GEMM double Intel oneMKL 3.21 2.19 2.09 2.00
GEMM double oneMKL, vendor check bypassed 2.24 0.88 1.02 0.99
GEMM double AOCL-BLIS 2.44 0.88 1.08 1.24
TRSM float OpenBLAS 1.05 4.04 2.08 1.16
TRSM float Intel oneMKL 1.26 6.57 4.12 2.85
TRSM float oneMKL, vendor check bypassed 1.20 1.03 0.90 0.89
TRSM float AOCL-BLIS 1.05 1.18 1.53 1.73
TRSM double OpenBLAS 1.29 3.55 2.01 1.24
TRSM double Intel oneMKL 1.22 2.61 2.58 2.24
TRSM double oneMKL, vendor check bypassed 1.27 0.78 0.87 0.92
TRSM double AOCL-BLIS 1.13 0.76 0.88 0.97
SYRK float OpenBLAS 0.44 1.05 1.05 1.02
SYRK float Intel oneMKL 0.88 1.92 2.52 2.82
SYRK float oneMKL, vendor check bypassed 0.99 1.00 1.02 1.00
SYRK float AOCL-BLIS 4.04 1.68 1.44 1.15
SYRK double OpenBLAS 0.66 1.36 1.31 1.12
SYRK double Intel oneMKL 1.23 2.91 2.92 2.63
SYRK double oneMKL, vendor check bypassed 1.16 1.02 1.02 0.96
SYRK double AOCL-BLIS 5.38 1.24 1.09 1.02
POTRF float OpenBLAS 1.47 1.06 1.48 1.15
POTRF float Intel oneMKL 0.84 2.70 2.31 2.69
POTRF float oneMKL, vendor check bypassed 1.06 2.63 1.11 1.05
POTRF float AOCL-BLIS 3.39 2.01 1.43 1.63
POTRF double OpenBLAS 1.36 1.26 1.55 1.21
POTRF double Intel oneMKL 0.89 2.15 2.52 2.52
POTRF double oneMKL, vendor check bypassed 1.05 1.77 1.11 1.00
POTRF double AOCL-BLIS 2.77 1.48 1.20 1.25
GETRF float OpenBLAS 1.64 1.28 1.45 1.09
GETRF float Intel oneMKL 0.79 1.77 2.85 2.29
GETRF float oneMKL, vendor check bypassed 0.88 1.21 0.98 0.91
GETRF float AOCL-BLIS 0.71 1.17 2.00 1.77
GETRF double OpenBLAS 1.87 1.56 1.49 1.07
GETRF double Intel oneMKL 0.82 1.73 2.03 1.81
GETRF double oneMKL, vendor check bypassed 0.97 1.26 1.09 0.95
GETRF double AOCL-BLIS 0.70 1.33 1.47 1.69
GEQRF float OpenBLAS 0.76 1.13 1.32 1.50
GEQRF float Intel oneMKL 0.31 1.00 1.92 2.14
GEQRF float oneMKL, vendor check bypassed 0.41 1.02 1.16 1.23
GEQRF float AOCL-BLIS 1.59 1.18 1.40 1.54
GEQRF double OpenBLAS 0.79 1.14 1.35 1.41
GEQRF double Intel oneMKL 0.36 1.28 1.96 1.86
GEQRF double oneMKL, vendor check bypassed 0.36 0.71 1.04 1.04
GEQRF double AOCL-BLIS 0.43 0.81 2.44 1.34
SYEV float OpenBLAS 1.43 2.06 4.36 5.40
SYEV float Intel oneMKL 1.17 1.16 1.59 1.52
SYEV float oneMKL, vendor check bypassed 1.31 1.09 1.03 0.82
SYEV float AOCL-BLIS 2.18 1.50 1.33 1.12
SYEV double OpenBLAS 1.32 2.21 3.70 2.59
SYEV double Intel oneMKL 1.17 1.33 1.62 1.00
SYEV double oneMKL, vendor check bypassed 1.27 0.97 0.89 0.54
SYEV double AOCL-BLIS 1.54 1.25 1.23 0.90
GESDD float OpenBLAS 1.68 0.87 1.00 1.17
GESDD float Intel oneMKL 1.53 0.84 1.50 1.88
GESDD float oneMKL, vendor check bypassed 1.64 0.81 1.06 1.29
GESDD float AOCL-BLIS 2.67 0.98 1.05 1.27
GESDD double OpenBLAS 1.45 0.81 1.03 1.08
GESDD double Intel oneMKL 1.41 0.91 1.35 1.37
GESDD double oneMKL, vendor check bypassed 1.47 0.72 0.86 1.04
GESDD double AOCL-BLIS 0.75 0.74 0.91 1.12
GEEV float OpenBLAS 2.18 1.71 0.54
GEEV float Intel oneMKL 1.93 1.35 0.57
GEEV float oneMKL, vendor check bypassed 2.06 1.39 0.48
GEEV float AOCL-BLIS 4.40 1.79 0.57
GEEV double OpenBLAS 2.09 1.71 0.55
GEEV double Intel oneMKL 1.11 1.53 0.67
GEEV double oneMKL, vendor check bypassed 1.13 1.25 0.52
GEEV double AOCL-BLIS 2.87 1.34 0.48

Caveats

  • Linux runs under WSL2, so absolute rates are a lower bound on bare-metal Linux.
  • oneMKL as shipped does not use its AVX-512 kernels on AMD CPUs; the bypassed arm is not supported by Intel.

Full tables

GFLOP/s per shape and library, with the Eigen ÷ library ratio: Eigen’s median over its four passes of 2026-09-16 against the library’s rate from the earlier runs.

AXPY float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 1.6 0.7 2.13 0.8 1.89 0.8 1.85 0.7 2.08
3 2.3 1.2 1.97 1.2 1.94 1.3 1.84 1.1 2.16
4 3.1 1.5 2.13 1.5 2.01 1.7 1.84 1.4 2.26
6 4.7 2.2 2.13 2.1 2.18 2.5 1.84 2.0 2.37
8 6.2 2.6 2.37 3.4 1.86 3.3 1.91 3.1 2.03
12 9.3 3.3 2.86 4.2 2.21 5.1 1.84 4.0 2.33
16 10.8 3.9 2.74 6.1 1.78 6.9 1.57 5.8 1.86
24 16.2 4.9 3.33 8.3 1.96 9.8 1.65 8.5 1.90
32 21.6 11.7 1.85 9.8 2.20 13.3 1.62 11.7 1.84
48 32.4 10.6 3.05 13.8 2.34 16.5 1.96 16.9 1.91
64 43.2 22.9 1.88 16.2 2.66 24.8 1.74 18.4 2.35
96 54.4 27.7 1.97 19.4 2.81 31.2 1.75 31.4 1.73
100 49.7 28.2 1.76 18.2 2.72 34.3 1.45 30.2 1.65
128 54.1 38.6 1.40 21.2 2.55 34.9 1.55 40.9 1.32
192 72.2 49.7 1.45 24.2 2.98 53.8 1.34 51.5 1.40
256 84.4 61.2 1.38 25.7 3.29 63.6 1.33 50.3 1.68
384 94.5 69.6 1.36 27.7 3.41 77.0 1.23 72.4 1.31
512 103.1 79.9 1.29 28.6 3.60 90.7 1.14 80.4 1.28
768 97.7 97.1 1.01 29.8 3.28 101.3 0.96 91.9 1.06
1000 102.6 98.6 1.04 30.4 3.38 108.6 0.94 101.2 1.01
1001 102.3 98.9 1.03 30.3 3.38 108.8 0.94 100.4 1.02
1024 98.0 105.8 0.93 30.4 3.23 107.8 0.91 102.6 0.95
1536 100.2 116.1 0.86 29.5 3.40 119.5 0.84 113.4 0.88
2048 101.2 117.5 0.86 30.1 3.36 121.2 0.84 118.0 0.86
3072 110.1 117.6 0.94 30.8 3.58 122.4 0.90 118.9 0.93
4096 115.6 114.7 1.01 31.2 3.71 125.2 0.92 123.7 0.93
6144 114.9 114.1 1.01 31.4 3.66 116.5 0.99 121.7 0.94
8192 63.7 60.7 1.05 31.6 2.02 61.3 1.04 60.9 1.04
10000 60.1 56.9 1.06 31.5 1.91 57.2 1.05 56.8 1.06
12288 60.4 57.9 1.04 31.9 1.89 57.8 1.04 57.6 1.05
16384 60.6 58.5 1.04 32.0 1.89 58.4 1.04 58.3 1.04
32768 60.3 57.9 1.04 31.7 1.90 59.4 1.02 59.4 1.01
65536 76.1 72.8 1.05 31.7 2.40 74.4 1.02 75.3 1.01
100000 71.4 55.6 1.28 32.0 2.23 71.6 1.00 59.0 1.21
131072 49.7 45.6 1.09 29.8 1.67 46.1 1.08 48.9 1.02
262144 34.6 32.5 1.06 27.7 1.25 32.5 1.07 32.6 1.06
524288 30.5 29.3 1.04 27.6 1.11 28.6 1.07 29.2 1.05
1000000 30.4 29.2 1.04 27.5 1.10 27.6 1.10 35.8 0.85
1048576 29.6 28.6 1.04 27.1 1.09 27.2 1.09 34.0 0.87
2097152 28.1 31.9 0.88 24.8 1.13 26.0 1.08 32.7 0.86
4194304 18.5 16.3 1.14 16.0 1.16 17.8 1.04 17.2 1.08
8388608 12.1 11.7 1.04 11.5 1.05 12.5 0.97 12.6 0.97
16777216 10.4 10.1 1.03 10.1 1.02 10.4 0.99 10.3 1.01
AXPY double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 1.6 0.8 1.92 0.9 1.79 1.0 1.57 0.5 3.29
3 2.3 1.2 2.02 1.3 1.80 1.4 1.65 0.7 3.27
4 3.1 1.5 2.14 1.7 1.84 2.0 1.59 1.0 3.27
6 4.7 2.3 2.04 2.4 1.93 2.8 1.70 1.4 3.27
8 5.4 2.7 2.04 3.4 1.61 3.8 1.44 1.8 3.04
12 8.1 3.5 2.31 4.7 1.73 5.5 1.47 2.7 2.98
16 10.8 5.5 1.95 5.8 1.87 7.3 1.47 3.6 3.00
24 16.2 7.0 2.32 7.4 2.20 10.5 1.54 5.3 3.03
32 21.6 11.9 1.82 8.7 2.48 13.3 1.62 7.1 3.03
48 27.3 16.0 1.70 10.6 2.57 18.5 1.47 10.4 2.62
64 27.3 19.7 1.39 11.7 2.32 22.8 1.20 13.6 2.01
96 35.9 25.9 1.38 13.1 2.74 28.0 1.28 18.8 1.91
100 37.7 26.8 1.41 13.2 2.85 30.0 1.26 20.7 1.82
128 43.4 31.1 1.40 13.9 3.12 35.2 1.23 24.7 1.76
192 47.4 36.0 1.31 14.8 3.20 40.3 1.17 28.8 1.64
256 51.4 42.3 1.22 15.2 3.37 48.3 1.06 34.3 1.50
384 48.3 50.2 0.96 15.8 3.05 55.3 0.87 39.9 1.21
512 49.8 49.6 1.00 16.1 3.09 53.8 0.93 46.7 1.07
768 50.1 57.2 0.88 16.4 3.06 63.2 0.79 52.2 0.96
1000 49.8 57.8 0.86 16.5 3.02 65.6 0.76 53.2 0.94
1001 61.2 58.0 1.06 16.5 3.71 65.4 0.94 53.4 1.15
1024 50.3 60.1 0.84 16.4 3.06 66.2 0.76 54.8 0.92
1536 55.2 59.4 0.93 16.6 3.32 68.7 0.80 54.4 1.01
2048 57.5 59.6 0.97 16.8 3.43 69.9 0.82 60.6 0.95
3072 57.4 60.2 0.95 16.3 3.53 61.5 0.93 53.1 1.08
4096 31.8 30.8 1.03 16.3 1.95 31.0 1.03 29.8 1.07
6144 30.2 29.0 1.04 16.4 1.84 29.1 1.04 28.5 1.06
8192 30.1 29.4 1.03 16.4 1.83 29.4 1.02 28.9 1.04
10000 30.2 29.4 1.03 16.4 1.84 29.5 1.03 29.4 1.03
12288 30.3 29.6 1.02 16.5 1.84 29.8 1.02 29.5 1.03
16384 30.2 29.8 1.01 16.5 1.83 30.0 1.01 29.7 1.02
32768 38.0 37.1 1.02 16.5 2.30 38.0 1.00 37.6 1.01
65536 25.6 23.2 1.10 15.3 1.67 20.1 1.28 22.9 1.12
100000 18.5 18.0 1.03 15.0 1.23 18.0 1.03 17.6 1.05
131072 17.4 16.6 1.05 14.3 1.22 16.4 1.06 16.2 1.07
262144 15.3 14.8 1.04 13.7 1.12 14.7 1.05 14.6 1.05
524288 14.8 14.4 1.03 13.4 1.11 18.0 0.83 16.3 0.91
1000000 14.2 16.2 0.87 13.2 1.08 17.0 0.83 16.9 0.84
1048576 14.1 15.6 0.91 11.8 1.20 13.8 1.02 16.2 0.87
2097152 9.0 8.1 1.10 8.1 1.11 9.0 1.00 8.6 1.05
4194304 6.1 6.0 1.02 5.6 1.08 5.8 1.05 6.2 0.99
8388608 5.1 4.9 1.05 4.0 1.30 5.0 1.02 4.9 1.05
16777216 4.5 4.1 1.10 3.8 1.16 4.5 0.99 4.3 1.03
DOT float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 7.8 2.4 3.19 0.9 8.57 0.9 8.76 0.6 12.01
3 8.3 3.2 2.57 1.3 6.31 1.3 6.26 0.9 8.99
4 8.2 4.0 2.07 2.1 3.97 1.8 4.67 1.3 6.11
6 8.8 5.0 1.76 2.6 3.34 2.6 3.35 1.9 4.68
8 8.7 5.7 1.54 4.0 2.17 3.5 2.51 2.7 3.23
12 9.2 6.2 1.47 4.7 1.94 5.2 1.77 3.9 2.36
16 49.7 6.5 7.67 7.6 6.58 7.1 6.98 5.4 9.25
24 22.6 6.4 3.52 11.3 2.00 10.1 2.24 7.6 2.95
32 67.1 24.2 2.77 12.9 5.19 13.7 4.89 10.2 6.56
48 86.8 15.8 5.50 18.2 4.78 19.8 4.39 15.1 5.76
64 78.9 39.3 2.01 21.1 3.74 25.2 3.13 19.8 3.99
96 104.1 47.7 2.18 24.8 4.20 34.0 3.06 30.2 3.45
100 83.1 44.3 1.87 25.3 3.28 34.6 2.40 30.4 2.73
128 115.2 64.2 1.80 28.1 4.10 42.9 2.69 37.5 3.07
192 124.6 85.2 1.46 30.5 4.09 60.7 2.05 54.5 2.29
256 122.5 83.8 1.46 33.0 3.71 69.7 1.76 68.6 1.78
384 128.7 100.5 1.28 34.9 3.69 88.6 1.45 90.7 1.42
512 126.8 114.9 1.10 36.2 3.50 97.4 1.30 101.5 1.25
768 141.4 126.9 1.12 37.6 3.76 96.2 1.47 115.8 1.22
1000 141.4 127.2 1.11 37.6 3.76 103.1 1.37 122.2 1.16
1001 139.0 128.0 1.09 38.0 3.66 103.2 1.35 122.0 1.14
1024 148.5 132.7 1.12 38.3 3.88 104.8 1.42 124.7 1.19
1536 152.5 139.9 1.09 38.6 3.95 117.4 1.30 134.7 1.13
2048 152.1 142.2 1.07 39.3 3.87 126.4 1.20 141.5 1.08
3072 158.1 150.6 1.05 39.7 3.99 137.4 1.15 147.7 1.07
4096 158.1 152.9 1.03 39.9 3.97 142.1 1.11 150.5 1.05
6144 150.2 141.7 1.06 38.2 3.93 130.4 1.15 137.0 1.10
8192 65.6 64.5 1.02 38.8 1.69 63.4 1.03 62.8 1.04
10000 60.0 58.3 1.03 39.5 1.52 59.3 1.01 58.1 1.03
12288 60.1 59.1 1.02 39.6 1.52 60.3 1.00 59.0 1.02
16384 60.5 60.1 1.01 39.8 1.52 60.1 1.01 59.3 1.02
32768 60.1 60.8 0.99 40.1 1.50 60.9 0.99 60.1 1.00
65536 78.1 77.6 1.01 40.2 1.94 77.4 1.01 78.6 0.99
100000 71.0 77.7 0.91 37.8 1.88 61.0 1.16 64.8 1.09
131072 44.0 45.8 0.96 34.0 1.29 48.3 0.91 48.3 0.91
262144 34.3 32.7 1.05 29.8 1.15 33.2 1.03 30.2 1.14
524288 30.8 29.7 1.04 28.3 1.09 29.3 1.05 28.0 1.10
1000000 35.6 37.0 0.96 27.2 1.31 29.1 1.22 36.6 0.97
1048576 32.5 36.0 0.90 27.0 1.20 36.8 0.88 27.8 1.17
2097152 34.9 33.4 1.04 25.4 1.37 33.3 1.05 29.7 1.17
4194304 22.7 21.3 1.07 17.3 1.31 21.7 1.05 18.1 1.26
8388608 13.4 13.3 1.01 12.5 1.08 13.2 1.02 12.3 1.09
16777216 10.7 10.7 1.00 10.4 1.03 10.6 1.01 10.0 1.07
DOT double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 7.8 1.1 7.09 1.0 7.75 0.9 8.85 0.5 17.38
3 8.0 1.6 5.00 1.5 5.50 1.3 6.02 0.7 11.81
4 8.2 2.1 3.99 1.9 4.25 1.7 4.68 0.9 9.00
6 9.0 2.9 3.13 2.7 3.36 2.7 3.40 1.4 6.60
8 26.8 3.6 7.35 3.8 7.04 3.6 7.51 1.8 14.76
12 19.5 4.5 4.32 5.2 3.72 5.1 3.83 2.7 7.14
16 39.1 8.3 4.71 6.7 5.82 6.9 5.68 3.4 11.57
24 43.9 8.9 4.93 8.6 5.10 9.8 4.47 5.4 8.08
32 43.5 14.9 2.91 10.3 4.23 12.6 3.45 7.0 6.25
48 52.5 20.8 2.52 12.4 4.23 17.6 2.99 10.5 5.01
64 57.3 25.9 2.21 13.9 4.11 22.1 2.59 14.3 4.01
96 61.6 32.1 1.92 15.4 4.01 28.8 2.14 19.2 3.21
100 53.2 28.8 1.84 15.6 3.41 30.8 1.73 18.2 2.93
128 58.9 37.9 1.55 16.2 3.63 36.0 1.64 24.2 2.44
192 64.4 45.5 1.42 17.4 3.70 43.6 1.48 31.4 2.05
256 67.4 50.9 1.32 18.0 3.74 48.4 1.39 35.5 1.90
384 68.4 59.3 1.15 18.7 3.66 54.9 1.25 44.5 1.54
512 72.9 63.5 1.15 19.0 3.84 59.8 1.22 53.9 1.35
768 76.1 69.0 1.10 19.3 3.94 65.7 1.16 57.6 1.32
1000 77.2 68.2 1.13 19.6 3.95 69.2 1.12 63.7 1.21
1001 77.4 67.7 1.14 19.5 3.98 68.4 1.13 61.8 1.25
1024 77.0 71.8 1.07 19.5 3.95 69.4 1.11 65.0 1.18
1536 78.6 75.3 1.04 19.7 3.98 72.4 1.09 69.9 1.13
2048 78.7 75.1 1.05 19.9 3.96 73.3 1.07 71.0 1.11
3072 78.0 71.3 1.09 18.9 4.14 68.0 1.15 60.5 1.29
4096 32.6 32.3 1.01 18.9 1.73 32.3 1.01 31.1 1.05
6144 30.2 30.3 1.00 19.8 1.53 30.2 1.00 29.1 1.04
8192 30.4 29.9 1.01 19.9 1.53 30.5 1.00 28.9 1.05
10000 30.0 30.0 1.00 20.0 1.50 30.2 0.99 29.3 1.02
12288 30.0 30.2 0.99 20.0 1.50 30.5 0.98 29.5 1.02
16384 30.0 30.3 0.99 20.1 1.50 30.5 0.98 29.8 1.01
32768 39.0 38.7 1.01 19.8 1.97 38.9 1.00 38.6 1.01
65536 22.0 22.6 0.97 17.2 1.28 21.8 1.01 22.4 0.98
100000 18.7 17.7 1.06 16.2 1.15 18.4 1.02 16.8 1.11
131072 17.2 16.1 1.07 14.9 1.15 16.2 1.06 14.9 1.15
262144 15.5 14.3 1.09 14.2 1.09 14.7 1.05 13.9 1.11
524288 16.3 13.8 1.19 13.7 1.19 18.0 0.91 17.9 0.91
1000000 17.9 16.8 1.06 12.8 1.40 17.1 1.05 16.5 1.08
1048576 17.4 16.9 1.03 12.5 1.38 17.2 1.01 15.2 1.14
2097152 11.3 11.0 1.03 8.9 1.27 11.0 1.04 9.3 1.23
4194304 6.7 6.8 0.99 6.3 1.07 6.7 1.00 6.1 1.11
8388608 5.4 5.4 1.00 5.2 1.03 5.4 1.00 5.1 1.04
16777216 4.9 4.9 1.00 3.9 1.26 4.9 1.01 4.6 1.07
GEMV float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 1.0 0.8 1.38 0.5 2.24 0.5 2.19 0.2 4.60
3x3 1.8 1.6 1.10 0.9 1.96 0.9 2.10 0.5 3.76
4x4 6.1 2.1 2.87 1.7 3.53 1.7 3.60 0.8 7.89
6x6 7.4 5.7 1.30 3.2 2.30 3.0 2.44 1.8 4.05
8x8 20.0 9.8 2.05 6.3 3.17 5.4 3.70 3.2 6.26
12x12 27.5 21.0 1.31 11.6 2.37 9.7 2.85 6.2 4.47
16x16 55.5 39.3 1.41 17.0 3.27 20.2 2.75 11.8 4.70
24x24 55.4 41.3 1.34 27.8 2.00 24.9 2.22 19.2 2.89
32x32 121.6 93.2 1.30 37.6 3.23 58.7 2.07 28.8 4.23
48x48 149.7 86.3 1.74 49.2 3.05 90.4 1.66 48.2 3.11
64x64 176.6 91.0 1.94 55.3 3.19 114.9 1.54 59.1 2.99
96x96 145.0 106.6 1.36 59.9 2.42 142.5 1.02 75.3 1.93
100x100 101.7 86.3 1.18 59.4 1.71 88.3 1.15 66.6 1.53
128x128 110.1 78.6 1.40 59.9 1.84 81.0 1.36 73.8 1.49
192x192 82.7 80.5 1.03 63.1 1.31 83.2 0.99 77.5 1.07
200x200 79.9 80.6 0.99 62.7 1.27 80.2 1.00 78.6 1.02
256x256 82.3 81.3 1.01 64.5 1.28 84.9 0.97 79.1 1.04
257x257 76.0 67.3 1.13 52.8 1.44 75.9 1.00 67.6 1.12
384x384 82.1 81.0 1.01 65.3 1.26 83.0 0.99 81.5 1.01
500x500 73.4 66.2 1.11 59.8 1.23 68.5 1.07 64.0 1.15
512x512 76.6 69.8 1.10 60.0 1.28 70.0 1.10 65.2 1.17
768x768 61.9 56.6 1.09 47.6 1.30 59.1 1.05 56.1 1.10
1000x1000 54.2 53.6 1.01 54.9 0.99 61.8 0.88 52.0 1.04
1001x1001 52.3 53.9 0.97 41.8 1.25 53.7 0.97 47.5 1.10
1024x1024 54.4 60.8 0.89 51.3 1.06 62.8 0.87 51.7 1.05
1536x1536 57.3 52.8 1.09 54.8 1.05 64.3 0.89 54.5 1.05
2048x2048 46.1 50.2 0.92 40.3 1.15 53.1 0.87 44.2 1.05
3072x3072 27.3 26.7 1.02 19.0 1.44 31.8 0.86 22.8 1.20
4096x4096 17.1 17.9 0.95 14.5 1.18 19.9 0.86 19.6 0.87
4097x4097 14.8 18.0 0.82 13.8 1.08 19.0 0.78 18.7 0.79
8x10000 42.1 43.9 0.96 24.9 1.69 12.6 3.34 13.7 3.06
100x10000 53.5 57.5 0.93 47.6 1.12 47.9 1.12 44.8 1.19
1000x10000 28.0 28.4 0.99 16.5 1.70 27.3 1.03 21.6 1.30
4000x10000 20.6 19.1 1.08 15.5 1.33 20.2 1.02 17.0 1.21
10000x8 72.5 73.4 0.99 68.8 1.05 108.7 0.67 80.3 0.90
10000x100 58.6 52.9 1.11 46.6 1.26 54.4 1.08 50.0 1.17
10000x1000 32.6 27.1 1.21 19.7 1.66 36.3 0.90 26.2 1.25
10000x4000 20.9 19.1 1.09 16.2 1.29 20.3 1.03 18.8 1.11
GEMV double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 1.7 0.7 2.54 0.5 3.71 0.5 3.79 0.7 2.60
3x3 2.7 1.4 1.93 0.9 2.97 0.9 3.00 1.3 2.03
4x4 6.5 2.3 2.86 1.7 3.74 1.7 3.74 2.0 3.19
6x6 9.8 3.9 2.49 3.1 3.10 3.1 3.11 3.4 2.83
8x8 19.6 7.1 2.75 5.6 3.50 5.2 3.75 6.3 3.09
12x12 27.6 12.4 2.23 9.6 2.86 9.7 2.83 12.1 2.28
16x16 49.7 18.5 2.70 14.2 3.50 14.4 3.46 21.2 2.35
24x24 74.3 28.0 2.65 20.8 3.57 23.7 3.13 37.9 1.96
32x32 92.7 33.7 2.75 24.9 3.73 35.4 2.62 51.8 1.79
48x48 87.6 40.2 2.18 28.1 3.12 54.7 1.60 56.4 1.55
64x64 128.8 44.3 2.91 30.7 4.19 65.9 1.95 73.0 1.76
96x96 41.5 40.4 1.03 30.5 1.36 40.9 1.01 41.9 0.99
100x100 38.9 33.9 1.15 30.5 1.28 39.9 0.97 40.2 0.97
128x128 41.9 42.0 1.00 31.4 1.33 42.3 0.99 37.9 1.11
192x192 40.8 44.0 0.93 32.8 1.25 43.8 0.93 41.0 1.00
200x200 40.6 44.0 0.92 32.5 1.25 41.5 0.98 40.8 1.00
256x256 40.6 47.7 0.85 32.7 1.24 42.5 0.96 42.2 0.96
257x257 38.4 30.2 1.27 27.7 1.39 40.1 0.96 35.9 1.07
384x384 35.7 34.5 1.04 27.4 1.31 35.1 1.02 34.1 1.05
500x500 29.7 24.5 1.21 23.7 1.25 28.8 1.03 24.1 1.23
512x512 27.0 27.0 1.00 22.6 1.19 30.3 0.89 25.7 1.05
768x768 29.0 27.2 1.07 23.6 1.23 28.8 1.01 26.9 1.08
1000x1000 28.3 24.8 1.14 21.2 1.34 27.6 1.03 29.9 0.95
1001x1001 27.9 19.5 1.43 25.1 1.11 26.2 1.07 28.7 0.97
1024x1024 26.7 24.8 1.08 26.9 1.00 27.5 0.97 23.7 1.13
1536x1536 21.3 21.7 0.98 17.3 1.23 21.4 1.00 19.6 1.08
2048x2048 15.4 13.4 1.15 9.6 1.60 14.7 1.05 15.3 1.01
3072x3072 7.4 9.1 0.82 7.1 1.06 10.8 0.69 9.4 0.79
4096x4096 7.1 8.9 0.80 6.4 1.11 10.0 0.71 8.3 0.86
4097x4097 6.1 8.4 0.73 6.0 1.02 10.0 0.61 8.0 0.77
8x10000 39.7 20.7 1.92 19.1 2.08 11.6 3.42 19.0 2.09
100x10000 29.1 23.6 1.23 23.8 1.22 26.4 1.10 23.3 1.25
1000x10000 11.9 9.9 1.20 7.6 1.55 11.6 1.02 11.3 1.05
4000x10000 9.8 8.6 1.13 7.7 1.28 8.8 1.12 8.9 1.10
10000x8 36.1 46.4 0.78 34.2 1.06 54.2 0.67 55.4 0.65
10000x100 30.5 23.8 1.28 23.2 1.31 24.7 1.23 27.2 1.12
10000x1000 9.8 9.8 1.00 8.8 1.11 12.0 0.82 11.3 0.87
10000x4000 8.5 8.0 1.06 7.8 1.09 9.1 0.94 8.9 0.96
GEMM float
m×n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x2 2.1 1.2 1.71 0.4 4.83 0.4 5.78 0.0 58.58
3x3x3 5.6 3.1 1.79 1.2 4.79 1.1 4.99 0.1 54.08
4x4x4 22.3 5.4 4.13 3.0 7.33 1.9 11.85 0.3 79.72
6x6x6 15.7 12.9 1.22 7.0 2.24 6.9 2.29 0.9 17.48
8x8x8 21.6 25.4 0.85 13.1 1.64 13.7 1.57 2.2 9.94
12x12x12 33.9 55.9 0.61 33.5 1.01 35.0 0.97 6.6 5.12
16x16x16 113.5 142.7 0.80 62.4 1.82 113.0 1.00 15.7 7.22
24x24x24 122.8 164.3 0.75 90.8 1.35 131.4 0.93 43.1 2.85
32x32x32 237.8 266.6 0.89 110.4 2.15 259.9 0.91 94.4 2.52
48x48x48 266.6 263.1 1.01 121.7 2.19 278.8 0.96 187.0 1.43
64x64x64 254.1 316.7 0.80 125.6 2.02 290.1 0.88 239.1 1.06
96x96x96 276.5 323.4 0.85 131.4 2.10 308.2 0.90 281.5 0.98
100x100x100 241.8 281.8 0.86 119.6 2.02 259.3 0.93 240.8 1.00
128x128x128 286.8 253.2 1.13 131.9 2.17 310.2 0.92 291.9 0.98
160x160x160 285.4 264.9 1.08 132.4 2.16 303.4 0.94 301.1 0.95
192x192x192 295.5 277.7 1.06 131.4 2.25 291.1 1.02 304.7 0.97
200x200x200 280.6 279.5 1.00 130.0 2.16 276.5 1.01 276.5 1.01
224x224x224 296.7 264.5 1.12 132.1 2.25 287.3 1.03 301.3 0.98
256x256x256 294.3 295.0 1.00 130.7 2.25 282.3 1.04 282.2 1.04
257x257x257 270.3 251.1 1.08 122.3 2.21 261.1 1.04 255.3 1.06
288x288x288 298.6 295.4 1.01 131.0 2.28 286.3 1.04 282.7 1.06
320x320x320 298.6 289.1 1.03 133.0 2.25 287.5 1.04 283.8 1.05
384x384x384 299.7 275.9 1.09 130.8 2.29 286.7 1.05 286.4 1.05
448x448x448 302.3 272.9 1.11 132.9 2.27 287.3 1.05 288.6 1.05
500x500x500 292.1 269.8 1.08 133.3 2.19 280.8 1.04 277.6 1.05
512x512x512 303.7 272.8 1.11 134.8 2.25 289.0 1.05 290.7 1.04
768x768x768 303.7 290.7 1.04 135.2 2.25 289.2 1.05 269.1 1.13
1000x1000x1000 297.0 298.4 1.00 133.3 2.23 291.1 1.02 258.4 1.15
1001x1001x1001 289.0 292.6 0.99 130.2 2.22 280.3 1.03 258.6 1.12
1024x1024x1024 297.2 292.4 1.02 131.3 2.26 288.0 1.03 262.0 1.13
1536x1536x1536 299.3 292.8 1.02 133.1 2.25 288.0 1.04 262.5 1.14
2048x2048x2048 289.5 285.3 1.01 129.7 2.23 288.7 1.00 246.0 1.18
3072x3072x3072 294.8 269.9 1.09 128.2 2.30 291.0 1.01 239.2 1.23
4096x4096x4096 291.7 269.6 1.08 127.8 2.28 293.6 0.99 239.0 1.22
4097x4097x4097 286.3 276.7 1.03 121.3 2.36 288.1 0.99 235.8 1.21
64x64x1024 251.5 242.9 1.04 123.4 2.04 298.4 0.84 303.4 0.83
64x1024x64 273.1 272.6 1.00 131.3 2.08 294.2 0.93 296.2 0.92
256x256x1024 292.3 271.1 1.08 127.3 2.30 275.6 1.06 283.5 1.03
1024x64x64 276.7 231.7 1.19 118.2 2.34 251.2 1.10 241.4 1.15
1024x256x256 296.9 276.0 1.08 127.9 2.32 288.2 1.03 279.7 1.06
4096x96x96 276.4 245.5 1.13 117.0 2.36 141.1 1.96 188.0 1.47
4096x128x128 285.5 212.2 1.35 123.9 2.30 142.8 2.00 179.7 1.59
4096x144x144 288.9 259.5 1.11 123.1 2.35 146.6 1.97 215.3 1.34
4096x160x160 291.0 266.0 1.09 124.0 2.35 142.7 2.04 217.3 1.34
4096x176x176 293.6 263.7 1.11 124.2 2.36 146.0 2.01 229.0 1.28
8192x128x128 280.4 233.2 1.20 121.2 2.31 243.1 1.15 167.8 1.67
10000x8x8 167.0 236.9 0.70 98.3 1.70 249.6 0.67 189.3 0.88
10000x100x100 283.7 261.2 1.09 127.1 2.23 270.1 1.05 284.3 1.00
10000x1000x1000 298.0 278.2 1.07 125.5 2.37 289.8 1.03 236.9 1.26
10000x4000x4000 307.7 285.7 1.08 128.2 2.40 295.8 1.04 243.0 1.27
GEMM double
m×n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x2 2.1 1.1 1.88 0.4 4.78 0.7 2.91 0.4 5.94
3x3x3 5.5 2.9 1.89 1.2 4.59 1.2 4.71 1.2 4.68
4x4x4 22.2 5.5 4.05 3.0 7.44 2.5 8.94 2.7 8.09
6x6x6 15.4 13.0 1.19 7.2 2.14 7.0 2.20 8.9 1.74
8x8x8 23.7 36.4 0.65 11.6 2.05 21.4 1.11 15.3 1.55
12x12x12 35.2 54.0 0.65 26.0 1.35 33.6 1.05 44.2 0.80
16x16x16 83.7 107.5 0.78 22.8 3.67 91.1 0.92 78.2 1.07
24x24x24 111.1 119.5 0.93 53.5 2.08 125.7 0.88 120.9 0.92
32x32x32 118.5 137.9 0.86 38.4 3.08 135.0 0.88 134.1 0.88
48x48x48 123.6 142.0 0.87 66.4 1.86 148.3 0.83 147.4 0.84
64x64x64 130.3 145.0 0.90 55.1 2.37 152.0 0.86 151.0 0.86
96x96x96 137.0 146.9 0.93 74.0 1.85 154.7 0.89 158.1 0.87
100x100x100 129.6 143.2 0.91 62.5 2.07 143.0 0.91 142.6 0.91
128x128x128 141.6 104.4 1.36 63.8 2.22 157.7 0.90 155.2 0.91
160x160x160 144.9 103.4 1.40 66.3 2.18 156.3 0.93 152.9 0.95
192x192x192 145.5 104.5 1.39 73.4 1.98 143.2 1.02 151.8 0.96
200x200x200 144.8 108.3 1.34 65.8 2.20 135.9 1.07 147.3 0.98
224x224x224 144.1 108.4 1.33 66.6 2.16 138.7 1.04 146.7 0.98
256x256x256 142.3 107.8 1.32 67.7 2.10 141.1 1.01 144.4 0.99
257x257x257 137.4 107.8 1.27 66.5 2.07 131.7 1.04 128.6 1.07
288x288x288 147.2 110.0 1.34 74.5 1.97 142.0 1.04 146.7 1.00
320x320x320 145.9 112.5 1.30 70.1 2.08 144.5 1.01 139.2 1.05
384x384x384 147.6 110.7 1.33 76.0 1.94 140.7 1.05 131.6 1.12
448x448x448 149.4 114.4 1.31 70.9 2.11 145.3 1.03 144.9 1.03
500x500x500 146.4 115.1 1.27 70.4 2.08 144.5 1.01 144.8 1.01
512x512x512 146.8 114.5 1.28 63.0 2.33 141.4 1.04 105.5 1.39
768x768x768 146.6 114.8 1.28 73.3 2.00 147.3 0.99 127.7 1.15
1000x1000x1000 145.4 114.8 1.27 69.8 2.08 145.5 1.00 143.3 1.01
1001x1001x1001 142.3 113.9 1.25 68.5 2.08 140.7 1.01 136.8 1.04
1024x1024x1024 142.9 112.6 1.27 65.7 2.18 142.6 1.00 90.5 1.58
1536x1536x1536 141.5 115.3 1.23 72.3 1.96 142.2 0.99 88.3 1.60
2048x2048x2048 139.2 116.9 1.19 68.7 2.03 140.5 0.99 81.1 1.72
3072x3072x3072 140.8 117.6 1.20 71.2 1.98 143.9 0.98 144.0 0.98
4096x4096x4096 142.2 118.2 1.20 70.0 2.03 145.1 0.98 138.3 1.03
4097x4097x4097 141.2 116.6 1.21 70.1 2.01 143.6 0.98 135.0 1.05
64x64x1024 124.3 89.1 1.40 52.2 2.38 147.3 0.84 145.2 0.86
64x1024x64 137.6 95.5 1.44 54.5 2.52 144.4 0.95 146.0 0.94
256x256x1024 141.7 109.3 1.30 67.8 2.09 134.5 1.05 129.3 1.10
1024x64x64 123.0 103.8 1.18 60.8 2.02 126.4 0.97 135.1 0.91
1024x256x256 147.2 115.8 1.27 63.8 2.31 140.8 1.05 116.2 1.27
4096x96x96 135.7 111.9 1.21 71.6 1.89 124.5 1.09 115.4 1.18
4096x128x128 139.4 114.0 1.22 72.5 1.92 122.1 1.14 137.7 1.01
4096x144x144 140.4 115.2 1.22 72.3 1.94 119.8 1.17 138.8 1.01
4096x160x160 130.3 115.1 1.13 71.7 1.82 115.8 1.13 109.4 1.19
4096x176x176 127.6 115.5 1.10 73.5 1.74 110.9 1.15 103.9 1.23
8192x128x128 122.7 96.3 1.27 69.7 1.76 102.0 1.20 104.1 1.18
10000x8x8 68.8 94.1 0.73 47.8 1.44 106.6 0.64 111.4 0.62
10000x100x100 110.8 105.9 1.05 69.1 1.60 130.0 0.85 126.0 0.88
10000x1000x1000 145.9 119.3 1.22 73.9 1.97 144.3 1.01 140.9 1.04
10000x4000x4000 147.9 120.8 1.22 72.0 2.05 147.0 1.01 146.3 1.01
TRSM float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.2 0.4 0.44 0.2 0.84 0.1 1.40 0.2 1.16
3x3 0.5 0.7 0.68 0.6 0.84 0.3 1.39 0.4 1.16
4x4 1.2 2.0 0.58 1.2 0.93 0.9 1.23 1.1 1.06
6x6 3.0 3.1 0.97 2.6 1.15 2.4 1.25 2.7 1.10
8x8 6.6 4.7 1.40 4.8 1.37 5.7 1.16 6.2 1.06
12x12 10.0 7.4 1.34 7.4 1.35 13.5 0.74 14.9 0.67
16x16 33.1 7.7 4.27 8.9 3.73 23.4 1.41 26.0 1.27
24x24 51.9 12.0 4.32 10.6 4.91 43.5 1.19 49.0 1.06
32x32 91.9 14.6 6.30 11.7 7.84 64.1 1.43 61.8 1.49
48x48 92.9 21.2 4.38 12.7 7.32 93.0 1.00 85.8 1.08
64x64 103.0 27.1 3.80 13.1 7.89 111.4 0.92 98.2 1.05
96x96 140.5 37.5 3.74 21.0 6.69 147.8 0.95 112.2 1.25
100x100 116.3 37.0 3.15 21.2 5.47 127.5 0.91 101.0 1.15
128x128 150.8 46.2 3.26 23.2 6.49 173.4 0.87 119.1 1.27
192x192 197.6 60.4 3.27 32.3 6.12 207.0 0.95 131.6 1.50
200x200 198.3 59.8 3.32 33.0 6.01 194.4 1.02 128.4 1.54
256x256 166.8 69.8 2.39 37.3 4.47 210.2 0.79 136.5 1.22
257x257 182.3 66.0 2.76 36.8 4.95 186.9 0.98 124.5 1.46
384x384 222.6 91.0 2.45 50.8 4.39 230.9 0.96 139.0 1.60
500x500 223.6 108.7 2.06 58.4 3.83 227.5 0.98 135.1 1.66
512x512 178.8 109.7 1.63 51.5 3.47 243.1 0.74 135.4 1.32
768x768 232.0 140.6 1.65 70.5 3.29 260.3 0.89 140.5 1.65
1000x1000 261.0 156.6 1.67 81.8 3.19 262.5 0.99 140.6 1.86
1001x1001 246.2 154.5 1.59 80.1 3.08 254.2 0.97 143.0 1.72
1024x1024 190.7 155.7 1.23 50.0 3.82 268.2 0.71 138.3 1.38
1536x1536 246.1 180.8 1.36 85.0 2.90 272.0 0.90 141.9 1.73
2048x2048 208.8 191.3 1.09 70.6 2.96 267.2 0.78 134.7 1.55
3072x3072 242.8 211.1 1.15 80.2 3.03 266.3 0.91 133.3 1.82
4096x4096 242.9 211.7 1.15 81.5 2.98 259.3 0.94 130.6 1.86
4097x4097 231.2 212.5 1.09 94.4 2.45 254.5 0.91 136.1 1.70
64x4096 107.2 27.1 3.95 12.7 8.46 111.0 0.97 86.5 1.24
256x4096 164.0 70.1 2.34 36.4 4.50 205.8 0.80 132.7 1.24
1024x8 104.4 61.8 1.69 35.0 2.98 98.6 1.06 17.6 5.92
1024x64 176.0 134.1 1.31 49.4 3.56 226.4 0.78 83.8 2.10
1024x256 174.1 152.4 1.14 49.2 3.54 260.4 0.67 123.6 1.41
1024x4096 164.0 147.8 1.11 48.9 3.36 253.4 0.65 131.9 1.24
4096x8 50.7 28.8 1.76 23.6 2.15 45.8 1.11 11.4 4.46
4096x64 168.4 127.8 1.32 65.7 2.56 169.7 0.99 59.1 2.85
4096x256 225.0 185.3 1.21 81.1 2.78 244.5 0.92 115.0 1.96
4096x1024 221.1 219.8 1.01 86.5 2.56 266.8 0.83 134.6 1.64
TRSM double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.2 0.4 0.48 0.2 1.02 0.1 1.40 0.2 1.30
3x3 0.5 0.7 0.76 0.5 0.95 0.4 1.35 0.4 1.17
4x4 1.2 1.6 0.75 1.1 1.09 0.9 1.35 1.0 1.14
6x6 2.9 2.8 1.07 2.9 1.03 2.3 1.26 2.5 1.17
8x8 8.0 4.0 1.99 5.5 1.47 5.7 1.41 6.1 1.31
12x12 13.1 5.7 2.29 10.5 1.25 12.2 1.08 14.9 0.88
16x16 28.2 6.2 4.51 14.3 1.97 25.0 1.13 28.8 0.98
24x24 40.7 9.6 4.26 18.7 2.17 45.5 0.89 53.7 0.76
32x32 47.1 11.2 4.19 21.0 2.24 60.4 0.78 71.2 0.66
48x48 62.0 15.9 3.91 23.9 2.59 80.8 0.77 88.7 0.70
64x64 69.9 19.7 3.54 25.8 2.71 94.4 0.74 93.9 0.74
96x96 87.8 26.2 3.35 28.8 3.04 112.1 0.78 104.8 0.84
100x100 77.8 25.3 3.07 28.9 2.69 103.7 0.75 92.7 0.84
128x128 87.2 31.4 2.78 29.7 2.94 118.4 0.74 110.3 0.79
192x192 105.5 38.1 2.77 35.2 3.00 123.8 0.85 125.5 0.84
200x200 109.4 37.6 2.91 38.2 2.87 119.4 0.92 119.4 0.92
256x256 95.5 42.7 2.24 36.5 2.62 122.7 0.78 122.3 0.78
257x257 101.1 40.4 2.50 34.7 2.91 116.4 0.87 111.2 0.91
384x384 113.3 50.4 2.25 43.4 2.61 132.0 0.86 131.9 0.86
500x500 121.1 60.3 2.01 48.4 2.50 134.4 0.90 130.7 0.93
512x512 102.6 61.2 1.68 41.7 2.46 134.8 0.76 125.8 0.82
768x768 124.7 71.3 1.75 50.5 2.47 138.4 0.90 136.2 0.92
1000x1000 130.3 79.7 1.64 55.8 2.33 138.0 0.94 136.4 0.96
1001x1001 122.1 78.6 1.55 54.0 2.26 134.3 0.91 133.5 0.91
1024x1024 115.1 78.3 1.47 46.4 2.48 134.2 0.86 129.4 0.89
1536x1536 121.1 86.1 1.41 50.3 2.41 129.8 0.93 127.9 0.95
2048x2048 118.4 89.9 1.32 48.7 2.43 127.3 0.93 123.1 0.96
3072x3072 115.0 95.4 1.21 53.3 2.16 125.3 0.92 118.9 0.97
4096x4096 113.7 100.3 1.13 51.0 2.23 125.8 0.90 116.2 0.98
4097x4097 116.1 100.3 1.16 57.6 2.02 128.0 0.91 117.7 0.99
64x4096 65.5 18.9 3.46 25.2 2.60 94.5 0.69 70.9 0.92
256x4096 91.9 40.5 2.27 36.9 2.49 122.8 0.75 110.9 0.83
1024x8 59.2 44.9 1.32 27.8 2.13 52.4 1.13 104.1 0.57
1024x64 101.9 73.9 1.38 44.9 2.27 121.2 0.84 87.2 1.17
1024x256 117.9 79.6 1.48 47.0 2.51 135.7 0.87 64.7 1.82
1024x4096 108.5 72.6 1.49 44.0 2.47 119.4 0.91 107.0 1.01
4096x8 23.7 25.5 0.93 9.6 2.46 18.9 1.26 19.4 1.22
4096x64 86.0 77.7 1.11 38.7 2.22 78.9 1.09 43.6 1.97
4096x256 109.5 99.5 1.10 53.6 2.04 116.4 0.94 83.5 1.31
4096x1024 118.5 102.8 1.15 51.2 2.31 127.4 0.93 116.0 1.02
SYRK float
n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.1 0.3 0.36 0.2 0.68 0.1 0.96 0.0 4.71
3x3 0.3 0.9 0.38 0.4 0.74 0.3 1.03 0.1 4.44
4x4 0.8 1.8 0.47 1.0 0.80 0.8 1.03 0.2 5.00
6x6 1.8 4.5 0.40 2.2 0.81 2.0 0.91 0.5 3.64
8x8 5.0 10.3 0.49 4.4 1.13 4.6 1.10 1.1 4.70
12x12 8.1 21.3 0.38 10.5 0.77 10.2 0.79 3.2 2.55
16x16 26.7 41.8 0.64 18.2 1.47 23.6 1.13 6.9 3.84
24x24 45.7 47.8 0.96 32.9 1.39 45.3 1.01 18.8 2.43
32x32 83.8 60.9 1.38 45.0 1.86 76.0 1.10 36.1 2.32
48x48 112.6 109.6 1.03 59.4 1.89 112.9 1.00 69.4 1.62
64x64 134.5 127.4 1.06 74.0 1.82 144.4 0.93 91.9 1.46
96x96 168.1 162.4 1.04 82.2 2.05 167.9 1.00 117.7 1.43
100x100 145.7 156.2 0.93 60.4 2.41 148.0 0.98 108.5 1.34
128x128 187.0 185.4 1.01 86.7 2.16 189.1 0.99 128.3 1.46
192x192 219.2 216.3 1.01 96.9 2.26 221.2 0.99 139.8 1.57
200x200 207.8 214.6 0.97 81.2 2.56 210.2 0.99 137.7 1.51
256x256 229.8 186.8 1.23 96.2 2.39 224.8 1.02 140.3 1.64
257x257 210.4 216.6 0.97 105.0 2.00 207.8 1.01 130.5 1.61
384x384 249.5 235.1 1.06 100.7 2.48 238.2 1.05 140.2 1.78
500x500 249.4 244.1 1.02 88.2 2.83 244.4 1.02 142.1 1.75
512x512 259.6 216.2 1.20 96.9 2.68 247.0 1.05 141.0 1.84
768x768 276.8 264.7 1.05 110.6 2.50 265.3 1.04 250.4 1.11
1000x1000 274.5 267.5 1.03 104.4 2.63 272.9 1.01 243.1 1.13
1001x1001 264.3 264.9 1.00 104.2 2.54 263.4 1.00 242.4 1.09
1024x1024 270.1 265.4 1.02 91.5 2.95 247.3 1.09 240.7 1.12
1536x1536 275.7 272.7 1.01 113.2 2.44 275.9 1.00 254.1 1.09
2048x2048 273.2 271.3 1.01 103.2 2.65 264.7 1.03 244.9 1.12
3072x3072 278.2 269.9 1.03 107.9 2.58 274.5 1.01 231.4 1.20
4096x4096 275.8 261.3 1.06 56.9 4.85 276.6 1.00 231.2 1.19
4097x4097 270.3 271.3 1.00 121.6 2.22 281.0 0.96 237.4 1.14
64x4096 137.8 140.8 0.98 72.5 1.90 131.8 1.05 114.5 1.20
256x4096 226.0 218.4 1.03 91.3 2.48 214.9 1.05 139.8 1.62
1024x4096 254.1 253.4 1.00 89.9 2.83 242.0 1.05 231.9 1.10
4096x8 35.8 60.4 0.59 29.5 1.21 90.4 0.40 30.5 1.17
4096x64 142.2 222.1 0.64 69.5 2.05 151.2 0.94 89.2 1.59
4096x256 266.5 266.1 1.00 55.1 4.84 278.1 0.96 241.3 1.10
4096x1024 279.6 266.2 1.05 84.3 3.31 276.0 1.01 222.1 1.26
SYRK double
n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.2 0.3 0.56 0.2 0.95 0.1 1.31 0.0 7.29
3x3 0.5 0.8 0.57 0.5 1.02 0.4 1.24 0.1 6.45
4x4 1.2 1.9 0.60 1.1 1.03 0.9 1.29 0.2 6.99
6x6 2.6 4.6 0.57 2.7 0.98 2.4 1.09 0.5 5.23
8x8 6.8 9.5 0.71 4.5 1.51 5.6 1.20 1.2 5.76
12x12 10.7 17.4 0.62 10.4 1.03 12.0 0.89 3.2 3.38
16x16 28.9 25.9 1.11 10.4 2.77 24.6 1.18 7.3 3.94
24x24 45.4 34.6 1.31 23.5 1.93 42.6 1.07 19.1 2.38
32x32 57.8 40.2 1.44 18.1 3.19 56.7 1.02 33.7 1.71
48x48 77.4 56.0 1.38 30.7 2.52 75.5 1.03 64.8 1.19
64x64 85.9 62.6 1.37 25.9 3.31 85.6 1.00 87.1 0.99
96x96 101.5 76.7 1.32 35.0 2.90 102.3 0.99 111.0 0.91
100x100 94.9 77.5 1.22 29.9 3.18 95.9 0.99 94.3 1.01
128x128 111.7 73.7 1.52 30.1 3.71 110.5 1.01 111.8 1.00
192x192 123.9 92.6 1.34 35.6 3.48 119.2 1.04 108.9 1.14
200x200 124.3 95.7 1.30 41.7 2.98 115.6 1.07 97.5 1.27
256x256 123.5 68.7 1.80 36.4 3.39 118.6 1.04 100.5 1.23
257x257 116.5 99.2 1.17 37.0 3.15 114.3 1.02 107.6 1.08
384x384 134.2 92.6 1.45 45.7 2.93 129.6 1.04 125.5 1.07
500x500 134.4 112.0 1.20 51.2 2.62 131.8 1.02 126.0 1.07
512x512 133.0 88.6 1.50 39.5 3.36 128.8 1.03 117.4 1.13
768x768 139.2 107.8 1.29 51.4 2.71 138.5 1.00 137.8 1.01
1000x1000 138.0 116.1 1.19 58.8 2.35 137.6 1.00 136.7 1.01
1001x1001 134.2 115.7 1.16 57.0 2.35 133.7 1.00 134.6 1.00
1024x1024 133.2 114.2 1.17 42.5 3.13 136.5 0.98 129.0 1.03
1536x1536 131.7 114.2 1.15 48.4 2.72 135.5 0.97 129.7 1.02
2048x2048 131.4 114.8 1.14 49.0 2.68 135.5 0.97 128.8 1.02
3072x3072 130.8 119.7 1.09 49.8 2.62 136.6 0.96 130.7 1.00
4096x4096 131.4 119.7 1.10 49.3 2.66 137.0 0.96 126.6 1.04
4097x4097 134.6 119.1 1.13 54.8 2.46 139.8 0.96 131.4 1.02
64x4096 84.8 55.6 1.53 26.1 3.25 81.8 1.04 93.4 0.91
256x4096 122.2 84.7 1.44 38.1 3.20 118.6 1.03 110.0 1.11
1024x4096 125.7 108.4 1.16 38.5 3.27 128.7 0.98 122.5 1.03
4096x8 12.6 33.0 0.38 33.5 0.38 37.5 0.34 10.3 1.22
4096x64 73.4 106.7 0.69 64.3 1.14 64.9 1.13 57.7 1.27
4096x256 118.8 120.3 0.99 46.6 2.55 138.5 0.86 128.7 0.92
4096x1024 124.2 121.0 1.03 53.3 2.33 136.6 0.91 126.6 0.98
POTRF float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.4 0.2 2.01 0.4 1.07 0.3 1.10 0.1 2.91
3 0.8 0.4 2.02 1.1 0.70 1.0 0.74 0.2 4.01
4 1.0 0.6 1.71 2.0 0.49 1.9 0.53 0.3 3.81
6 1.5 1.2 1.27 2.1 0.70 1.2 1.22 0.4 3.33
8 2.3 1.8 1.29 2.7 0.85 1.7 1.34 0.7 3.34
12 4.1 3.5 1.15 3.9 1.03 2.7 1.48 1.2 3.25
16 6.1 5.4 1.14 4.9 1.26 4.3 1.43 1.9 3.19
24 9.4 10.0 0.94 5.7 1.66 5.0 1.88 3.5 2.68
32 11.4 14.5 0.78 7.2 1.57 6.8 1.67 5.3 2.15
48 19.7 15.9 1.24 9.3 2.12 9.0 2.18 8.9 2.21
64 26.7 24.6 1.09 10.2 2.62 10.6 2.53 12.6 2.12
96 41.0 37.9 1.08 11.2 3.66 12.6 3.26 24.3 1.68
100 36.0 35.8 1.01 11.2 3.21 12.7 2.83 24.9 1.45
128 72.9 51.6 1.41 11.8 6.15 13.5 5.38 35.9 2.03
192 104.3 67.7 1.54 54.6 1.91 95.3 1.09 61.2 1.70
200 97.1 63.5 1.53 53.5 1.81 99.4 0.98 61.1 1.59
256 140.8 85.7 1.64 59.2 2.38 115.1 1.22 83.8 1.68
257 120.2 82.1 1.46 60.2 2.00 113.1 1.06 75.0 1.60
384 174.6 108.2 1.61 72.0 2.43 153.2 1.14 119.8 1.46
500 178.4 113.0 1.58 79.3 2.25 178.8 1.00 136.5 1.31
512 173.1 120.8 1.43 71.7 2.41 171.0 1.01 138.8 1.25
768 212.6 146.7 1.45 77.5 2.74 191.5 1.11 180.2 1.18
1000 228.1 154.9 1.47 89.9 2.54 200.3 1.14 194.8 1.17
1001 216.8 151.3 1.43 85.9 2.52 198.9 1.09 175.5 1.24
1024 180.8 150.6 1.20 68.9 2.62 121.0 1.49 104.6 1.73
1536 235.6 182.1 1.29 94.2 2.50 230.6 1.02 204.5 1.15
2048 219.7 188.8 1.16 71.4 3.08 212.0 1.04 123.8 1.77
3072 238.1 203.7 1.17 94.0 2.53 220.1 1.08 121.0 1.97
4096 208.7 207.5 1.01 68.3 3.05 189.6 1.10 121.8 1.71
4097 230.7 207.4 1.11 97.5 2.37 224.5 1.03 137.5 1.68
POTRF double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.3 0.2 2.05 0.3 1.03 0.3 0.99 0.1 3.32
3 0.6 0.4 1.69 0.8 0.85 0.7 0.92 0.2 3.33
4 0.9 0.6 1.39 1.4 0.60 1.5 0.58 0.3 3.06
6 1.4 1.2 1.12 1.7 0.81 1.1 1.29 0.6 2.35
8 2.2 2.0 1.09 2.6 0.84 1.7 1.27 0.9 2.52
12 3.9 3.3 1.17 4.0 0.97 3.1 1.25 1.5 2.55
16 6.0 4.7 1.27 4.7 1.27 4.4 1.36 2.4 2.45
24 10.0 8.1 1.23 5.3 1.87 4.5 2.23 4.4 2.29
32 11.4 11.0 1.03 7.2 1.59 6.4 1.79 6.7 1.70
48 18.4 13.5 1.37 10.2 1.81 11.4 1.61 11.2 1.64
64 24.2 19.4 1.25 12.2 1.99 15.8 1.54 15.7 1.55
96 35.6 30.1 1.19 14.5 2.45 22.6 1.57 31.7 1.12
100 32.2 26.5 1.21 14.7 2.19 23.5 1.37 32.0 1.01
128 55.4 34.3 1.61 15.1 3.67 21.7 2.56 40.3 1.38
192 72.2 44.5 1.62 32.3 2.24 63.1 1.14 63.0 1.14
200 73.5 42.2 1.74 30.5 2.41 66.6 1.10 65.4 1.13
256 84.0 52.3 1.61 31.3 2.69 73.7 1.14 61.1 1.37
257 76.3 51.7 1.48 32.0 2.38 70.4 1.08 55.7 1.37
384 98.6 64.1 1.54 42.2 2.33 93.0 1.06 75.1 1.31
500 102.9 61.9 1.66 40.3 2.55 100.3 1.03 85.4 1.20
512 92.0 60.0 1.53 29.2 3.15 73.6 1.25 85.0 1.08
768 110.9 81.3 1.36 42.9 2.59 109.6 1.01 94.8 1.17
1000 120.8 77.4 1.56 49.4 2.45 117.9 1.02 98.8 1.22
1001 117.5 76.4 1.54 46.9 2.51 115.2 1.02 98.3 1.20
1024 104.8 74.0 1.42 41.8 2.51 74.0 1.42 96.5 1.09
1536 112.6 82.5 1.37 44.5 2.53 113.6 0.99 92.1 1.22
2048 100.2 86.6 1.16 38.8 2.58 93.8 1.07 90.4 1.11
3072 108.3 84.9 1.28 41.8 2.59 106.6 1.02 77.2 1.40
4096 83.7 81.3 1.03 30.7 2.73 90.1 0.93 74.9 1.12
4097 108.1 88.2 1.23 49.1 2.20 106.9 1.01 75.8 1.43
GETRF float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.1 1.59 0.6 0.40 0.6 0.41 1.0 0.24
3 0.5 0.3 1.49 1.3 0.38 1.4 0.36 0.8 0.62
4 0.8 0.5 1.55 2.7 0.30 3.1 0.27 1.4 0.59
6 1.5 1.0 1.53 1.7 0.92 1.4 1.09 1.9 0.83
8 2.4 1.5 1.58 2.0 1.21 1.3 1.88 2.1 1.15
12 4.5 2.5 1.77 2.4 1.85 2.0 2.27 4.6 0.97
16 6.8 3.4 2.02 3.3 2.04 3.0 2.29 6.5 1.05
24 6.9 6.4 1.07 5.2 1.33 5.0 1.39 10.4 0.66
32 10.2 8.4 1.21 7.8 1.31 7.6 1.34 13.5 0.75
48 17.5 14.6 1.20 11.3 1.55 13.9 1.26 18.4 0.95
64 25.8 19.2 1.35 15.5 1.66 21.1 1.22 22.5 1.15
96 41.3 30.2 1.37 18.4 2.24 36.9 1.12 28.2 1.47
100 37.9 30.7 1.23 18.6 2.04 37.4 1.01 28.4 1.33
128 62.9 38.8 1.62 23.4 2.69 53.2 1.18 22.7 2.77
192 91.2 56.8 1.61 30.7 2.97 84.3 1.08 30.5 2.99
200 89.2 56.9 1.57 30.9 2.89 86.7 1.03 31.4 2.84
256 108.8 69.8 1.56 37.1 2.93 110.5 0.98 51.7 2.10
257 102.3 66.8 1.53 36.2 2.83 102.7 1.00 49.0 2.09
384 143.2 90.4 1.58 47.3 3.03 146.5 0.98 77.7 1.84
500 152.5 102.0 1.50 53.4 2.86 163.7 0.93 96.3 1.58
512 142.7 105.4 1.35 53.8 2.66 165.3 0.86 59.6 2.39
768 187.1 131.5 1.42 67.6 2.77 197.3 0.95 135.2 1.38
1000 202.8 147.7 1.37 75.0 2.71 214.9 0.94 156.3 1.30
1001 194.6 147.6 1.32 73.8 2.64 210.3 0.93 154.2 1.26
1024 174.3 145.6 1.20 55.3 3.15 156.5 1.11 51.2 3.40
1536 218.9 176.6 1.24 87.6 2.50 220.9 0.99 121.7 1.80
2048 202.4 177.3 1.14 75.3 2.69 205.7 0.98 82.7 2.45
3072 200.0 186.7 1.07 85.6 2.34 211.7 0.94 101.7 1.97
4096 186.1 186.0 1.00 87.1 2.14 224.0 0.83 111.7 1.67
4097 191.2 191.8 1.00 100.9 1.90 238.2 0.80 156.8 1.22
GETRF double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.3 0.2 1.69 0.6 0.51 0.6 0.49 0.9 0.30
3 0.6 0.4 1.69 1.4 0.45 1.5 0.40 1.7 0.36
4 0.9 0.6 1.62 2.6 0.35 3.0 0.31 2.1 0.44
6 1.8 1.0 1.76 1.5 1.16 1.2 1.42 1.6 1.14
8 3.0 1.4 2.17 2.2 1.41 1.5 2.00 2.0 1.53
12 4.7 2.2 2.16 3.7 1.28 2.2 2.18 4.8 0.99
16 7.0 3.3 2.14 4.9 1.45 3.2 2.21 7.2 0.98
24 7.9 5.2 1.50 4.6 1.73 5.8 1.36 9.9 0.79
32 10.6 7.4 1.42 6.6 1.60 7.9 1.34 11.5 0.92
48 18.2 11.5 1.58 10.0 1.82 12.9 1.41 15.2 1.20
64 24.8 15.3 1.62 13.9 1.78 19.0 1.31 15.3 1.62
96 36.9 22.7 1.63 20.5 1.80 31.5 1.17 20.8 1.77
100 34.4 22.8 1.51 21.4 1.61 32.0 1.08 20.6 1.67
128 48.4 28.9 1.67 26.9 1.80 40.1 1.21 28.3 1.71
192 63.2 38.7 1.63 31.0 2.04 60.0 1.05 47.8 1.32
200 64.8 37.8 1.72 32.7 1.98 59.6 1.09 46.5 1.40
256 68.8 44.8 1.54 34.6 1.99 52.7 1.30 38.3 1.80
257 67.0 44.2 1.51 34.9 1.92 62.7 1.07 55.2 1.22
384 86.2 55.7 1.55 41.7 2.06 79.4 1.09 77.2 1.12
500 91.5 59.3 1.54 46.9 1.95 88.1 1.04 83.7 1.09
512 79.4 62.2 1.28 40.9 1.94 71.5 1.11 25.5 3.11
768 106.1 71.9 1.48 50.8 2.09 93.4 1.14 70.5 1.50
1000 113.7 77.9 1.46 55.5 2.05 106.3 1.07 105.5 1.08
1001 109.0 77.1 1.41 54.6 1.99 107.0 1.02 105.5 1.03
1024 105.5 78.0 1.35 45.4 2.32 104.0 1.01 39.0 2.71
1536 103.1 82.7 1.25 50.5 2.04 96.6 1.07 50.1 2.06
2048 93.6 82.9 1.13 50.0 1.87 93.4 1.00 55.1 1.70
3072 95.8 91.5 1.05 54.5 1.76 80.2 1.19 66.3 1.45
4096 86.3 95.4 0.90 49.4 1.75 116.9 0.74 34.3 2.51
4097 99.4 95.0 1.05 59.5 1.67 118.1 0.84 90.4 1.10
GEQRF float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.1 0.2 0.66 0.7 0.15 0.6 0.18 0.1 1.44
3x3 0.2 0.3 0.67 0.7 0.25 0.5 0.34 0.1 1.56
4x4 0.3 0.4 0.68 1.0 0.28 0.8 0.38 0.2 1.58
6x6 0.6 0.8 0.73 1.8 0.33 1.3 0.47 0.4 1.65
8x8 1.0 1.3 0.77 2.8 0.35 2.0 0.49 0.6 1.65
12x12 2.0 2.2 0.88 4.4 0.44 3.4 0.57 1.2 1.61
16x16 3.2 3.2 0.98 5.6 0.57 4.7 0.68 1.9 1.66
24x24 5.7 5.2 1.09 7.6 0.75 5.9 0.96 3.7 1.55
32x32 8.5 7.1 1.21 10.3 0.83 8.5 1.00 5.6 1.52
48x48 14.8 12.0 1.24 14.4 1.03 12.5 1.18 10.5 1.42
64x64 12.4 15.0 0.83 17.5 0.71 16.8 0.74 15.2 0.82
96x96 28.4 22.7 1.25 21.5 1.32 24.4 1.16 25.2 1.12
100x100 22.1 23.6 0.94 21.9 1.01 24.3 0.91 26.1 0.85
128x128 38.9 26.7 1.46 23.8 1.63 30.2 1.29 31.4 1.24
192x192 67.8 52.3 1.30 39.8 1.70 58.4 1.16 50.7 1.34
200x200 63.8 63.4 1.01 39.6 1.61 57.9 1.10 53.2 1.20
256x256 87.8 58.1 1.51 46.1 1.90 67.7 1.30 54.3 1.62
257x257 76.4 82.5 0.93 52.4 1.46 86.5 0.88 67.7 1.13
384x384 128.0 101.6 1.26 72.2 1.77 124.6 1.03 97.5 1.31
500x500 140.7 127.7 1.10 81.5 1.73 152.5 0.92 119.1 1.18
512x512 146.4 85.1 1.72 61.6 2.38 95.8 1.53 82.0 1.79
768x768 183.9 120.7 1.52 83.9 2.19 145.0 1.27 118.6 1.55
1000x1000 199.1 164.9 1.21 102.7 1.94 208.8 0.95 167.3 1.19
1001x1001 189.5 162.9 1.16 99.4 1.91 200.8 0.94 156.8 1.21
1024x1024 196.7 84.8 2.32 66.9 2.94 89.8 2.19 88.0 2.23
1536x1536 227.5 136.7 1.66 92.2 2.47 153.9 1.48 146.3 1.55
2048x2048 221.0 113.3 1.95 81.4 2.71 122.7 1.80 115.2 1.92
3072x3072 187.3 124.6 1.50 92.2 2.03 137.5 1.36 113.4 1.65
4096x4096 142.7 102.0 1.40 68.7 2.08 147.1 0.97 106.3 1.34
4097x4097 163.7 145.1 1.13 104.0 1.57 201.1 0.81 126.8 1.29
4096x8 54.2 38.3 1.42 29.4 1.84 68.0 0.80 41.6 1.30
4096x64 67.5 53.3 1.27 43.4 1.55 50.0 1.35 57.7 1.17
4096x256 144.6 85.4 1.69 78.5 1.84 61.2 2.36 95.0 1.52
4096x1024 205.6 133.8 1.54 96.4 2.13 138.9 1.48 143.2 1.43
10000x8 54.8 38.6 1.42 30.7 1.79 65.5 0.84 43.1 1.27
10000x100 66.5 39.5 1.68 64.6 1.03 97.2 0.68 39.9 1.66
10000x1000 155.7 143.3 1.09 100.9 1.54 170.1 0.92 155.3 1.00
10000x4000 160.3 144.6 1.11 114.2 1.40 204.4 0.78 159.9 1.00
100000x8 33.7 27.0 1.24 28.2 1.19 40.0 0.84 30.9 1.09
100000x64 33.9 31.6 1.07 44.5 0.76 52.1 0.65 29.6 1.14
100000x256 73.4 48.0 1.53 55.5 1.32 56.0 1.31 51.6 1.42
GEQRF double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.1 0.2 0.64 0.7 0.15 0.7 0.13 0.2 0.47
3x3 0.2 0.3 0.67 0.7 0.27 0.7 0.28 0.4 0.42
4x4 0.3 0.4 0.72 0.9 0.34 0.9 0.32 0.6 0.45
6x6 0.6 0.8 0.79 1.4 0.42 1.4 0.43 1.4 0.42
8x8 1.0 1.2 0.84 2.2 0.44 2.2 0.45 2.4 0.40
12x12 1.9 2.1 0.91 3.8 0.51 3.7 0.52 4.8 0.41
16x16 3.2 3.1 1.02 5.2 0.62 5.0 0.63 7.2 0.44
24x24 5.8 5.6 1.04 6.4 0.91 8.9 0.65 11.5 0.51
32x32 8.8 7.7 1.15 8.2 1.07 13.3 0.66 14.7 0.60
48x48 14.9 12.2 1.23 10.8 1.38 21.0 0.71 19.3 0.77
64x64 12.4 15.4 0.81 12.4 1.00 26.5 0.47 23.6 0.53
96x96 24.9 19.0 1.31 14.1 1.77 27.2 0.92 27.0 0.92
100x100 20.7 19.0 1.09 14.2 1.45 26.9 0.77 26.6 0.78
128x128 31.4 20.5 1.53 19.1 1.65 34.5 0.91 11.8 2.66
192x192 46.4 36.2 1.28 28.1 1.65 58.5 0.79 16.5 2.81
200x200 45.7 43.9 1.04 29.2 1.56 61.8 0.74 16.2 2.83
256x256 54.0 36.7 1.47 28.2 1.91 48.8 1.11 20.9 2.59
257x257 52.2 50.6 1.03 33.1 1.58 66.7 0.78 18.8 2.78
384x384 73.1 51.6 1.42 36.9 1.98 65.9 1.11 28.0 2.61
500x500 80.7 68.5 1.18 43.9 1.84 89.5 0.90 32.6 2.48
512x512 79.7 42.7 1.87 31.2 2.56 49.2 1.62 32.5 2.46
768x768 99.6 62.0 1.61 44.9 2.22 79.1 1.26 44.9 2.22
1000x1000 106.5 85.6 1.24 54.5 1.95 108.7 0.98 51.6 2.07
1001x1001 103.0 83.5 1.23 52.9 1.94 107.7 0.96 50.2 2.05
1024x1024 105.0 58.8 1.78 39.2 2.68 68.2 1.54 50.0 2.10
1536x1536 106.3 67.7 1.57 47.2 2.25 77.4 1.37 58.9 1.80
2048x2048 87.7 48.3 1.81 36.0 2.44 76.8 1.14 64.7 1.36
3072x3072 75.9 68.9 1.10 51.9 1.46 76.6 0.99 65.4 1.16
4096x4096 61.4 35.4 1.73 29.0 2.12 56.5 1.09 60.3 1.02
4097x4097 77.6 75.0 1.03 59.3 1.31 105.8 0.73 52.6 1.48
4096x8 25.4 15.6 1.62 15.8 1.61 35.2 0.72 28.4 0.89
4096x64 27.8 20.2 1.38 25.9 1.07 41.3 0.67 23.0 1.21
4096x256 60.3 40.0 1.51 43.3 1.39 44.7 1.35 67.1 0.90
4096x1024 74.5 67.2 1.11 51.2 1.45 65.6 1.14 72.6 1.03
10000x8 26.2 14.8 1.77 14.8 1.77 32.8 0.80 26.8 0.98
10000x100 28.0 18.5 1.51 32.7 0.85 49.7 0.56 19.9 1.40
10000x1000 67.8 66.2 1.02 56.6 1.20 63.6 1.07 68.6 0.99
10000x4000 76.4 75.4 1.01 66.0 1.16 90.5 0.84 74.2 1.03
100000x8 15.1 12.3 1.23 12.7 1.18 17.5 0.86 18.2 0.83
100000x64 12.3 9.2 1.33 19.8 0.62 18.5 0.66 8.6 1.43
100000x256 31.0 20.9 1.49 36.2 0.86 24.7 1.26 34.4 0.90
SYEV float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.8 0.6 1.53 0.6 1.41 0.6 1.53 0.3 2.46
3 0.8 0.5 1.64 0.6 1.53 0.5 1.69 0.3 3.01
4 1.0 0.7 1.43 0.8 1.20 0.8 1.32 0.4 2.49
6 1.6 1.3 1.28 1.4 1.14 1.3 1.26 0.7 2.18
8 2.2 1.6 1.34 2.1 1.05 1.9 1.18 1.1 1.96
12 3.5 2.7 1.32 3.7 0.95 2.8 1.27 2.0 1.75
16 5.2 3.4 1.52 5.2 0.98 5.1 1.01 3.0 1.71
24 7.9 4.9 1.60 8.1 0.97 6.5 1.22 5.1 1.55
32 10.8 6.3 1.72 10.6 1.02 10.4 1.03 7.2 1.49
48 16.4 9.1 1.81 14.8 1.11 15.4 1.06 9.9 1.65
64 21.3 10.8 1.97 19.0 1.13 21.0 1.02 14.7 1.45
96 32.5 13.7 2.37 25.7 1.27 30.2 1.07 22.6 1.44
100 31.8 13.8 2.30 25.7 1.24 30.1 1.05 21.8 1.46
128 42.8 14.6 2.94 29.9 1.43 36.7 1.17 29.0 1.48
192 62.0 17.0 3.64 36.9 1.68 50.5 1.23 41.2 1.51
200 60.3 17.4 3.47 38.4 1.57 51.2 1.18 42.3 1.43
256 76.5 18.3 4.17 42.8 1.79 59.2 1.29 50.5 1.51
257 64.3 18.8 3.43 44.5 1.44 60.8 1.06 48.1 1.34
384 98.6 20.5 4.82 55.8 1.77 82.6 1.19 69.0 1.43
500 94.5 21.0 4.51 61.8 1.53 97.1 0.97 74.2 1.27
512 104.2 20.6 5.06 59.8 1.74 92.8 1.12 74.9 1.39
768 113.4 21.2 5.35 69.3 1.64 117.5 0.97 89.4 1.27
1000 107.0 22.4 4.77 75.3 1.42 131.8 0.81 98.9 1.08
1001 100.7 22.1 4.55 71.3 1.41 130.7 0.77 74.7 1.35
1024 100.9 21.6 4.66 65.7 1.54 112.9 0.89 88.6 1.14
1536 118.6 20.5 5.78 76.1 1.56 142.5 0.83 102.6 1.16
2048 110.0 21.8 5.04 73.7 1.49 136.5 0.81 101.4 1.08
SYEV double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.8 0.6 1.39 0.5 1.46 0.5 1.60 0.4 1.77
3 0.6 0.5 1.40 0.5 1.31 0.4 1.43 0.3 1.94
4 0.8 0.6 1.29 0.7 1.22 0.6 1.38 0.5 1.78
6 1.2 1.0 1.26 1.1 1.08 1.0 1.20 0.8 1.50
8 1.7 1.4 1.25 1.6 1.07 1.5 1.18 1.2 1.42
12 2.9 2.2 1.34 2.7 1.09 2.3 1.25 2.2 1.32
16 3.9 2.8 1.37 3.8 1.01 4.1 0.94 3.2 1.20
24 6.1 4.0 1.53 5.8 1.05 6.7 0.91 5.2 1.18
32 8.3 5.0 1.65 7.4 1.12 9.0 0.92 7.3 1.14
48 12.3 6.3 1.95 10.1 1.22 13.6 0.91 9.9 1.24
64 16.3 7.4 2.22 12.0 1.36 16.5 0.99 13.4 1.22
96 23.8 8.8 2.72 16.2 1.47 24.5 0.97 18.5 1.28
100 24.0 8.8 2.74 15.7 1.53 24.3 0.99 18.2 1.32
128 29.9 9.4 3.18 17.6 1.70 27.6 1.08 22.1 1.35
192 39.3 13.3 2.95 22.5 1.75 37.8 1.04 29.2 1.35
200 39.4 10.6 3.72 22.4 1.76 38.5 1.02 30.3 1.30
256 42.7 11.0 3.88 24.3 1.76 40.8 1.05 33.5 1.28
257 39.6 11.1 3.57 24.2 1.64 42.3 0.94 31.3 1.27
384 52.1 13.7 3.80 28.6 1.82 52.4 0.99 40.4 1.29
500 48.4 16.2 2.99 30.8 1.57 58.0 0.83 43.0 1.12
512 47.4 11.8 4.01 27.7 1.71 51.7 0.92 39.9 1.19
768 54.7 14.0 3.90 32.8 1.67 66.9 0.82 45.5 1.20
1000 58.2 13.0 4.49 39.6 1.47 74.7 0.78 51.2 1.14
1001 51.4 14.6 3.51 38.9 1.32 72.8 0.71 38.9 1.32
1024 52.6 12.6 4.17 36.2 1.45 71.2 0.74 48.7 1.08
1536 49.4 17.1 2.90 39.9 1.24 77.1 0.64 51.3 0.96
2048 32.3 14.0 2.31 40.2 0.80 71.6 0.45 38.2 0.85
GESDD float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 2.4 0.3 8.43 0.3 7.41 0.3 7.83 0.1 16.54
3x3 1.7 0.5 3.20 0.6 2.95 0.5 3.11 0.3 5.86
4x4 1.8 0.9 2.02 0.9 1.93 0.9 2.04 0.5 3.69
6x6 2.0 1.6 1.23 1.6 1.22 1.5 1.30 0.9 2.08
8x8 2.2 2.4 0.90 2.4 0.88 2.3 0.94 1.6 1.35
12x12 2.6 3.9 0.68 4.6 0.58 3.7 0.72 2.8 0.92
16x16 4.6 5.0 0.92 6.2 0.74 6.3 0.73 4.4 1.04
24x24 6.8 6.9 0.98 9.4 0.72 7.6 0.89 7.1 0.95
32x32 10.1 12.0 0.84 13.2 0.76 13.2 0.76 10.9 0.93
48x48 16.2 19.0 0.85 20.6 0.78 20.0 0.81 14.8 1.09
64x64 24.2 30.6 0.79 30.9 0.78 33.7 0.72 24.0 1.01
96x96 40.6 45.4 0.89 43.6 0.93 49.6 0.82 42.0 0.97
100x100 40.8 46.6 0.88 43.8 0.93 47.8 0.86 41.4 0.99
128x128 53.1 61.0 0.87 51.6 1.03 65.4 0.81 57.0 0.93
192x192 85.9 94.2 0.91 73.2 1.17 97.1 0.88 92.5 0.93
200x200 88.5 98.0 0.90 74.6 1.19 95.3 0.93 94.5 0.94
256x256 104.7 104.9 1.00 78.4 1.34 101.0 1.04 105.8 0.99
257x257 112.7 126.7 0.89 88.5 1.27 122.5 0.92 118.1 0.95
384x384 160.4 161.7 0.99 106.8 1.50 155.1 1.03 160.8 1.00
500x500 188.0 198.7 0.95 120.4 1.56 179.2 1.05 180.3 1.04
512x512 153.9 135.6 1.13 93.3 1.65 127.8 1.20 142.0 1.08
768x768 205.5 189.7 1.08 120.8 1.70 176.0 1.17 181.7 1.13
1000x1000 244.2 253.6 0.96 140.4 1.74 217.1 1.12 211.1 1.16
1001x1001 237.2 251.6 0.94 138.0 1.72 215.4 1.10 203.5 1.17
1024x1024 166.8 127.3 1.31 88.4 1.89 126.1 1.32 133.7 1.25
1536x1536 232.4 206.9 1.12 126.0 1.84 186.3 1.25 187.7 1.24
2048x2048 216.8 176.7 1.23 113.7 1.91 161.9 1.34 166.3 1.30
4096x64 193.9 109.4 1.77 121.9 1.59 136.4 1.42 141.4 1.37
4096x256 309.9 187.4 1.65 154.3 2.01 159.8 1.94 218.5 1.42
4096x1024 257.6 196.3 1.31 130.3 1.98 199.5 1.29 204.2 1.26
10000x8 83.0 41.1 2.02 77.6 1.07 169.2 0.49 123.8 0.67
10000x100 217.6 108.5 2.00 152.8 1.42 244.6 0.89 126.9 1.71
10000x1000 303.3 311.9 0.97 193.9 1.56 351.5 0.86 318.5 0.95
GESDD double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 2.3 0.3 7.79 0.3 7.01 0.3 7.47 1.7 1.34
3x3 1.2 0.5 2.48 0.5 2.45 0.5 2.57 1.1 1.14
4x4 1.2 0.8 1.56 0.8 1.55 0.7 1.67 1.3 0.93
6x6 1.4 1.3 1.06 1.3 1.09 1.1 1.20 2.0 0.68
8x8 1.6 2.0 0.82 1.9 0.84 1.9 0.84 2.9 0.57
12x12 1.9 3.1 0.61 3.3 0.58 3.0 0.63 4.6 0.42
16x16 3.6 4.2 0.84 4.5 0.79 5.0 0.71 6.1 0.58
24x24 5.3 6.2 0.85 6.8 0.78 7.8 0.67 8.9 0.59
32x32 7.6 10.2 0.75 9.7 0.79 11.2 0.68 11.1 0.69
48x48 12.7 15.5 0.82 14.1 0.90 15.9 0.80 14.9 0.85
64x64 17.2 23.8 0.72 20.0 0.86 27.2 0.63 23.1 0.75
96x96 27.6 33.5 0.82 27.7 1.00 36.8 0.75 36.6 0.75
100x100 28.6 34.1 0.84 27.9 1.02 36.9 0.78 36.8 0.78
128x128 34.4 40.8 0.84 31.8 1.08 47.3 0.73 44.6 0.77
192x192 55.1 59.8 0.92 46.6 1.18 70.3 0.78 68.3 0.81
200x200 58.4 63.2 0.92 48.5 1.20 74.7 0.78 72.2 0.81
256x256 62.6 59.8 1.05 46.8 1.34 71.9 0.87 68.4 0.92
257x257 70.3 76.5 0.92 57.2 1.23 94.5 0.74 86.0 0.82
384x384 88.7 81.6 1.09 64.9 1.37 102.0 0.87 97.0 0.91
500x500 103.7 105.2 0.99 78.3 1.32 128.1 0.81 114.9 0.90
512x512 76.2 66.4 1.15 50.8 1.50 71.5 1.07 75.1 1.01
768x768 108.3 99.6 1.09 75.7 1.43 116.3 0.93 106.4 1.02
1000x1000 130.1 123.7 1.05 94.2 1.38 161.2 0.81 141.7 0.92
1001x1001 128.4 120.7 1.06 91.7 1.40 157.8 0.81 137.4 0.93
1024x1024 98.5 85.1 1.16 66.2 1.49 96.3 1.02 95.9 1.03
1536x1536 112.4 103.8 1.08 77.0 1.46 105.9 1.06 108.2 1.04
2048x2048 85.0 78.7 1.08 66.2 1.28 84.0 1.01 70.7 1.20
4096x64 84.5 55.8 1.52 64.8 1.30 103.5 0.82 66.6 1.27
4096x256 141.7 94.9 1.49 83.3 1.70 113.3 1.25 120.5 1.18
4096x1024 118.1 95.2 1.24 83.3 1.42 107.3 1.10 119.7 0.99
10000x8 38.7 29.1 1.33 40.4 0.96 95.5 0.40 82.2 0.47
10000x100 94.2 54.4 1.73 76.8 1.23 129.9 0.73 61.8 1.52
10000x1000 145.8 151.9 0.96 112.1 1.30 161.5 0.90 157.2 0.93
GEEV float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 2.7 0.3 8.46 0.3 8.06 0.3 7.88 0.1 24.44
3 1.3 0.5 2.70 0.5 2.56 0.5 2.56 0.2 6.23
4 1.7 0.8 2.24 0.9 1.95 0.8 2.05 0.4 4.79
6 2.1 1.5 1.44 1.6 1.34 1.4 1.47 0.7 3.09
8 3.0 2.0 1.48 2.5 1.18 2.3 1.32 1.1 2.65
12 4.4 3.3 1.36 3.7 1.21 3.2 1.40 2.0 2.27
16 6.6 4.2 1.57 5.1 1.29 4.8 1.39 2.8 2.36
24 9.1 6.1 1.48 7.7 1.18 6.9 1.31 4.8 1.91
32 12.4 7.7 1.61 10.0 1.25 9.2 1.36 6.7 1.87
48 17.3 9.8 1.76 13.6 1.27 12.9 1.34 10.1 1.71
64 19.8 11.8 1.68 16.1 1.23 14.5 1.36 13.1 1.52
96 25.4 12.9 1.97 15.3 1.66 16.0 1.58 12.2 2.08
100 23.9 13.4 1.78 15.7 1.53 16.1 1.49 13.0 1.85
128 28.1 16.1 1.74 20.5 1.37 21.3 1.31 17.1 1.64
192 34.0 33.4 1.02 32.0 1.06 36.8 0.93 28.4 1.20
200 31.9 36.5 0.87 33.5 0.95 35.8 0.89 29.4 1.09
256 34.1 43.4 0.79 41.2 0.83 48.1 0.71 38.4 0.89
257 33.1 44.6 0.74 41.7 0.79 47.6 0.70 38.8 0.85
384 36.9 64.3 0.57 61.0 0.60 75.3 0.49 61.5 0.60
500 37.4 80.1 0.47 75.7 0.49 95.9 0.39 78.4 0.48
512 35.3 39.0 0.91 40.8 0.86 44.1 0.80 40.1 0.88
768 39.2 85.2 0.46 83.8 0.47 108.6 0.36 89.5 0.44
1000 40.1 124.3 0.32 112.9 0.36 150.8 0.27 127.5 0.31
1001 38.8 126.8 0.31 106.4 0.36 152.8 0.25 126.1 0.31
1024 11.6 63.3 0.18 57.8 0.20 62.9 0.18 56.7 0.20
GEEV double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL oneMKL, vendor check bypassed GFLOP/s Eigen ÷ oneMKL, vendor check bypassed AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 2.7 0.3 8.26 1.5 1.84 0.9 3.06 0.2 18.05
3 1.1 0.5 2.23 1.0 1.13 1.1 1.06 0.3 3.73
4 1.2 0.7 1.76 1.3 0.97 1.3 0.93 0.5 2.51
6 1.8 1.3 1.47 2.0 0.90 2.2 0.85 1.0 1.93
8 2.8 1.7 1.60 2.7 1.01 2.9 0.96 1.4 1.93
12 3.8 2.6 1.46 3.9 0.97 4.2 0.91 2.4 1.57
16 5.5 3.5 1.57 4.8 1.15 5.2 1.06 3.4 1.61
24 7.7 4.8 1.60 6.1 1.28 7.0 1.10 5.5 1.41
32 9.8 6.2 1.57 7.1 1.39 8.4 1.18 7.2 1.36
48 13.2 7.7 1.71 8.1 1.63 10.5 1.26 10.4 1.27
64 15.1 9.1 1.66 9.2 1.64 11.5 1.31 12.5 1.21
96 17.5 8.9 1.96 10.2 1.72 13.3 1.31 11.6 1.51
100 16.8 9.2 1.83 10.2 1.65 13.1 1.28 12.2 1.37
128 18.2 11.0 1.65 12.7 1.44 13.8 1.32 14.4 1.26
192 19.5 20.8 0.94 18.7 1.04 24.2 0.81 24.6 0.79
200 21.2 21.9 0.97 18.8 1.12 24.1 0.88 26.0 0.81
256 20.3 23.0 0.88 20.2 1.01 25.3 0.80 27.1 0.75
257 19.7 26.4 0.75 23.6 0.83 30.4 0.65 31.0 0.63
384 21.2 36.1 0.59 32.6 0.65 43.1 0.49 43.2 0.49
500 20.6 45.0 0.46 40.0 0.52 55.2 0.37 53.9 0.38
512 12.6 17.2 0.73 10.7 1.18 11.2 1.13 17.2 0.73
768 17.8 36.0 0.50 31.1 0.57 38.2 0.47 42.3 0.42
1000 20.8 67.2 0.31 58.4 0.36 85.5 0.24 84.6 0.25
1001 19.5 66.3 0.29 57.4 0.34 84.2 0.23 82.1 0.24
1024 10.6 37.5 0.28 22.9 0.46 25.6 0.41 36.7 0.29