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.

The cells of the AVX-512 page measured again with Eigen compiled for AVX2 and FMA and every library held to its AVX2 kernels, on the same machine: what the comparison looks like on a CPU without AVX-512.

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)
Compiler GCC 13.3.0, -O3 -DNDEBUG -mavx2 -mfma, C++17
Eigen master 15f227178 (5.0.1-dev), default configuration, no external BLAS. The library runs were built with the older master 63a4163a6
Instruction sets every library limited to AVX2 and FMA through its own switch: OPENBLAS_CORETYPE=Zen, MKL_ENABLE_INSTRUCTIONS=AVX2, AOCL_ENABLE_INSTRUCTIONS=AVX2
OpenBLAS 0.3.26 (Ubuntu package, DYNAMIC_ARCH, OpenMP build); kernel target Zen, where it selects Cooperlake on this CPU unless limited; its LAPACK is the reference LAPACK it bundles
Intel oneMKL 2025.3 (Product Build 20251007), sequential LP64 interface, as shipped; on this AMD CPU it takes its generic code path with or without the limit
AMD AOCL 5.2.0 (Build 20251223): AOCL-BLIS libblis-mt for BLAS, AOCL-libFLAME for LAPACK; BLIS sub-configuration zen3, where it selects zen5 unless limited
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-14 to 2026-09-15 (72 runs, about 6.2 hours of measurement). Eigen: re-measured 2026-09-16 (36 runs, about 3.1 hours of measurement)
Harness benchmarks/comparison/run.py --isa x86-64-avx2 from Eigen merge request !2903, machine profile zen5-ai-max-395

The limits took effect: GEMM in double at n = 1024 ran at 121 and 105 GFLOP/s in OpenBLAS and AOCL without them and at 75 and 75 GFLOP/s with them, against 74 GFLOP/s for Eigen; oneMKL ran at 68 GFLOP/s either way.

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 session of 2026-09-14 and 2026-09-15. Eigen was re-measured on 2026-09-16, after changes to its Schur decomposition and divide-and-conquer SVD reached master: the same three binaries, rebuilt at that commit, ran their Eigen cells only, one pass each. The Eigen line on each chart is the median of the three passes and the shaded band is their spread, the run-to-run noise on this host: within 3 % for 83 % of the cells and above 10 % for 5 %. A ratio divides that median by the library’s rate from the earlier session. Eigen’s cells in that session bound 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. A few level-3 cells run at one of two rates, up to 2.5 times apart, depending on the binary rather than the session: SYRK and GEMM at n = 192, and in float at n = 256. Each rate is stable within a binary; the earlier session’s three binaries were split between the two, and the three rebuilt ones all run at the same one. This matches the per-call allocation of Eigen’s packing buffers described in libeigen/eigen#3201, measured there with the same AVX2 build on a Zen 4 core: at these sizes some processes page-fault the buffers in on every call, depending on their earlier allocations, and run at the lower rate. 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.

The dotted vertical lines on the charts mark the sizes at which the operands of the call, inputs and outputs together, fill the core’s L1 data cache (48 KiB), its L2 cache (1 MiB) and the L3 cache as the guest sees it (32 MiB).

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, while a call into a shared library pays a cost of its own before it reads an element. 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.50 ns per call for Eigen against 3.6 ns for OpenBLAS, 4.0 ns for oneMKL and 8.3 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: up to n = 32, Eigen’s AXPY holds at 2.6 to 3.0 ns per call where n is a multiple of the vector width, 4 in double and 8 in float, and at 4.0 ns where it is not and the remaining elements are written and reloaded through masked moves, while the same kernel cycling through 64 vectors instead of one took 0.8 to 1.4 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.9 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 1.52 2.37 0.81 0.88 0.95
AXPY float Intel oneMKL 1.48 2.54 1.47 1.79 1.25
AXPY float AOCL-BLIS 1.72 2.04 0.80 0.92 0.98
AXPY double OpenBLAS 1.67 1.92 1.11 1.01 0.94
AXPY double Intel oneMKL 1.57 2.53 2.05 1.91 1.12
AXPY double AOCL-BLIS 2.78 2.47 1.19 1.05 0.96
DOT float OpenBLAS 3.67 2.97 1.22 0.99 0.96
DOT float Intel oneMKL 4.97 3.23 2.18 1.84 1.22
DOT float AOCL-BLIS 7.44 3.54 1.27 1.05 1.00
DOT double OpenBLAS 6.21 2.25 1.12 0.95 0.99
DOT double Intel oneMKL 6.62 2.84 2.09 1.72 1.14
DOT double AOCL-BLIS 12.70 3.11 1.27 1.04 1.00
GEMV float OpenBLAS 1.95 1.33 0.98 0.78 –
GEMV float Intel oneMKL 2.64 2.01 1.18 0.89 –
GEMV float AOCL-BLIS 5.04 2.04 1.01 0.76 –
GEMV double OpenBLAS 2.31 1.37 0.96 0.73 –
GEMV double Intel oneMKL 3.29 1.79 1.12 0.88 –
GEMV double AOCL-BLIS 2.83 1.38 0.95 0.69 –
GEMM float OpenBLAS 1.99 1.08 0.97 0.99 –
GEMM float Intel oneMKL 2.65 1.14 1.11 1.16 –
GEMM float AOCL-BLIS 19.08 1.26 0.97 1.00 –
GEMM double OpenBLAS 2.05 1.06 0.98 0.99 –
GEMM double Intel oneMKL 2.94 1.19 1.01 1.02 –
GEMM double AOCL-BLIS 2.65 0.94 0.95 1.00 –
TRSM float OpenBLAS 0.68 0.34 0.64 0.81 –
TRSM float Intel oneMKL 1.39 1.86 1.74 1.43 –
TRSM float AOCL-BLIS 1.12 0.34 0.64 0.86 –
TRSM double OpenBLAS 0.99 0.87 0.88 0.89 –
TRSM double Intel oneMKL 1.32 1.13 1.16 1.15 –
TRSM double AOCL-BLIS 1.25 0.52 0.74 0.91 –
SYRK float OpenBLAS 0.62 0.80 0.91 0.96 –
SYRK float Intel oneMKL 1.19 1.28 1.28 1.50 –
SYRK float AOCL-BLIS 5.56 1.13 0.90 1.00 –
SYRK double OpenBLAS 0.76 1.03 1.01 0.98 –
SYRK double Intel oneMKL 1.34 1.84 1.41 1.42 –
SYRK double AOCL-BLIS 6.10 1.04 0.93 1.03 –
POTRF float OpenBLAS 0.93 0.76 0.91 0.92 –
POTRF float Intel oneMKL 0.60 2.33 1.43 1.59 –
POTRF float AOCL-BLIS 2.32 1.75 1.25 2.02 –
POTRF double OpenBLAS 1.02 0.86 1.04 0.97 –
POTRF double Intel oneMKL 0.73 1.67 1.48 1.37 –
POTRF double AOCL-BLIS 2.17 1.33 1.01 1.01 –
GETRF float OpenBLAS 1.47 0.92 0.90 0.91 –
GETRF float Intel oneMKL 0.73 1.50 1.60 1.27 –
GETRF float AOCL-BLIS 0.76 3.08 1.34 1.27 –
GETRF double OpenBLAS 1.57 1.37 0.96 0.94 –
GETRF double Intel oneMKL 0.68 1.33 1.09 1.08 –
GETRF double AOCL-BLIS 0.60 1.09 1.11 1.29 –
GEQRF float OpenBLAS 0.68 0.90 1.12 1.38 –
GEQRF float Intel oneMKL 0.31 0.86 1.28 1.41 –
GEQRF float AOCL-BLIS 1.57 1.36 1.24 1.69 –
GEQRF double OpenBLAS 0.71 0.94 1.12 1.39 –
GEQRF double Intel oneMKL 0.33 1.05 1.24 1.36 –
GEQRF double AOCL-BLIS 0.40 0.78 1.99 1.67 –
SYEV float OpenBLAS 1.41 2.01 3.71 4.10 –
SYEV float Intel oneMKL 1.16 1.13 1.33 1.20 –
SYEV float AOCL-BLIS 2.19 1.47 1.15 0.93 –
SYEV double OpenBLAS 1.30 1.96 2.97 2.49 –
SYEV double Intel oneMKL 1.15 1.23 1.25 0.90 –
SYEV double AOCL-BLIS 1.83 1.19 1.01 0.87 –
GESDD float OpenBLAS 1.72 0.88 0.95 1.06 –
GESDD float Intel oneMKL 1.53 0.82 1.24 1.47 –
GESDD float AOCL-BLIS 2.82 0.98 1.00 1.18 –
GESDD double OpenBLAS 1.46 0.79 0.95 1.10 –
GESDD double Intel oneMKL 1.41 0.84 1.03 1.16 –
GESDD double AOCL-BLIS 0.75 0.74 0.91 1.24 –
GEEV float OpenBLAS 2.23 1.84 0.55 – –
GEEV float Intel oneMKL 1.93 1.43 0.53 – –
GEEV float AOCL-BLIS 4.42 1.96 0.57 – –
GEEV double OpenBLAS 2.13 1.62 0.55 – –
GEEV double Intel oneMKL 1.10 1.43 0.58 – –
GEEV double AOCL-BLIS 3.33 1.34 0.49 – –

Caveats

  • Linux runs under WSL2, so absolute rates are a lower bound on bare-metal Linux.
  • The limits emulate an AVX2 CPU on Zen 5 silicon: the caches, memory bandwidth and branch predictor are those of this machine, not of an AVX2-only part.
  • oneMKL as shipped does not use its AVX2 or AVX-512 kernels on AMD CPUs.

Full tables

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

AXPY float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 1.0 0.9 1.11 0.8 1.24 0.7 1.51
3 1.5 1.3 1.16 1.2 1.27 1.0 1.59
4 2.0 1.7 1.18 1.6 1.29 1.4 1.43
6 3.0 2.3 1.31 2.2 1.40 1.8 1.64
8 6.2 2.9 2.18 3.3 1.90 2.8 2.26
12 6.1 3.9 1.58 4.3 1.41 3.9 1.57
16 12.5 4.6 2.71 6.2 2.01 5.5 2.25
24 18.7 5.6 3.36 8.6 2.16 8.2 2.29
32 24.9 11.1 2.24 10.6 2.36 11.3 2.21
48 37.4 10.6 3.54 13.9 2.70 15.9 2.36
64 42.6 21.9 1.94 16.4 2.60 19.8 2.15
96 52.8 28.4 1.86 19.7 2.68 28.4 1.86
100 50.0 23.0 2.17 18.7 2.68 28.4 1.76
128 58.5 29.2 2.00 21.9 2.67 33.7 1.73
192 32.9 39.8 0.83 24.6 1.34 40.9 0.81
256 33.1 43.9 0.75 26.0 1.27 44.1 0.75
384 40.1 50.2 0.80 27.8 1.44 50.7 0.79
512 41.3 54.2 0.76 28.7 1.44 52.3 0.79
768 42.2 55.3 0.76 29.8 1.41 55.5 0.76
1000 45.9 57.6 0.80 30.4 1.51 59.1 0.78
1001 59.7 57.3 1.04 30.1 1.98 58.7 1.02
1024 44.7 60.7 0.74 30.3 1.47 57.4 0.78
1536 49.1 63.5 0.77 29.6 1.66 60.9 0.81
2048 51.7 64.5 0.80 30.2 1.71 60.0 0.86
3072 54.4 66.1 0.82 30.8 1.76 62.0 0.88
4096 55.8 66.9 0.83 31.2 1.79 62.9 0.89
6144 56.3 60.7 0.93 31.0 1.81 62.2 0.90
8192 57.1 60.1 0.95 31.1 1.84 59.6 0.96
10000 58.2 60.3 0.96 31.5 1.85 58.4 1.00
12288 58.3 61.3 0.95 31.1 1.87 59.2 0.98
16384 58.5 62.5 0.94 32.0 1.83 58.4 1.00
32768 58.7 63.3 0.93 32.2 1.82 60.0 0.98
65536 59.0 64.2 0.92 31.6 1.86 63.6 0.93
100000 60.1 63.4 0.95 31.7 1.89 50.6 1.19
131072 41.1 48.7 0.84 31.1 1.32 44.7 0.92
262144 33.1 33.9 0.98 29.4 1.13 33.9 0.98
524288 30.2 30.1 1.00 29.1 1.04 30.5 0.99
1000000 29.6 30.2 0.98 28.8 1.03 30.0 0.99
1048576 28.6 28.8 0.99 28.7 1.00 28.9 0.99
2097152 27.0 27.4 0.98 26.9 1.00 28.7 0.94
4194304 17.6 19.7 0.90 16.7 1.06 19.3 0.92
8388608 11.8 12.7 0.93 11.6 1.02 11.7 1.01
16777216 10.1 10.5 0.96 7.9 1.28 10.1 1.00
AXPY double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 1.0 0.9 1.16 0.9 1.14 0.5 2.18
3 1.5 1.3 1.19 1.3 1.14 0.7 2.23
4 3.1 1.6 1.89 1.7 1.81 1.0 3.21
6 3.0 2.2 1.36 2.4 1.24 1.4 2.18
8 6.2 2.8 2.19 3.4 1.84 1.9 3.34
12 9.3 3.8 2.47 4.7 2.00 2.8 3.37
16 12.3 6.4 1.92 5.7 2.17 3.7 3.35
24 18.7 7.1 2.65 7.4 2.52 5.5 3.41
32 21.3 10.9 1.95 8.8 2.42 7.1 3.01
48 26.5 14.0 1.89 10.6 2.51 10.3 2.58
64 29.3 16.6 1.76 11.7 2.51 12.2 2.40
96 34.6 17.9 1.93 13.2 2.63 15.9 2.17
100 34.8 18.9 1.85 13.1 2.66 16.6 2.10
128 34.1 21.8 1.57 13.9 2.46 17.5 1.95
192 36.5 23.8 1.53 14.9 2.46 21.9 1.67
256 38.0 26.7 1.42 15.3 2.47 23.5 1.62
384 38.1 28.9 1.32 15.9 2.40 26.3 1.45
512 38.3 30.1 1.27 16.0 2.39 27.6 1.39
768 26.0 31.5 0.83 16.4 1.59 29.8 0.87
1000 28.0 31.5 0.89 16.5 1.70 30.6 0.92
1001 28.6 31.5 0.91 16.5 1.73 30.6 0.93
1024 31.2 32.2 0.97 16.5 1.89 30.6 1.02
1536 31.4 32.9 0.95 16.7 1.88 31.7 0.99
2048 34.9 33.3 1.05 16.8 2.08 32.3 1.08
3072 31.8 30.2 1.05 16.2 1.96 30.1 1.05
4096 31.2 30.0 1.04 16.4 1.91 27.4 1.14
6144 30.4 30.8 0.99 16.5 1.85 28.6 1.06
8192 31.3 30.5 1.03 16.5 1.89 29.7 1.05
10000 31.5 31.0 1.01 16.6 1.90 30.5 1.03
12288 30.9 31.2 0.99 16.6 1.87 30.7 1.01
16384 31.3 31.3 1.00 16.5 1.90 31.0 1.01
32768 31.3 31.2 1.00 16.4 1.91 31.7 0.99
65536 20.8 22.9 0.91 16.1 1.29 23.1 0.90
100000 17.9 18.5 0.97 16.1 1.12 18.4 0.97
131072 16.7 16.9 0.99 14.7 1.13 16.9 0.98
262144 15.1 15.2 0.99 14.7 1.03 15.2 1.00
524288 14.5 14.3 1.01 14.6 0.99 14.3 1.01
1000000 13.7 14.7 0.93 15.4 0.89 14.6 0.94
1048576 13.0 13.9 0.93 13.7 0.94 13.6 0.96
2097152 8.9 10.1 0.88 8.5 1.05 9.7 0.91
4194304 5.9 6.3 0.94 5.4 1.10 6.3 0.94
8388608 5.1 5.2 0.97 4.0 1.27 4.9 1.04
16777216 3.7 4.8 0.77 3.9 0.94 4.2 0.87
DOT float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 6.8 1.9 3.56 0.9 7.49 0.7 10.35
3 7.6 2.6 2.89 1.3 5.79 0.9 8.01
4 8.3 3.2 2.60 2.0 4.21 1.2 6.81
6 8.7 4.1 2.12 2.7 3.19 1.7 5.05
8 27.0 4.7 5.69 4.0 6.82 2.6 10.34
12 20.0 5.3 3.80 5.7 3.51 3.6 5.55
16 40.1 5.5 7.29 7.4 5.41 5.2 7.70
24 48.3 6.0 8.08 10.9 4.43 7.4 6.52
32 53.5 16.1 3.32 13.0 4.13 9.9 5.41
48 60.8 13.1 4.64 18.2 3.34 14.8 4.11
64 68.2 27.5 2.48 20.3 3.36 18.5 3.68
96 74.6 35.1 2.13 24.0 3.11 26.6 2.81
100 56.1 33.1 1.70 25.5 2.20 26.0 2.16
128 73.9 40.1 1.84 28.1 2.63 34.0 2.17
192 73.6 53.7 1.37 31.2 2.36 46.4 1.59
256 77.1 52.2 1.48 32.6 2.36 52.0 1.48
384 78.1 62.7 1.24 34.8 2.24 58.4 1.34
512 78.1 66.9 1.17 36.1 2.16 62.2 1.25
768 79.3 71.0 1.12 37.6 2.11 67.5 1.17
1000 79.9 68.9 1.16 38.2 2.09 70.0 1.14
1001 78.8 68.7 1.15 38.2 2.06 69.8 1.13
1024 79.8 72.8 1.10 37.8 2.11 70.8 1.13
1536 80.1 75.1 1.07 38.6 2.08 74.1 1.08
2048 80.3 76.8 1.05 38.9 2.06 76.1 1.05
3072 80.5 78.6 1.02 39.5 2.04 75.9 1.06
4096 78.5 79.2 0.99 39.7 1.98 77.3 1.02
6144 76.0 70.2 1.08 38.3 1.98 70.0 1.09
8192 69.3 68.8 1.01 38.8 1.78 69.0 1.00
10000 62.9 67.3 0.93 39.5 1.59 59.4 1.06
12288 62.2 69.2 0.90 39.6 1.57 59.1 1.05
16384 62.4 70.0 0.89 39.2 1.59 59.0 1.06
32768 60.9 71.5 0.85 38.7 1.57 60.6 1.00
65536 72.4 74.8 0.97 40.3 1.80 70.6 1.03
100000 77.8 79.1 0.98 39.7 1.96 74.6 1.04
131072 48.0 46.0 1.04 36.8 1.31 45.4 1.06
262144 33.9 34.1 0.99 31.3 1.08 34.2 0.99
524288 30.3 30.6 0.99 29.9 1.01 30.8 0.99
1000000 30.9 36.1 0.85 29.0 1.06 29.8 1.04
1048576 28.9 28.6 1.01 28.5 1.01 28.9 1.00
2097152 27.2 27.8 0.98 25.9 1.05 27.7 0.98
4194304 22.7 23.8 0.95 18.0 1.26 24.3 0.94
8388608 13.3 13.5 0.98 13.3 1.00 13.8 0.96
16777216 10.5 10.9 0.97 10.6 0.99 10.6 0.99
DOT double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 7.9 1.1 7.11 1.0 7.98 0.5 16.38
3 8.5 1.6 5.46 1.4 6.19 0.7 11.71
4 17.8 2.2 8.21 1.8 9.65 0.9 18.78
6 15.0 3.0 4.99 2.6 5.83 1.4 10.61
8 26.9 3.7 7.23 3.9 6.92 1.9 14.51
12 32.5 4.9 6.60 5.3 6.11 2.9 11.22
16 31.9 6.8 4.68 6.7 4.74 3.7 8.54
24 34.3 7.9 4.34 8.6 3.98 5.7 6.05
32 37.3 11.9 3.14 10.3 3.63 7.1 5.23
48 37.2 15.5 2.40 12.5 2.97 10.3 3.62
64 37.5 17.8 2.11 14.0 2.68 13.2 2.84
96 36.4 22.5 1.62 15.3 2.37 17.4 2.09
100 36.5 21.2 1.72 15.5 2.35 17.4 2.10
128 38.4 25.4 1.51 16.6 2.32 19.5 1.96
192 39.0 30.3 1.29 17.6 2.21 23.2 1.68
256 39.2 32.2 1.22 18.2 2.15 26.5 1.48
384 39.2 34.8 1.13 18.8 2.09 29.6 1.33
512 40.0 36.1 1.11 19.1 2.09 31.9 1.25
768 40.1 37.5 1.07 19.4 2.07 34.4 1.17
1000 40.1 37.3 1.08 19.6 2.05 35.6 1.13
1001 39.9 37.3 1.07 19.5 2.04 35.3 1.13
1024 40.0 38.1 1.05 19.6 2.04 35.5 1.13
1536 40.3 38.7 1.04 19.8 2.03 37.3 1.08
2048 39.3 39.1 1.01 19.9 1.98 38.1 1.03
3072 38.2 34.5 1.11 18.8 2.03 31.8 1.20
4096 34.6 34.3 1.01 18.8 1.84 29.8 1.16
6144 31.0 34.4 0.90 19.8 1.56 30.0 1.03
8192 31.0 34.9 0.89 19.9 1.56 31.0 1.00
10000 30.7 33.9 0.90 20.0 1.54 28.9 1.06
12288 30.4 35.3 0.86 20.0 1.52 32.0 0.95
16384 30.4 35.6 0.85 20.1 1.52 33.1 0.92
32768 36.2 37.6 0.96 20.1 1.80 36.5 0.99
65536 23.6 24.2 0.97 17.3 1.37 20.2 1.17
100000 18.5 18.4 1.00 17.5 1.06 18.5 1.00
131072 17.0 17.1 0.99 15.9 1.07 16.9 1.01
262144 15.2 15.0 1.01 15.0 1.01 15.2 1.00
524288 14.4 14.2 1.01 14.5 0.99 14.7 0.98
1000000 14.2 14.4 0.99 14.4 0.99 15.3 0.93
1048576 13.6 13.6 1.00 13.3 1.02 14.0 0.97
2097152 11.4 11.7 0.98 9.7 1.18 11.5 0.99
4194304 6.6 6.7 1.00 6.4 1.04 6.9 0.96
8388608 5.3 5.4 0.98 4.4 1.20 5.4 0.97
16777216 4.6 4.8 0.96 3.9 1.21 4.6 1.00
GEMV float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 1.1 0.7 1.51 0.5 2.27 0.2 4.80
3x3 1.9 1.5 1.31 0.9 2.05 0.5 4.23
4x4 5.9 2.1 2.79 1.7 3.52 0.8 7.71
6x6 7.2 3.9 1.85 3.2 2.27 1.8 3.96
8x8 20.0 7.9 2.54 6.3 3.16 3.1 6.48
12x12 27.7 14.2 1.96 11.5 2.41 6.2 4.47
16x16 53.0 24.6 2.15 16.8 3.15 11.5 4.62
24x24 76.3 40.5 1.89 28.6 2.67 19.2 3.98
32x32 97.2 54.9 1.77 36.8 2.64 30.0 3.24
48x48 91.0 76.2 1.19 49.3 1.85 47.1 1.93
64x64 130.5 92.0 1.42 55.2 2.36 54.2 2.41
96x96 119.9 105.1 1.14 60.0 2.00 75.4 1.59
100x100 84.7 86.6 0.98 60.3 1.40 68.0 1.25
128x128 90.1 77.6 1.16 58.6 1.54 72.7 1.24
192x192 81.2 79.9 1.02 61.7 1.32 77.2 1.05
200x200 78.8 79.6 0.99 62.8 1.25 78.4 1.00
256x256 80.9 80.2 1.01 62.5 1.29 78.5 1.03
257x257 70.3 70.3 1.00 51.9 1.36 67.6 1.04
384x384 80.7 80.6 1.00 62.6 1.29 79.1 1.02
500x500 71.1 76.4 0.93 64.1 1.11 70.6 1.01
512x512 71.1 76.6 0.93 60.8 1.17 74.5 0.95
768x768 64.6 60.4 1.07 54.7 1.18 58.7 1.10
1000x1000 64.5 52.4 1.23 46.0 1.40 54.9 1.17
1001x1001 50.2 61.1 0.82 50.6 0.99 51.3 0.98
1024x1024 43.3 50.3 0.86 56.9 0.76 54.4 0.80
1536x1536 65.5 55.8 1.17 57.8 1.13 57.1 1.15
2048x2048 34.1 43.1 0.79 51.4 0.66 48.4 0.70
3072x3072 17.7 27.2 0.65 18.2 0.98 23.2 0.76
4096x4096 12.9 18.5 0.69 14.3 0.90 19.7 0.65
4097x4097 11.9 17.8 0.67 13.8 0.87 19.1 0.63
8x10000 47.0 43.6 1.08 24.8 1.89 13.9 3.38
100x10000 53.8 49.7 1.08 51.9 1.04 47.3 1.14
1000x10000 22.4 28.5 0.78 17.5 1.28 22.3 1.00
4000x10000 16.5 19.5 0.84 16.1 1.02 18.2 0.90
10000x8 72.2 114.2 0.63 69.0 1.05 79.3 0.91
10000x100 58.0 55.5 1.04 48.9 1.18 53.2 1.09
10000x1000 20.2 27.7 0.73 20.2 1.00 26.8 0.75
10000x4000 16.9 19.3 0.88 16.3 1.04 18.8 0.90
GEMV double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 1.7 0.7 2.35 0.5 3.70 0.7 2.64
3x3 2.9 1.6 1.81 0.9 3.09 1.3 2.16
4x4 6.4 2.4 2.63 1.7 3.74 2.0 3.20
6x6 10.3 4.2 2.46 3.2 3.24 3.4 3.08
8x8 19.1 7.5 2.54 5.7 3.37 5.8 3.31
12x12 30.6 13.3 2.30 9.7 3.16 10.0 3.06
16x16 40.4 18.4 2.19 14.3 2.83 15.9 2.54
24x24 47.4 26.1 1.82 20.6 2.30 24.0 1.98
32x32 60.7 30.7 1.98 24.8 2.45 30.9 1.97
48x48 61.3 38.1 1.61 28.3 2.17 41.0 1.49
64x64 67.5 42.8 1.58 30.5 2.22 46.5 1.45
96x96 37.6 38.7 0.97 29.7 1.27 37.2 1.01
100x100 39.0 38.8 1.00 30.6 1.27 37.5 1.04
128x128 40.8 39.2 1.04 30.4 1.34 38.5 1.06
192x192 40.3 39.4 1.02 31.5 1.28 39.0 1.03
200x200 39.5 39.6 1.00 31.5 1.26 39.3 1.00
256x256 39.9 40.3 0.99 31.5 1.27 39.4 1.01
257x257 37.1 34.3 1.08 27.3 1.36 36.9 1.01
384x384 34.3 34.0 1.01 29.3 1.17 35.1 0.98
500x500 28.8 29.4 0.98 25.0 1.15 29.6 0.97
512x512 22.0 27.7 0.80 24.1 0.91 28.5 0.77
768x768 32.3 29.8 1.08 28.6 1.13 27.9 1.16
1000x1000 33.3 33.0 1.01 28.6 1.17 32.2 1.03
1001x1001 26.3 31.0 0.85 26.6 0.99 31.0 0.85
1024x1024 21.0 26.6 0.79 27.5 0.76 30.3 0.69
1536x1536 14.9 21.4 0.69 17.9 0.83 25.0 0.59
2048x2048 9.9 11.2 0.88 9.7 1.02 12.9 0.76
3072x3072 5.9 8.2 0.72 7.2 0.83 8.6 0.69
4096x4096 5.7 7.7 0.73 6.1 0.92 7.5 0.75
4097x4097 5.1 7.6 0.66 6.3 0.80 7.5 0.68
8x10000 37.1 21.4 1.73 21.9 1.69 15.6 2.38
100x10000 31.3 27.2 1.15 27.8 1.12 31.2 1.00
1000x10000 9.0 8.7 1.03 8.0 1.12 9.9 0.90
4000x10000 8.2 7.6 1.08 7.9 1.05 9.1 0.90
10000x8 35.6 50.9 0.70 34.6 1.03 64.0 0.56
10000x100 28.3 26.2 1.08 25.1 1.13 27.3 1.04
10000x1000 6.7 8.5 0.79 9.0 0.75 11.3 0.60
10000x4000 6.0 7.3 0.83 8.0 0.76 9.1 0.66
GEMM float
m×n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x2 2.1 0.6 3.55 0.4 4.89 0.0 58.25
3x3x3 5.4 1.7 3.24 1.1 4.72 0.1 45.08
4x4x4 22.3 4.1 5.49 3.0 7.34 0.3 78.09
6x6x6 15.7 8.8 1.79 7.1 2.20 0.9 16.64
8x8x8 22.9 19.7 1.16 13.3 1.72 2.2 10.40
12x12x12 34.9 44.7 0.78 32.2 1.08 6.9 5.09
16x16x16 83.3 69.5 1.20 62.2 1.34 16.3 5.10
24x24x24 116.0 99.2 1.17 91.1 1.27 42.0 2.76
32x32x32 119.3 110.1 1.08 111.1 1.07 74.9 1.59
48x48x48 140.4 126.5 1.11 122.6 1.14 119.2 1.18
64x64x64 138.4 132.6 1.04 126.1 1.10 135.9 1.02
96x96x96 147.9 140.2 1.05 130.0 1.14 150.6 0.98
100x100x100 139.0 135.2 1.03 120.3 1.16 140.5 0.99
128x128x128 148.1 141.4 1.05 130.3 1.14 152.4 0.97
160x160x160 150.7 147.3 1.02 133.3 1.13 156.7 0.96
192x192x192 91.7 149.4 0.61 132.7 0.69 156.7 0.59
200x200x200 152.9 149.3 1.02 131.5 1.16 153.1 1.00
224x224x224 153.3 150.0 1.02 134.3 1.14 156.2 0.98
256x256x256 153.0 149.8 1.02 133.6 1.15 152.2 1.01
257x257x257 149.6 146.2 1.02 125.3 1.19 147.4 1.01
288x288x288 154.6 152.5 1.01 134.8 1.15 154.4 1.00
320x320x320 153.7 152.4 1.01 134.8 1.14 153.8 1.00
384x384x384 154.9 152.8 1.01 135.2 1.15 155.5 1.00
448x448x448 154.5 153.9 1.00 135.8 1.14 155.8 0.99
500x500x500 153.1 153.4 1.00 133.7 1.15 154.3 0.99
512x512x512 154.7 153.5 1.01 135.4 1.14 151.7 1.02
768x768x768 154.9 155.4 1.00 136.2 1.14 154.9 1.00
1000x1000x1000 154.2 155.5 0.99 135.4 1.14 152.6 1.01
1001x1001x1001 153.4 154.4 0.99 132.9 1.15 152.5 1.01
1024x1024x1024 152.8 155.0 0.99 134.9 1.13 152.7 1.00
1536x1536x1536 152.5 153.8 0.99 134.3 1.14 153.3 0.99
2048x2048x2048 151.3 152.8 0.99 132.5 1.14 151.2 1.00
3072x3072x3072 152.9 152.9 1.00 132.7 1.15 153.2 1.00
4096x4096x4096 152.1 154.8 0.98 131.7 1.16 150.2 1.01
4097x4097x4097 152.3 155.7 0.98 124.6 1.22 152.1 1.00
64x64x1024 138.0 132.2 1.04 122.7 1.12 157.1 0.88
64x1024x64 145.1 139.7 1.04 131.8 1.10 154.1 0.94
256x256x1024 151.7 150.7 1.01 131.7 1.15 154.8 0.98
1024x64x64 143.9 145.1 0.99 118.6 1.21 86.6 1.66
1024x256x256 154.0 152.8 1.01 132.5 1.16 149.0 1.03
4096x96x96 146.0 148.5 0.98 123.3 1.18 95.1 1.53
4096x128x128 146.8 146.8 1.00 125.9 1.17 94.5 1.55
4096x144x144 151.4 152.1 1.00 126.7 1.20 94.0 1.61
4096x160x160 151.8 151.2 1.00 127.8 1.19 90.6 1.68
4096x176x176 152.1 152.0 1.00 128.1 1.19 81.5 1.87
8192x128x128 149.1 146.9 1.02 124.0 1.20 89.7 1.66
10000x8x8 104.7 111.9 0.94 100.1 1.05 84.0 1.25
10000x100x100 149.1 149.9 1.00 131.8 1.13 151.8 0.98
10000x1000x1000 149.6 153.6 0.97 126.4 1.18 153.1 0.98
10000x4000x4000 151.6 156.4 0.97 130.7 1.16 155.9 0.97
GEMM double
m×n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x2 2.1 0.6 3.52 0.4 4.73 0.3 6.79
3x3x3 5.5 1.6 3.40 1.2 4.67 1.0 5.34
4x4x4 22.4 3.9 5.76 3.0 7.53 2.3 9.65
6x6x6 15.6 9.6 1.62 7.2 2.17 7.8 2.01
8x8x8 20.3 19.6 1.04 11.4 1.78 16.3 1.24
12x12x12 39.3 31.9 1.23 26.6 1.48 34.6 1.14
16x16x16 46.1 42.7 1.08 23.3 1.98 49.9 0.92
24x24x24 60.9 55.3 1.10 53.4 1.14 65.9 0.92
32x32x32 64.4 59.3 1.09 38.5 1.67 68.0 0.95
48x48x48 69.1 66.3 1.04 66.4 1.04 74.3 0.93
64x64x64 70.0 66.4 1.05 55.1 1.27 75.8 0.92
96x96x96 73.7 71.5 1.03 73.3 1.01 78.4 0.94
100x100x100 72.8 69.6 1.05 62.6 1.16 73.8 0.99
128x128x128 74.3 68.0 1.09 63.2 1.18 77.8 0.96
160x160x160 75.2 72.9 1.03 67.7 1.11 76.8 0.98
192x192x192 40.6 73.7 0.55 75.0 0.54 78.2 0.52
200x200x200 75.5 74.5 1.01 68.2 1.11 77.1 0.98
224x224x224 75.4 74.2 1.02 68.4 1.10 78.2 0.96
256x256x256 75.4 71.4 1.06 70.2 1.07 78.1 0.97
257x257x257 74.8 71.7 1.04 68.4 1.09 74.8 1.00
288x288x288 76.6 75.3 1.02 77.3 0.99 78.7 0.97
320x320x320 76.4 75.2 1.02 71.7 1.07 78.0 0.98
384x384x384 76.9 74.9 1.03 77.9 0.99 77.7 0.99
448x448x448 76.7 75.3 1.02 74.5 1.03 76.0 1.01
500x500x500 76.8 75.0 1.02 73.0 1.05 75.7 1.01
512x512x512 76.3 74.1 1.03 67.7 1.13 75.0 1.02
768x768x768 75.6 74.8 1.01 75.6 1.00 76.5 0.99
1000x1000x1000 75.7 74.9 1.01 74.0 1.02 76.3 0.99
1001x1001x1001 75.3 74.2 1.01 72.7 1.03 75.9 0.99
1024x1024x1024 74.3 74.5 1.00 70.3 1.06 75.5 0.98
1536x1536x1536 74.8 75.0 1.00 75.6 0.99 76.0 0.98
2048x2048x2048 75.0 75.1 1.00 70.8 1.06 74.6 1.01
3072x3072x3072 75.1 76.1 0.99 74.4 1.01 76.0 0.99
4096x4096x4096 74.1 75.8 0.98 72.9 1.02 71.0 1.04
4097x4097x4097 74.5 75.1 0.99 73.0 1.02 75.7 0.98
64x64x1024 68.4 62.0 1.10 54.1 1.26 73.5 0.93
64x1024x64 72.8 70.2 1.04 56.8 1.28 76.5 0.95
256x256x1024 75.5 70.8 1.07 69.9 1.08 73.5 1.03
1024x64x64 66.4 65.0 1.02 69.0 0.96 70.2 0.95
1024x256x256 76.3 71.4 1.07 66.6 1.15 76.7 1.00
4096x96x96 72.6 73.2 0.99 68.7 1.06 71.5 1.01
4096x128x128 73.6 67.8 1.08 70.4 1.05 70.6 1.04
4096x144x144 74.5 74.1 1.00 70.9 1.05 70.7 1.05
4096x160x160 73.6 73.4 1.00 71.3 1.03 70.8 1.04
4096x176x176 74.3 73.8 1.01 71.5 1.04 71.4 1.04
8192x128x128 70.6 67.6 1.05 42.0 1.68 67.2 1.05
10000x8x8 49.6 44.2 1.12 51.6 0.96 59.5 0.83
10000x100x100 70.4 70.4 1.00 73.4 0.96 72.3 0.97
10000x1000x1000 73.0 75.6 0.97 76.5 0.95 75.5 0.97
10000x4000x4000 74.1 75.8 0.98 75.1 0.99 77.0 0.96
TRSM float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.4 0.4 1.10 0.2 1.99 0.2 2.71
3x3 1.1 0.8 1.39 0.6 1.85 0.4 2.38
4x4 1.9 2.6 0.73 1.2 1.55 1.1 1.75
6x6 3.7 3.8 0.98 2.6 1.40 2.8 1.34
8x8 5.3 9.7 0.54 4.8 1.11 6.5 0.81
12x12 7.5 22.4 0.34 7.4 1.02 15.3 0.49
16x16 9.9 29.6 0.34 8.9 1.12 26.6 0.37
24x24 13.4 52.1 0.26 10.5 1.27 49.0 0.27
32x32 17.5 58.0 0.30 11.7 1.50 61.1 0.29
48x48 24.7 83.1 0.30 12.7 1.95 84.3 0.29
64x64 31.5 91.8 0.34 13.0 2.42 97.3 0.32
96x96 42.6 109.2 0.39 21.0 2.03 113.3 0.38
100x100 42.5 102.5 0.42 21.2 2.01 101.6 0.42
128x128 48.9 114.1 0.43 23.4 2.08 119.9 0.41
192x192 65.2 130.6 0.50 32.3 2.02 133.1 0.49
200x200 68.4 127.6 0.54 33.2 2.06 129.6 0.53
256x256 73.6 131.6 0.56 37.5 1.96 138.1 0.53
257x257 75.3 126.3 0.60 37.2 2.02 126.0 0.60
384x384 88.5 140.8 0.63 51.5 1.72 143.5 0.62
500x500 99.9 142.2 0.70 60.3 1.66 141.0 0.71
512x512 89.5 143.8 0.62 52.4 1.71 141.7 0.63
768x768 111.7 148.9 0.75 72.0 1.55 148.3 0.75
1000x1000 121.9 150.6 0.81 83.7 1.46 149.8 0.81
1001x1001 120.9 148.4 0.82 81.9 1.48 147.5 0.82
1024x1024 85.0 149.2 0.57 50.4 1.69 142.1 0.60
1536x1536 124.5 150.1 0.83 86.6 1.44 146.6 0.85
2048x2048 108.1 148.6 0.73 71.2 1.52 140.2 0.77
3072x3072 114.4 148.4 0.77 82.7 1.38 142.1 0.81
4096x4096 124.1 145.8 0.85 84.3 1.47 128.3 0.97
4097x4097 130.6 147.0 0.89 97.8 1.34 140.5 0.93
64x4096 29.5 92.2 0.32 13.0 2.28 90.5 0.33
256x4096 73.1 135.3 0.54 37.3 1.96 132.9 0.55
1024x8 60.3 57.1 1.06 34.0 1.78 18.3 3.30
1024x64 81.0 128.4 0.63 49.9 1.62 83.6 0.97
1024x256 85.4 145.5 0.59 49.6 1.72 121.4 0.70
1024x4096 81.7 141.5 0.58 49.1 1.67 135.4 0.60
4096x8 32.6 31.2 1.05 23.1 1.41 8.0 4.05
4096x64 95.8 109.5 0.88 66.8 1.44 42.7 2.25
4096x256 123.2 140.9 0.87 83.4 1.48 97.1 1.27
4096x1024 133.5 147.7 0.90 87.5 1.53 130.5 1.02
TRSM double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.4 0.4 1.03 0.2 2.32 0.2 2.82
3x3 1.0 0.8 1.33 0.5 2.00 0.4 2.39
4x4 1.9 1.9 0.98 1.1 1.80 1.0 1.83
6x6 3.7 3.4 1.09 2.8 1.28 2.7 1.35
8x8 5.5 6.4 0.86 5.3 1.04 5.6 0.97
12x12 8.5 9.2 0.92 10.1 0.84 13.7 0.62
16x16 10.6 13.0 0.81 13.8 0.76 22.5 0.47
24x24 15.5 19.0 0.81 18.1 0.86 34.8 0.45
32x32 19.4 23.3 0.83 20.4 0.95 42.3 0.46
48x48 25.4 30.1 0.84 23.7 1.07 53.8 0.47
64x64 29.3 34.2 0.86 25.7 1.14 59.3 0.49
96x96 37.4 41.2 0.91 28.5 1.31 64.3 0.58
100x100 38.5 41.3 0.93 28.8 1.34 63.4 0.61
128x128 39.9 45.3 0.88 29.5 1.35 66.5 0.60
192x192 48.0 50.2 0.96 35.5 1.35 71.1 0.68
200x200 50.1 50.9 0.99 38.8 1.29 70.3 0.71
256x256 42.9 52.8 0.81 37.6 1.14 70.4 0.61
257x257 51.5 51.6 1.00 35.9 1.44 68.2 0.76
384x384 57.2 59.7 0.96 44.4 1.29 71.8 0.80
500x500 62.4 62.2 1.00 50.2 1.24 71.2 0.88
512x512 32.4 61.5 0.53 42.6 0.76 61.4 0.53
768x768 62.5 65.7 0.95 52.1 1.20 73.4 0.85
1000x1000 67.5 67.6 1.00 58.1 1.16 73.9 0.91
1001x1001 67.1 67.1 1.00 56.6 1.19 73.1 0.92
1024x1024 45.2 66.5 0.68 50.1 0.90 72.3 0.63
1536x1536 55.2 68.1 0.81 52.2 1.06 71.9 0.77
2048x2048 60.0 67.8 0.88 49.8 1.21 68.6 0.87
3072x3072 64.7 69.1 0.94 54.9 1.18 69.6 0.93
4096x4096 62.9 68.2 0.92 50.0 1.26 54.7 1.15
4097x4097 62.6 68.2 0.92 59.7 1.05 71.4 0.88
64x4096 26.7 33.3 0.80 25.6 1.04 53.1 0.50
256x4096 42.0 50.4 0.83 37.5 1.12 69.1 0.61
1024x8 34.6 22.4 1.54 30.5 1.13 20.8 1.66
1024x64 43.9 54.6 0.80 47.3 0.93 60.6 0.72
1024x256 45.7 64.0 0.71 49.8 0.92 70.6 0.65
1024x4096 43.0 62.9 0.68 46.5 0.92 43.5 0.99
4096x8 12.4 9.7 1.27 8.6 1.44 1.5 8.37
4096x64 46.1 43.8 1.05 38.5 1.20 11.7 3.94
4096x256 63.4 60.8 1.04 50.8 1.25 29.7 2.14
4096x1024 64.1 67.1 0.96 49.9 1.29 53.9 1.19
SYRK float
n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.2 0.3 0.57 0.2 1.13 0.0 7.85
3x3 0.5 0.9 0.59 0.4 1.19 0.1 7.08
4x4 1.2 1.9 0.65 1.0 1.20 0.2 7.51
6x6 1.9 4.4 0.42 2.3 0.79 0.5 3.71
8x8 7.0 10.0 0.71 4.5 1.58 1.1 6.61
12x12 13.6 19.3 0.71 11.2 1.21 3.2 4.30
16x16 26.8 36.3 0.74 19.4 1.38 7.1 3.75
24x24 43.1 61.4 0.70 34.0 1.27 18.7 2.30
32x32 53.1 78.2 0.68 46.0 1.15 36.1 1.47
48x48 76.2 98.0 0.78 60.0 1.27 69.7 1.09
64x64 86.4 108.2 0.80 74.5 1.16 93.4 0.93
96x96 104.6 116.2 0.90 82.1 1.27 118.5 0.88
100x100 98.1 111.2 0.88 60.6 1.62 108.0 0.91
128x128 107.5 120.2 0.89 83.4 1.29 128.0 0.84
192x192 60.6 130.4 0.46 95.8 0.63 140.3 0.43
200x200 126.2 131.6 0.96 81.5 1.55 137.0 0.92
256x256 128.3 117.8 1.09 94.6 1.36 139.4 0.92
257x257 128.8 129.1 1.00 106.1 1.21 129.7 0.99
384x384 136.7 142.3 0.96 102.7 1.33 141.2 0.97
500x500 139.1 143.1 0.97 90.3 1.54 145.5 0.96
512x512 138.4 135.0 1.02 99.4 1.39 137.8 1.00
768x768 145.4 148.3 0.98 113.2 1.28 145.7 1.00
1000x1000 145.9 150.6 0.97 106.6 1.37 148.0 0.99
1001x1001 142.6 149.4 0.95 106.3 1.34 146.8 0.97
1024x1024 133.9 150.0 0.89 95.2 1.41 137.7 0.97
1536x1536 145.0 151.3 0.96 115.9 1.25 149.2 0.97
2048x2048 138.5 151.0 0.92 100.2 1.38 141.0 0.98
3072x3072 143.8 152.2 0.95 111.6 1.29 147.8 0.97
4096x4096 146.2 149.1 0.98 50.3 2.90 133.4 1.10
4097x4097 148.1 150.7 0.98 125.1 1.18 147.5 1.00
64x4096 86.5 107.3 0.81 72.1 1.20 115.6 0.75
256x4096 125.8 133.7 0.94 94.1 1.34 116.4 1.08
1024x4096 128.1 149.1 0.86 97.8 1.31 136.6 0.94
4096x8 68.9 65.8 1.05 23.4 2.95 21.9 3.15
4096x64 142.5 135.8 1.05 115.2 1.24 83.8 1.70
4096x256 145.2 151.3 0.96 48.4 3.00 128.8 1.13
4096x1024 145.5 150.3 0.97 60.9 2.39 134.7 1.08
SYRK double
n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.2 0.3 0.72 0.2 1.22 0.0 9.49
3x3 0.6 0.8 0.70 0.5 1.27 0.1 8.04
4x4 1.5 1.8 0.81 1.1 1.32 0.2 9.15
6x6 2.3 4.1 0.57 2.7 0.85 0.5 4.65
8x8 7.5 8.4 0.89 4.5 1.67 1.1 6.79
12x12 15.7 17.0 0.92 11.0 1.43 3.2 4.87
16x16 19.7 25.3 0.78 10.7 1.84 6.8 2.92
24x24 33.0 36.4 0.91 23.8 1.39 18.4 1.79
32x32 40.6 43.7 0.93 18.2 2.23 31.1 1.30
48x48 50.2 49.4 1.02 30.9 1.62 53.2 0.94
64x64 51.8 50.7 1.02 26.0 1.99 62.4 0.83
96x96 60.6 55.4 1.09 35.1 1.73 70.8 0.86
100x100 60.5 55.6 1.09 30.2 2.00 69.6 0.87
128x128 61.4 52.5 1.17 29.9 2.05 62.5 0.98
192x192 26.6 59.7 0.45 36.5 0.73 63.9 0.42
200x200 68.3 60.8 1.12 42.9 1.59 65.6 1.04
256x256 67.0 58.1 1.15 39.3 1.71 65.4 1.02
257x257 68.3 58.3 1.17 38.1 1.79 61.4 1.11
384x384 71.5 62.7 1.14 47.0 1.52 70.3 1.02
500x500 72.9 64.7 1.13 53.6 1.36 71.9 1.01
512x512 68.8 62.1 1.11 35.7 1.93 68.0 1.01
768x768 72.1 68.2 1.06 53.6 1.35 73.9 0.98
1000x1000 71.3 69.1 1.03 61.1 1.17 75.2 0.95
1001x1001 69.7 68.5 1.02 59.1 1.18 73.7 0.95
1024x1024 68.2 68.6 0.99 40.2 1.69 70.9 0.96
1536x1536 69.8 70.9 0.98 51.1 1.37 73.0 0.96
2048x2048 70.8 72.2 0.98 47.4 1.49 70.8 1.00
3072x3072 72.2 73.3 0.99 50.8 1.42 72.2 1.00
4096x4096 70.7 73.8 0.96 44.3 1.60 57.2 1.24
4097x4097 72.5 73.2 0.99 57.3 1.27 74.3 0.98
64x4096 50.7 47.5 1.07 26.8 1.89 67.1 0.76
256x4096 65.5 58.1 1.13 39.0 1.68 66.3 0.99
1024x4096 67.0 68.2 0.98 39.0 1.72 68.6 0.98
4096x8 29.5 32.0 0.92 34.5 0.85 8.6 3.43
4096x64 70.4 70.0 1.00 65.9 1.07 47.3 1.49
4096x256 73.1 74.0 0.99 45.2 1.62 53.6 1.36
4096x1024 72.6 73.6 0.99 40.4 1.79 54.6 1.33
POTRF float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.2 1.27 0.3 0.71 0.1 1.66
3 0.5 0.4 1.14 1.1 0.44 0.2 2.48
4 0.6 0.7 0.92 1.6 0.41 0.3 2.43
6 1.0 1.3 0.75 2.1 0.46 0.4 2.22
8 1.6 2.1 0.76 2.7 0.59 0.7 2.36
12 3.0 3.6 0.83 4.0 0.76 1.2 2.46
16 5.3 5.4 0.98 4.9 1.08 1.9 2.80
24 9.5 8.4 1.12 5.6 1.67 3.4 2.76
32 9.9 11.8 0.84 7.2 1.37 5.2 1.88
48 16.7 25.3 0.66 9.3 1.81 8.9 1.89
64 23.3 36.5 0.64 10.2 2.28 12.7 1.84
96 35.0 52.8 0.66 11.2 3.12 24.3 1.44
100 31.2 48.2 0.65 11.3 2.76 24.6 1.27
128 53.7 65.3 0.82 11.7 4.61 35.6 1.51
192 72.6 90.8 0.80 54.6 1.33 58.9 1.23
200 75.1 81.9 0.92 54.0 1.39 59.4 1.26
256 90.2 101.3 0.89 59.8 1.51 70.7 1.28
257 82.6 96.3 0.86 60.6 1.36 70.9 1.17
384 107.8 115.3 0.94 73.9 1.46 91.4 1.18
500 108.6 110.5 0.98 82.0 1.32 106.8 1.02
512 106.4 117.4 0.91 75.1 1.42 93.6 1.14
768 122.9 133.5 0.92 80.4 1.53 104.8 1.17
1000 131.7 133.1 0.99 93.5 1.41 126.4 1.04
1001 128.7 131.2 0.98 88.4 1.46 114.1 1.13
1024 110.6 130.1 0.85 71.9 1.54 41.8 2.65
1536 131.8 141.6 0.93 97.0 1.36 94.8 1.39
2048 125.3 140.2 0.89 71.6 1.75 52.1 2.41
3072 130.6 139.0 0.94 96.9 1.35 66.6 1.96
4096 122.2 137.6 0.89 49.0 2.49 41.1 2.97
4097 130.0 137.1 0.95 101.2 1.29 76.1 1.71
POTRF double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.2 1.50 0.3 0.78 0.1 2.53
3 0.4 0.4 1.15 0.6 0.77 0.2 2.13
4 0.7 0.7 1.01 1.4 0.47 0.3 2.13
6 1.0 1.3 0.76 1.7 0.59 0.6 1.68
8 1.6 2.1 0.79 2.6 0.62 0.9 1.81
12 3.4 3.4 0.99 4.0 0.85 1.4 2.45
16 5.6 5.0 1.12 4.7 1.21 2.1 2.68
24 9.8 8.0 1.23 5.3 1.83 3.8 2.59
32 8.8 10.9 0.80 7.2 1.22 5.7 1.55
48 13.9 17.2 0.81 10.1 1.37 9.4 1.48
64 18.6 26.3 0.71 12.3 1.52 12.7 1.46
96 25.8 34.7 0.74 14.7 1.76 29.2 0.88
100 26.8 30.8 0.87 14.8 1.81 30.8 0.87
128 37.4 39.8 0.94 15.1 2.49 33.2 1.13
192 46.4 47.2 0.98 32.9 1.41 47.7 0.97
200 46.5 43.8 1.06 30.8 1.51 49.9 0.93
256 52.3 51.1 1.02 32.8 1.59 48.0 1.09
257 49.5 49.4 1.00 33.6 1.47 45.6 1.09
384 59.0 55.7 1.06 44.4 1.33 56.2 1.05
500 61.5 55.0 1.12 42.7 1.44 57.9 1.06
512 55.5 55.1 1.01 27.2 2.04 58.3 0.95
768 63.8 61.0 1.05 44.0 1.45 62.8 1.02
1000 67.9 61.1 1.11 50.3 1.35 67.2 1.01
1001 66.6 60.9 1.09 48.4 1.37 66.3 1.00
1024 60.1 61.5 0.98 41.3 1.45 64.0 0.94
1536 64.3 63.5 1.01 47.2 1.36 63.2 1.02
2048 59.1 63.3 0.93 42.7 1.39 62.5 0.95
3072 63.2 63.6 0.99 47.4 1.34 58.3 1.08
4096 55.9 61.9 0.90 35.5 1.57 57.6 0.97
4097 61.7 62.1 0.99 51.1 1.21 58.3 1.06
GETRF float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.2 1.15 0.5 0.38 0.3 0.56
3 0.4 0.4 1.27 1.6 0.28 1.3 0.35
4 0.7 0.6 1.25 2.7 0.28 1.1 0.66
6 1.5 1.1 1.36 1.7 0.89 1.7 0.87
8 2.5 1.6 1.62 2.0 1.29 2.1 1.21
12 4.3 2.4 1.79 2.6 1.64 4.3 0.98
16 6.9 3.3 2.09 3.4 2.06 6.5 1.07
24 7.0 6.8 1.02 5.2 1.34 10.3 0.68
32 9.8 9.2 1.07 7.8 1.26 1.5 6.74
48 15.5 17.2 0.90 11.3 1.37 2.7 5.63
64 21.5 23.0 0.94 15.6 1.38 5.3 4.10
96 32.9 37.4 0.88 18.5 1.78 9.6 3.44
100 32.3 38.1 0.85 18.5 1.75 10.2 3.17
128 39.5 47.1 0.84 23.4 1.69 17.3 2.29
192 54.3 65.0 0.83 30.7 1.77 29.1 1.86
200 57.0 64.9 0.88 31.1 1.83 30.3 1.89
256 63.7 74.7 0.85 37.4 1.70 45.5 1.40
257 64.6 71.9 0.90 36.3 1.78 45.2 1.43
384 79.7 88.5 0.90 48.1 1.66 66.2 1.21
500 89.1 93.7 0.95 55.3 1.61 81.6 1.09
512 81.0 94.9 0.85 55.7 1.45 52.0 1.56
768 102.6 105.1 0.98 69.4 1.48 102.6 1.00
1000 113.1 113.4 1.00 77.2 1.46 116.3 0.97
1001 112.3 111.7 1.01 75.9 1.48 116.6 0.96
1024 83.0 112.8 0.74 56.6 1.47 43.8 1.89
1536 118.6 122.3 0.97 89.4 1.33 94.6 1.25
2048 102.2 122.8 0.83 76.9 1.33 66.6 1.53
3072 109.4 123.7 0.88 87.6 1.25 82.1 1.33
4096 114.4 125.6 0.91 88.8 1.29 87.4 1.31
4097 120.0 126.3 0.95 102.7 1.17 119.6 1.00
GETRF double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.2 1.48 0.6 0.44 1.0 0.25
3 0.4 0.4 1.24 1.5 0.29 1.5 0.30
4 0.8 0.6 1.31 2.4 0.32 2.0 0.38
6 1.5 1.0 1.40 1.6 0.94 1.4 1.02
8 2.3 1.4 1.64 2.2 1.08 2.1 1.11
12 4.3 2.2 1.94 3.5 1.22 4.6 0.92
16 6.4 2.9 2.21 4.9 1.30 7.0 0.91
24 6.8 4.0 1.68 4.5 1.51 9.7 0.70
32 9.4 5.2 1.82 6.7 1.41 12.2 0.77
48 14.6 10.5 1.39 10.0 1.46 15.0 0.97
64 19.0 13.2 1.44 13.9 1.36 16.3 1.16
96 25.6 22.7 1.13 20.4 1.26 17.7 1.44
100 26.7 22.7 1.17 21.4 1.24 17.3 1.54
128 30.3 27.1 1.12 27.0 1.12 22.3 1.36
192 38.9 38.3 1.01 31.5 1.23 36.5 1.07
200 40.4 38.9 1.04 33.4 1.21 35.6 1.13
256 37.1 40.6 0.91 35.8 1.04 30.3 1.22
257 44.1 40.1 1.10 36.2 1.22 39.9 1.10
384 50.4 50.8 0.99 43.8 1.15 52.8 0.95
500 55.2 52.1 1.06 48.6 1.14 55.7 0.99
512 34.6 50.1 0.69 42.2 0.82 22.5 1.54
768 57.4 57.8 0.99 53.0 1.08 52.3 1.10
1000 63.1 60.7 1.04 57.2 1.10 65.0 0.97
1001 62.5 60.0 1.04 55.8 1.12 65.1 0.96
1024 47.2 59.4 0.79 47.9 0.99 34.7 1.36
1536 54.3 60.0 0.90 52.4 1.04 42.1 1.29
2048 57.0 60.2 0.95 50.4 1.13 43.4 1.31
3072 61.5 64.1 0.96 56.8 1.08 52.0 1.18
4096 61.5 64.6 0.95 53.0 1.16 31.2 1.97
4097 62.4 65.3 0.96 61.4 1.02 67.9 0.92
GEQRF float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.1 0.2 0.60 0.5 0.18 0.1 1.32
3x3 0.2 0.3 0.61 0.7 0.23 0.1 1.45
4x4 0.3 0.4 0.60 1.0 0.26 0.2 1.49
6x6 0.6 0.8 0.66 1.8 0.30 0.3 1.60
8x8 0.9 1.3 0.71 2.8 0.34 0.5 1.70
12x12 1.9 2.4 0.78 4.3 0.43 1.1 1.72
16x16 3.0 3.5 0.86 5.6 0.53 1.7 1.78
24x24 5.0 5.6 0.90 7.6 0.66 3.0 1.66
32x32 7.3 7.6 0.96 10.3 0.71 4.5 1.61
48x48 12.1 13.3 0.91 14.5 0.84 7.9 1.53
64x64 11.5 16.8 0.68 17.6 0.65 11.2 1.02
96x96 24.0 24.3 0.99 21.6 1.11 17.8 1.34
100x100 20.3 25.5 0.80 22.0 0.93 18.7 1.09
128x128 32.0 28.3 1.13 23.9 1.34 22.5 1.42
192x192 51.6 49.0 1.05 40.3 1.28 40.9 1.26
200x200 50.7 57.7 0.88 40.0 1.27 42.4 1.20
256x256 64.4 52.0 1.24 47.4 1.36 46.2 1.40
257x257 63.4 69.3 0.92 53.7 1.18 55.1 1.15
384x384 86.1 81.6 1.06 74.0 1.16 77.0 1.12
500x500 95.7 95.7 1.00 85.1 1.12 90.8 1.05
512x512 96.3 68.6 1.40 64.9 1.48 63.6 1.51
768x768 112.9 90.3 1.25 86.8 1.30 93.1 1.21
1000x1000 120.4 114.2 1.05 105.9 1.14 118.1 1.02
1001x1001 118.3 112.9 1.05 101.9 1.16 116.2 1.02
1024x1024 118.7 72.8 1.63 67.8 1.75 61.1 1.94
1536x1536 127.8 100.3 1.28 94.7 1.35 99.5 1.29
2048x2048 128.3 91.4 1.40 84.2 1.52 72.1 1.78
3072x3072 125.8 96.0 1.31 94.3 1.33 72.6 1.73
4096x4096 120.1 65.8 1.83 67.3 1.78 48.6 2.47
4097x4097 122.8 105.5 1.16 109.2 1.12 86.7 1.42
4096x8 36.5 34.6 1.05 29.6 1.23 36.9 0.99
4096x64 51.6 47.9 1.08 46.5 1.11 51.4 1.00
4096x256 94.3 70.7 1.33 61.9 1.52 55.9 1.69
4096x1024 123.8 101.6 1.22 95.6 1.30 81.6 1.52
10000x8 39.4 35.4 1.11 30.7 1.28 38.9 1.01
10000x100 55.6 41.0 1.36 67.6 0.82 41.9 1.33
10000x1000 114.7 106.5 1.08 103.9 1.10 114.0 1.01
10000x4000 121.1 101.0 1.20 115.3 1.05 129.1 0.94
100000x8 32.0 31.3 1.02 27.0 1.19 32.1 1.00
100000x64 31.6 32.3 0.98 43.6 0.72 32.6 0.97
100000x256 68.2 47.1 1.45 55.7 1.22 53.3 1.28
GEQRF double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 0.1 0.2 0.57 0.7 0.13 0.2 0.43
3x3 0.2 0.3 0.62 0.7 0.26 0.4 0.39
4x4 0.3 0.4 0.65 0.8 0.32 0.6 0.42
6x6 0.5 0.8 0.70 1.4 0.38 1.4 0.38
8x8 0.9 1.2 0.74 2.2 0.40 2.4 0.36
12x12 1.8 2.2 0.84 3.8 0.48 4.7 0.38
16x16 3.0 3.2 0.92 5.1 0.58 7.1 0.42
24x24 5.0 5.7 0.88 6.3 0.79 11.3 0.44
32x32 7.1 8.0 0.90 8.2 0.87 14.3 0.50
48x48 11.5 12.1 0.95 10.8 1.07 15.1 0.76
64x64 10.7 15.6 0.68 12.4 0.86 18.1 0.59
96x96 19.7 18.5 1.07 14.0 1.40 20.5 0.96
100x100 17.5 18.6 0.94 14.2 1.23 20.8 0.84
128x128 24.4 19.9 1.23 19.1 1.28 10.8 2.25
192x192 34.0 30.9 1.10 28.9 1.18 14.8 2.31
200x200 33.9 35.6 0.95 30.3 1.12 14.5 2.35
256x256 38.8 31.8 1.22 29.2 1.33 17.9 2.16
257x257 38.5 40.1 0.96 34.5 1.11 16.6 2.31
384x384 48.1 41.7 1.15 38.4 1.25 24.1 2.00
500x500 52.9 51.7 1.02 46.6 1.14 27.5 1.92
512x512 51.4 35.9 1.43 32.0 1.61 23.1 2.22
768x768 59.0 48.9 1.21 46.5 1.27 34.1 1.73
1000x1000 61.7 59.3 1.04 56.4 1.09 39.9 1.55
1001x1001 60.8 58.9 1.03 54.6 1.11 39.0 1.56
1024x1024 61.1 46.0 1.33 40.7 1.50 30.9 1.98
1536x1536 63.1 49.9 1.26 46.8 1.35 39.8 1.59
2048x2048 62.1 43.7 1.42 40.9 1.52 38.1 1.63
3072x3072 61.6 49.3 1.25 53.3 1.16 40.8 1.51
4096x4096 59.1 28.7 2.06 28.9 2.05 25.7 2.30
4097x4097 60.7 53.5 1.13 63.7 0.95 41.7 1.46
4096x8 17.8 14.8 1.21 15.7 1.13 21.0 0.85
4096x64 22.7 20.8 1.09 27.0 0.84 20.2 1.13
4096x256 43.4 36.1 1.20 44.7 0.97 34.0 1.28
4096x1024 57.7 44.9 1.28 38.4 1.50 44.2 1.30
10000x8 17.5 14.1 1.24 15.2 1.15 20.8 0.84
10000x100 24.0 19.5 1.23 33.9 0.71 21.9 1.10
10000x1000 54.7 51.3 1.07 58.8 0.93 47.5 1.15
10000x4000 60.8 53.7 1.13 68.2 0.89 47.5 1.28
100000x8 12.8 13.0 0.98 13.4 0.96 18.3 0.70
100000x64 12.1 10.5 1.15 20.1 0.60 10.1 1.19
100000x256 27.8 21.2 1.31 36.6 0.76 25.1 1.11
SYEV float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.8 0.6 1.46 0.6 1.35 0.3 2.35
3 0.8 0.5 1.58 0.6 1.48 0.3 2.99
4 1.0 0.7 1.38 0.8 1.19 0.4 2.49
6 1.6 1.2 1.36 1.4 1.15 0.7 2.24
8 2.2 1.6 1.36 2.1 1.07 1.1 2.02
12 3.6 2.7 1.35 3.7 0.98 2.0 1.79
16 5.2 3.7 1.41 5.2 0.98 3.1 1.69
24 7.9 5.2 1.52 8.1 0.98 5.0 1.56
32 10.5 6.4 1.65 10.5 1.00 7.2 1.45
48 15.9 9.1 1.75 14.8 1.07 9.9 1.60
64 20.9 10.8 1.93 19.0 1.10 14.7 1.42
96 31.4 13.3 2.35 25.6 1.22 22.5 1.39
100 32.4 13.6 2.38 25.6 1.26 21.8 1.48
128 40.5 14.4 2.82 29.9 1.35 29.2 1.39
192 54.4 16.8 3.24 37.3 1.46 41.5 1.31
200 56.2 17.2 3.27 38.5 1.46 41.9 1.34
256 63.3 18.2 3.48 43.3 1.46 50.4 1.26
257 60.8 18.5 3.29 43.5 1.40 47.5 1.28
384 78.3 20.1 3.89 55.6 1.41 67.7 1.16
500 84.0 21.1 3.98 63.9 1.31 73.1 1.15
512 80.2 20.7 3.87 61.0 1.31 74.0 1.08
768 88.0 21.9 4.01 69.5 1.27 87.8 1.00
1000 91.0 21.9 4.15 75.5 1.21 93.6 0.97
1001 85.7 21.9 3.91 72.1 1.19 75.5 1.13
1024 82.5 21.5 3.83 68.2 1.21 81.8 1.01
1536 91.8 20.9 4.38 77.7 1.18 101.6 0.90
2048 90.0 23.4 3.84 74.0 1.22 94.8 0.95
SYEV double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.7 0.6 1.28 0.5 1.34 0.4 1.65
3 0.6 0.5 1.37 0.5 1.30 0.2 2.61
4 0.8 0.6 1.35 0.7 1.22 0.3 2.43
6 1.2 1.0 1.21 1.1 1.08 0.6 2.01
8 1.7 1.4 1.25 1.6 1.06 1.0 1.72
12 2.9 2.2 1.32 2.7 1.11 2.0 1.49
16 3.9 2.8 1.36 3.8 1.01 3.0 1.29
24 6.0 4.0 1.49 5.8 1.04 5.0 1.20
32 8.1 5.0 1.62 7.4 1.09 7.1 1.13
48 12.0 6.3 1.90 10.1 1.18 9.6 1.25
64 15.6 7.9 1.97 12.0 1.30 13.0 1.20
96 20.9 8.7 2.41 16.3 1.28 18.0 1.16
100 21.6 8.8 2.44 15.7 1.37 17.7 1.22
128 24.6 11.8 2.08 17.9 1.38 21.3 1.16
192 31.3 10.2 3.05 22.9 1.37 27.8 1.12
200 32.0 10.4 3.08 22.7 1.41 28.9 1.11
256 33.9 12.6 2.70 24.5 1.39 31.8 1.07
257 34.3 11.0 3.12 24.8 1.38 31.1 1.10
384 39.3 11.8 3.33 29.5 1.33 38.4 1.02
500 41.0 16.6 2.47 31.7 1.29 42.3 0.97
512 37.7 15.6 2.42 28.3 1.33 37.6 1.00
768 40.8 12.8 3.18 33.9 1.20 44.1 0.92
1000 42.9 13.1 3.27 41.0 1.05 48.3 0.89
1001 41.3 13.1 3.15 40.0 1.03 42.4 0.97
1024 40.4 13.1 3.09 37.2 1.09 42.7 0.95
1536 42.1 15.1 2.79 41.0 1.03 45.3 0.93
2048 29.8 13.5 2.21 37.7 0.79 36.3 0.82
GESDD float
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 2.5 0.3 8.71 0.3 7.24 0.1 17.47
3x3 1.7 0.5 3.21 0.6 2.90 0.3 6.06
4x4 1.7 0.8 2.03 0.9 1.87 0.5 3.75
6x6 2.0 1.6 1.23 1.6 1.21 0.9 2.17
8x8 2.3 2.4 0.95 2.5 0.92 1.5 1.49
12x12 2.8 3.9 0.71 4.6 0.61 2.8 1.01
16x16 4.7 5.0 0.93 6.3 0.74 4.3 1.09
24x24 6.8 7.0 0.96 9.5 0.72 7.0 0.97
32x32 10.0 12.0 0.83 13.4 0.74 10.7 0.93
48x48 16.8 18.6 0.91 20.8 0.81 14.8 1.13
64x64 23.8 29.6 0.80 31.2 0.76 23.9 1.00
96x96 38.8 43.4 0.89 43.9 0.88 40.9 0.95
100x100 40.4 44.7 0.90 44.2 0.91 40.3 1.00
128x128 50.4 56.8 0.89 52.2 0.97 55.2 0.91
192x192 77.8 84.8 0.92 73.8 1.05 85.7 0.91
200x200 80.7 89.7 0.90 75.6 1.07 88.4 0.91
256x256 92.4 94.9 0.97 79.1 1.17 97.4 0.95
257x257 99.6 112.3 0.89 89.7 1.11 108.2 0.92
384x384 133.0 140.3 0.95 108.0 1.23 140.7 0.95
500x500 153.2 169.0 0.91 123.5 1.24 155.1 0.99
512x512 129.1 117.8 1.10 95.5 1.35 123.0 1.05
768x768 162.5 167.2 0.97 125.4 1.30 157.7 1.03
1000x1000 185.3 210.9 0.88 145.5 1.27 182.7 1.01
1001x1001 185.2 207.3 0.89 142.9 1.30 178.2 1.04
1024x1024 139.0 119.0 1.17 86.9 1.60 110.4 1.26
1536x1536 177.2 174.6 1.02 129.3 1.37 159.2 1.11
2048x2048 171.3 156.2 1.10 109.0 1.57 136.8 1.25
4096x64 144.6 99.5 1.45 126.6 1.14 115.9 1.25
4096x256 213.6 160.0 1.33 158.9 1.34 153.3 1.39
4096x1024 183.0 162.0 1.13 133.2 1.37 140.5 1.30
10000x8 60.6 38.2 1.59 81.4 0.74 104.8 0.58
10000x100 168.8 105.9 1.59 157.5 1.07 123.6 1.37
10000x1000 220.2 232.5 0.95 196.8 1.12 243.5 0.90
GESDD double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 2.3 0.3 8.18 0.3 7.03 1.7 1.33
3x3 1.2 0.5 2.39 0.5 2.32 1.0 1.11
4x4 1.3 0.8 1.69 0.8 1.66 1.3 0.99
6x6 1.4 1.3 1.07 1.3 1.12 2.0 0.69
8x8 1.6 2.0 0.81 1.9 0.83 2.9 0.56
12x12 1.9 3.2 0.59 3.3 0.57 4.6 0.41
16x16 3.5 4.3 0.83 4.5 0.78 6.1 0.58
24x24 5.0 6.3 0.80 6.8 0.74 8.9 0.57
32x32 7.3 10.2 0.72 9.7 0.75 11.0 0.67
48x48 12.0 14.6 0.82 14.2 0.85 13.7 0.88
64x64 15.9 21.9 0.73 20.2 0.79 21.1 0.75
96x96 24.7 30.2 0.82 28.2 0.88 32.0 0.77
100x100 25.9 31.5 0.82 28.4 0.91 32.4 0.80
128x128 31.4 36.5 0.86 32.8 0.96 39.0 0.80
192x192 47.7 52.4 0.91 47.5 1.00 57.3 0.83
200x200 50.0 55.8 0.90 50.0 1.00 60.4 0.83
256x256 53.5 54.3 0.99 48.0 1.11 59.1 0.90
257x257 59.5 66.7 0.89 58.4 1.02 72.0 0.83
384x384 71.5 74.2 0.96 67.4 1.06 80.5 0.89
500x500 82.4 92.0 0.90 82.8 1.00 98.5 0.84
512x512 60.2 57.0 1.06 53.8 1.12 53.7 1.12
768x768 82.2 84.6 0.97 78.3 1.05 85.3 0.96
1000x1000 94.6 101.1 0.94 98.8 0.96 111.9 0.85
1001x1001 93.5 100.2 0.93 96.0 0.97 109.6 0.85
1024x1024 78.4 72.3 1.08 72.2 1.09 66.1 1.18
1536x1536 88.3 84.7 1.04 79.3 1.11 72.2 1.22
2048x2048 74.3 64.2 1.16 61.5 1.21 59.1 1.26
4096x64 68.2 53.7 1.27 69.6 0.98 60.9 1.12
4096x256 102.1 82.7 1.23 85.3 1.20 86.0 1.19
4096x1024 94.2 87.9 1.07 79.9 1.18 76.6 1.23
10000x8 27.0 26.9 1.01 42.0 0.64 64.5 0.42
10000x100 76.5 52.4 1.46 80.2 0.95 61.7 1.24
10000x1000 109.6 114.5 0.96 114.8 0.95 107.1 1.02
GEEV float
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 2.4 0.3 7.97 0.3 6.98 0.1 21.38
3 1.1 0.5 2.34 0.5 2.11 0.2 5.02
4 1.6 0.8 2.11 0.9 1.80 0.4 4.37
6 2.0 1.4 1.39 1.6 1.27 0.7 2.92
8 3.7 2.0 1.82 2.5 1.45 1.1 3.33
12 4.9 3.3 1.48 3.6 1.33 1.9 2.53
16 7.9 4.2 1.87 5.1 1.56 2.8 2.85
24 11.4 6.2 1.83 7.7 1.47 4.6 2.49
32 14.2 7.7 1.84 10.0 1.42 6.4 2.21
48 18.1 10.0 1.80 13.7 1.32 9.6 1.88
64 20.9 11.7 1.79 16.0 1.31 13.0 1.61
96 25.7 12.7 2.03 15.6 1.65 12.3 2.09
100 24.6 13.2 1.86 16.3 1.51 12.8 1.92
128 27.9 15.8 1.77 20.5 1.36 16.7 1.67
192 31.8 30.9 1.03 33.2 0.96 27.9 1.14
200 32.5 33.5 0.97 33.3 0.97 29.0 1.12
256 32.1 40.1 0.80 40.2 0.80 36.9 0.87
257 31.6 41.4 0.76 40.8 0.77 39.1 0.81
384 33.9 58.5 0.58 62.9 0.54 57.2 0.59
500 35.7 73.2 0.49 77.0 0.46 74.3 0.48
512 32.6 37.4 0.87 40.7 0.80 38.1 0.86
768 35.3 79.7 0.44 85.4 0.41 82.1 0.43
1000 38.9 109.8 0.35 115.3 0.34 113.1 0.34
1001 34.2 109.1 0.31 110.5 0.31 113.0 0.30
1024 11.2 59.7 0.19 56.2 0.20 51.0 0.22
GEEV double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 2.6 0.3 8.43 1.5 1.72 0.1 17.59
3 0.8 0.5 1.74 1.0 0.84 0.3 3.38
4 1.4 0.7 2.01 1.3 1.09 0.4 3.56
6 1.7 1.2 1.40 2.0 0.86 0.7 2.49
8 2.9 1.7 1.69 2.7 1.06 1.2 2.48
12 4.3 2.6 1.68 3.9 1.11 2.2 1.99
16 5.8 3.5 1.68 4.8 1.21 3.3 1.76
24 7.9 4.9 1.62 6.2 1.28 5.3 1.51
32 9.8 6.3 1.57 7.3 1.34 7.0 1.40
48 12.6 7.7 1.64 8.3 1.52 9.6 1.31
64 13.9 9.0 1.55 9.1 1.52 12.2 1.15
96 15.6 8.9 1.74 10.1 1.54 10.9 1.43
100 16.0 9.3 1.71 10.4 1.53 11.3 1.41
128 16.6 10.7 1.54 12.6 1.31 13.5 1.23
192 17.5 18.1 0.97 18.9 0.92 21.2 0.82
200 18.8 19.2 0.98 19.4 0.97 22.9 0.82
256 17.7 20.5 0.86 20.4 0.87 23.8 0.75
257 17.1 23.1 0.74 24.1 0.71 27.6 0.62
384 18.3 31.9 0.57 34.0 0.54 36.7 0.50
500 18.7 39.6 0.47 42.3 0.44 45.8 0.41
512 11.9 16.6 0.72 10.5 1.13 16.0 0.74
768 15.4 32.7 0.47 32.2 0.48 36.8 0.42
1000 18.1 57.0 0.32 61.4 0.29 66.1 0.27
1001 16.8 56.8 0.30 59.5 0.28 65.0 0.26
1024 9.2 35.0 0.26 23.2 0.39 31.5 0.29