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. Intel oneMKL appears twice, as shipped and with its CPUID vendor check bypassed.

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; built from harness commit 9599d90fa, whose Eigen/ tree is that master’s. The library runs were built from harness commit b48190d48, whose Eigen/ tree is 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
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), limited to AVX2; an unsupported configuration
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 (96 runs, about 8.3 hours of measurement). Eigen: re-measured 2026-09-16 (48 runs, about 4.2 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, 146 and 105 GFLOP/s in OpenBLAS, bypassed oneMKL and AOCL without them and at 75, 76 and 75 GFLOP/s with them, against 74 GFLOP/s for Eigen; oneMKL as shipped 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 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 run-to-run noise on this host: within 3 % for 75 % of the cells and above 10 % for 6 %. 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 four binaries were split between the two, and the four rebuilt ones all run at the same one. 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.50 ns per call for Eigen against 3.6 ns for OpenBLAS, 4.0 and 4.2 ns for the two oneMKL arms 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 1.09 0.97 0.95
AXPY float Intel oneMKL 1.48 2.54 2.00 1.98 1.25
AXPY float oneMKL, vendor check bypassed 1.39 1.96 0.98 0.93 0.97
AXPY float AOCL-BLIS 1.72 2.04 1.09 1.01 0.99
AXPY double OpenBLAS 1.68 1.92 1.12 1.01 0.94
AXPY double Intel oneMKL 1.57 2.53 2.05 1.92 1.12
AXPY double oneMKL, vendor check bypassed 1.46 1.67 1.02 0.99 0.94
AXPY double AOCL-BLIS 2.78 2.48 1.20 1.05 0.96
DOT float OpenBLAS 3.84 3.08 1.21 0.99 0.96
DOT float Intel oneMKL 5.21 3.35 2.18 1.84 1.22
DOT float oneMKL, vendor check bypassed 5.37 2.89 1.25 1.05 1.00
DOT float AOCL-BLIS 7.80 3.68 1.27 1.05 1.00
DOT double OpenBLAS 6.13 2.25 1.12 0.95 0.99
DOT double Intel oneMKL 6.53 2.83 2.09 1.72 1.14
DOT double oneMKL, vendor check bypassed 6.54 2.08 1.13 1.02 0.99
DOT double AOCL-BLIS 12.53 3.10 1.27 1.05 1.00
GEMV float OpenBLAS 1.96 1.33 0.97 0.78
GEMV float Intel oneMKL 2.64 2.01 1.17 0.90
GEMV float oneMKL, vendor check bypassed 3.23 1.71 0.96 0.67
GEMV float AOCL-BLIS 5.05 2.04 1.00 0.76
GEMV double OpenBLAS 2.31 1.37 0.96 0.74
GEMV double Intel oneMKL 3.29 1.79 1.11 0.88
GEMV double oneMKL, vendor check bypassed 3.75 1.35 0.94 0.61
GEMV double AOCL-BLIS 2.83 1.38 0.94 0.70
GEMM float OpenBLAS 1.99 1.08 0.97 0.99
GEMM float Intel oneMKL 2.66 1.14 1.11 1.16
GEMM float oneMKL, vendor check bypassed 2.33 0.94 0.96 0.98
GEMM float AOCL-BLIS 19.09 1.26 0.97 1.00
GEMM double OpenBLAS 2.04 1.07 0.98 0.99
GEMM double Intel oneMKL 2.92 1.20 1.01 1.02
GEMM double oneMKL, vendor check bypassed 2.22 0.93 0.95 0.98
GEMM double AOCL-BLIS 2.64 0.94 0.95 1.00
TRSM float OpenBLAS 0.68 0.34 0.64 0.81
TRSM float Intel oneMKL 1.40 1.87 1.74 1.43
TRSM float oneMKL, vendor check bypassed 1.49 0.30 0.66 0.81
TRSM float AOCL-BLIS 1.13 0.34 0.64 0.86
TRSM double OpenBLAS 0.99 0.87 0.88 0.89
TRSM double Intel oneMKL 1.33 1.13 1.16 1.15
TRSM double oneMKL, vendor check bypassed 1.14 0.48 0.71 0.84
TRSM double AOCL-BLIS 1.25 0.52 0.74 0.91
SYRK float OpenBLAS 0.62 0.81 0.92 0.96
SYRK float Intel oneMKL 1.19 1.29 1.28 1.50
SYRK float oneMKL, vendor check bypassed 1.25 0.95 0.92 1.03
SYRK float AOCL-BLIS 5.57 1.14 0.90 1.01
SYRK double OpenBLAS 0.76 1.03 1.01 0.98
SYRK double Intel oneMKL 1.34 1.83 1.41 1.43
SYRK double oneMKL, vendor check bypassed 1.33 0.96 0.90 1.02
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.34 1.43 1.60
POTRF float oneMKL, vendor check bypassed 0.57 1.19 0.97 1.11
POTRF float AOCL-BLIS 2.31 1.76 1.25 2.02
POTRF double OpenBLAS 1.03 0.86 1.05 0.97
POTRF double Intel oneMKL 0.73 1.67 1.49 1.37
POTRF double oneMKL, vendor check bypassed 0.72 0.99 1.09 1.17
POTRF double AOCL-BLIS 2.19 1.33 1.01 1.02
GETRF float OpenBLAS 1.48 0.93 0.90 0.91
GETRF float Intel oneMKL 0.74 1.50 1.61 1.27
GETRF float oneMKL, vendor check bypassed 0.68 1.15 0.81 0.85
GETRF float AOCL-BLIS 0.76 3.10 1.35 1.27
GETRF double OpenBLAS 1.58 1.37 0.96 0.94
GETRF double Intel oneMKL 0.68 1.33 1.09 1.08
GETRF double oneMKL, vendor check bypassed 0.71 1.16 0.82 0.88
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.40
GEQRF float oneMKL, vendor check bypassed 0.30 0.81 1.03 1.23
GEQRF float AOCL-BLIS 1.57 1.35 1.24 1.69
GEQRF double OpenBLAS 0.71 0.93 1.12 1.39
GEQRF double Intel oneMKL 0.33 1.05 1.24 1.36
GEQRF double oneMKL, vendor check bypassed 0.31 0.73 0.96 1.33
GEQRF double AOCL-BLIS 0.40 0.78 1.99 1.67
SYEV float OpenBLAS 1.42 2.01 3.71 4.07
SYEV float Intel oneMKL 1.16 1.13 1.33 1.19
SYEV float oneMKL, vendor check bypassed 1.27 1.07 1.06 0.97
SYEV float AOCL-BLIS 2.19 1.47 1.15 0.92
SYEV double OpenBLAS 1.30 1.96 2.97 2.48
SYEV double Intel oneMKL 1.15 1.23 1.25 0.90
SYEV double oneMKL, vendor check bypassed 1.17 0.97 0.93 0.64
SYEV double AOCL-BLIS 1.83 1.19 1.01 0.87
GESDD float OpenBLAS 1.72 0.88 0.95 1.05
GESDD float Intel oneMKL 1.53 0.82 1.24 1.46
GESDD float oneMKL, vendor check bypassed 1.68 0.71 0.82 0.99
GESDD float AOCL-BLIS 2.82 0.98 1.00 1.18
GESDD double OpenBLAS 1.46 0.80 0.96 1.10
GESDD double Intel oneMKL 1.41 0.84 1.04 1.16
GESDD double oneMKL, vendor check bypassed 1.43 0.67 0.83 1.15
GESDD double AOCL-BLIS 0.75 0.74 0.91 1.25
GEEV float OpenBLAS 2.23 1.85 0.55
GEEV float Intel oneMKL 1.93 1.43 0.53
GEEV float oneMKL, vendor check bypassed 2.08 1.50 0.49
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 oneMKL, vendor check bypassed 1.00 1.19 0.53
GEEV double AOCL-BLIS 3.34 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; 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 session.

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.0 0.9 1.11 0.8 1.24 0.8 1.22 0.7 1.51
3 1.5 1.3 1.16 1.2 1.27 1.2 1.22 1.0 1.59
4 2.0 1.7 1.18 1.6 1.29 1.6 1.22 1.4 1.43
6 3.0 2.3 1.31 2.2 1.40 2.5 1.22 1.8 1.64
8 6.2 2.9 2.18 3.3 1.90 3.4 1.85 2.8 2.26
12 6.1 3.9 1.58 4.3 1.41 4.8 1.27 3.9 1.57
16 12.5 4.6 2.71 6.2 2.01 6.5 1.92 5.5 2.25
24 18.7 5.6 3.36 8.6 2.16 9.6 1.95 8.2 2.29
32 24.9 11.1 2.24 10.6 2.36 12.3 2.02 11.3 2.21
48 37.4 10.6 3.54 13.9 2.70 17.5 2.14 15.9 2.36
64 42.6 21.9 1.94 16.4 2.60 19.7 2.16 19.8 2.15
96 52.9 28.4 1.87 19.7 2.68 24.2 2.18 28.4 1.86
100 50.0 23.0 2.17 18.7 2.68 29.8 1.68 28.4 1.76
128 58.6 29.2 2.01 21.9 2.68 35.1 1.67 33.7 1.74
192 50.2 39.8 1.26 24.6 2.04 42.2 1.19 40.9 1.23
256 50.4 43.9 1.15 26.0 1.94 48.4 1.04 44.1 1.14
384 56.3 50.2 1.12 27.8 2.03 55.0 1.02 50.7 1.11
512 58.3 54.2 1.08 28.7 2.03 59.3 0.98 52.3 1.11
768 51.7 55.3 0.94 29.8 1.74 64.5 0.80 55.5 0.93
1000 60.9 57.6 1.06 30.4 2.00 67.0 0.91 59.1 1.03
1001 67.7 57.3 1.18 30.1 2.25 66.5 1.02 58.7 1.15
1024 60.7 60.7 1.00 30.3 2.00 67.1 0.90 57.4 1.06
1536 58.8 63.5 0.92 29.6 1.99 69.9 0.84 60.9 0.96
2048 61.5 64.5 0.95 30.2 2.03 70.7 0.87 60.0 1.03
3072 61.7 66.1 0.93 30.8 2.00 72.9 0.85 62.0 1.00
4096 65.8 66.9 0.98 31.2 2.11 73.7 0.89 62.9 1.05
6144 60.8 60.7 1.00 31.0 1.96 65.3 0.93 62.2 0.98
8192 61.4 60.1 1.02 31.1 1.97 61.5 1.00 59.6 1.03
10000 59.8 60.3 0.99 31.5 1.90 61.4 0.97 58.4 1.02
12288 60.3 61.3 0.98 31.1 1.94 59.8 1.01 59.2 1.02
16384 61.2 62.5 0.98 32.0 1.91 61.0 1.00 58.4 1.05
32768 60.8 63.3 0.96 32.2 1.89 62.4 0.98 60.0 1.01
65536 60.6 64.2 0.94 31.6 1.92 62.0 0.98 63.6 0.95
100000 59.2 63.4 0.93 31.7 1.87 60.6 0.98 50.6 1.17
131072 42.2 48.7 0.87 31.1 1.36 45.5 0.93 44.7 0.94
262144 33.1 33.9 0.98 29.4 1.12 33.2 1.00 33.9 0.97
524288 30.4 30.1 1.01 29.1 1.04 29.9 1.02 30.5 1.00
1000000 29.8 30.2 0.99 28.8 1.03 29.3 1.02 30.0 0.99
1048576 28.7 28.8 1.00 28.7 1.00 28.1 1.02 28.9 0.99
2097152 26.4 27.4 0.96 26.9 0.98 27.0 0.98 28.7 0.92
4194304 17.7 19.7 0.90 16.7 1.06 19.4 0.91 19.3 0.92
8388608 11.8 12.7 0.93 11.6 1.02 12.7 0.93 11.7 1.01
16777216 10.2 10.5 0.97 7.9 1.29 10.5 0.97 10.1 1.00
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.0 0.9 1.16 0.9 1.13 0.9 1.12 0.5 2.18
3 1.5 1.3 1.19 1.3 1.14 1.4 1.12 0.7 2.23
4 3.1 1.6 1.89 1.7 1.81 1.9 1.68 1.0 3.21
6 3.0 2.2 1.36 2.4 1.24 2.8 1.10 1.4 2.18
8 6.2 2.8 2.19 3.4 1.84 3.6 1.74 1.9 3.34
12 9.3 3.8 2.47 4.7 2.00 4.9 1.91 2.8 3.37
16 12.3 6.4 1.93 5.7 2.17 6.8 1.81 3.7 3.35
24 18.7 7.1 2.65 7.4 2.52 9.2 2.02 5.5 3.41
32 21.3 10.9 1.94 8.8 2.42 11.7 1.82 7.1 3.01
48 26.5 14.0 1.89 10.6 2.51 15.2 1.74 10.3 2.59
64 29.4 16.6 1.77 11.7 2.52 17.9 1.64 12.2 2.40
96 35.0 17.9 1.96 13.2 2.66 22.1 1.58 15.9 2.19
100 34.8 18.9 1.84 13.1 2.66 22.5 1.54 16.6 2.10
128 34.1 21.8 1.56 13.9 2.45 24.5 1.39 17.5 1.94
192 36.8 23.8 1.55 14.9 2.48 27.6 1.34 21.9 1.68
256 37.9 26.7 1.42 15.3 2.47 29.5 1.28 23.5 1.62
384 38.2 28.9 1.32 15.9 2.41 31.5 1.21 26.3 1.45
512 38.3 30.1 1.27 16.0 2.39 32.8 1.17 27.6 1.39
768 26.1 31.5 0.83 16.4 1.59 34.0 0.77 29.8 0.88
1000 28.1 31.5 0.89 16.5 1.70 34.3 0.82 30.6 0.92
1001 29.9 31.5 0.95 16.5 1.81 34.0 0.88 30.6 0.98
1024 29.9 32.2 0.93 16.5 1.80 34.5 0.86 30.6 0.98
1536 32.1 32.9 0.97 16.7 1.92 35.2 0.91 31.7 1.01
2048 34.9 33.3 1.05 16.8 2.08 35.6 0.98 32.3 1.08
3072 31.7 30.2 1.05 16.2 1.96 32.0 0.99 30.1 1.05
4096 31.3 30.0 1.05 16.4 1.92 29.3 1.07 27.4 1.14
6144 30.4 30.8 0.99 16.5 1.85 31.1 0.98 28.6 1.06
8192 31.3 30.5 1.03 16.5 1.89 31.3 1.00 29.7 1.05
10000 31.4 31.0 1.01 16.6 1.89 31.5 0.99 30.5 1.03
12288 31.0 31.2 0.99 16.6 1.87 31.5 0.99 30.7 1.01
16384 31.3 31.3 1.00 16.5 1.90 31.6 0.99 31.0 1.01
32768 31.4 31.2 1.00 16.4 1.91 30.0 1.05 31.7 0.99
65536 21.1 22.9 0.92 16.1 1.31 23.2 0.91 23.1 0.91
100000 17.9 18.5 0.97 16.1 1.12 18.0 0.99 18.4 0.97
131072 16.7 16.9 0.99 14.7 1.13 16.8 0.99 16.9 0.98
262144 15.2 15.2 0.99 14.7 1.03 15.4 0.99 15.2 1.00
524288 14.4 14.3 1.01 14.6 0.99 14.6 0.99 14.3 1.01
1000000 13.9 14.7 0.95 15.4 0.90 17.0 0.82 14.6 0.95
1048576 13.0 13.9 0.93 13.7 0.94 14.3 0.90 13.6 0.95
2097152 8.8 10.1 0.87 8.5 1.04 9.9 0.90 9.7 0.91
4194304 5.9 6.3 0.94 5.4 1.10 6.3 0.94 6.3 0.94
8388608 5.1 5.2 0.97 4.0 1.27 5.3 0.96 4.9 1.04
16777216 3.6 4.8 0.76 3.9 0.93 4.1 0.89 4.2 0.85
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.2 1.9 3.81 0.9 8.00 0.9 7.87 0.7 11.05
3 8.0 2.6 3.04 1.3 6.10 1.4 5.90 0.9 8.44
4 8.2 3.2 2.57 2.0 4.15 1.8 4.50 1.2 6.71
6 8.8 4.1 2.15 2.7 3.23 2.7 3.20 1.7 5.12
8 29.0 4.7 6.10 4.0 7.32 3.7 7.80 2.6 11.09
12 20.0 5.3 3.80 5.7 3.50 5.2 3.81 3.6 5.54
16 46.3 5.5 8.42 7.4 6.25 7.2 6.44 5.2 8.89
24 54.0 6.0 9.02 10.9 4.95 10.4 5.17 7.4 7.28
32 58.5 16.1 3.63 13.0 4.51 13.1 4.46 9.9 5.92
48 64.0 13.1 4.89 18.2 3.52 18.9 3.38 14.8 4.32
64 68.1 27.5 2.48 20.3 3.36 24.8 2.75 18.5 3.68
96 74.8 35.1 2.13 24.0 3.12 32.6 2.30 26.6 2.82
100 56.0 33.1 1.69 25.5 2.20 32.2 1.74 26.0 2.16
128 74.2 40.1 1.85 28.1 2.64 38.1 1.95 34.0 2.18
192 73.4 53.7 1.37 31.2 2.35 46.9 1.57 46.4 1.58
256 76.8 52.2 1.47 32.6 2.35 52.2 1.47 52.0 1.48
384 78.0 62.7 1.24 34.8 2.24 59.3 1.32 58.4 1.34
512 77.9 66.9 1.16 36.1 2.16 63.7 1.22 62.2 1.25
768 79.3 71.0 1.12 37.6 2.11 68.6 1.16 67.5 1.17
1000 79.8 68.9 1.16 38.2 2.09 71.7 1.11 70.0 1.14
1001 78.7 68.7 1.14 38.2 2.06 70.8 1.11 69.8 1.13
1024 79.7 72.8 1.09 37.8 2.11 71.1 1.12 70.8 1.13
1536 80.0 75.1 1.07 38.6 2.07 74.3 1.08 74.1 1.08
2048 80.3 76.8 1.05 38.9 2.06 75.1 1.07 76.1 1.06
3072 80.4 78.6 1.02 39.5 2.04 77.0 1.04 75.9 1.06
4096 79.5 79.2 1.00 39.7 2.00 77.9 1.02 77.3 1.03
6144 76.0 70.2 1.08 38.3 1.98 66.9 1.14 70.0 1.09
8192 69.3 68.8 1.01 38.8 1.78 68.3 1.01 69.0 1.00
10000 62.5 67.3 0.93 39.5 1.58 60.3 1.04 59.4 1.05
12288 62.2 69.2 0.90 39.6 1.57 60.6 1.03 59.1 1.05
16384 62.5 70.0 0.89 39.2 1.59 61.1 1.02 59.0 1.06
32768 60.9 71.5 0.85 38.7 1.57 62.0 0.98 60.6 1.01
65536 72.5 74.8 0.97 40.3 1.80 73.0 0.99 70.6 1.03
100000 77.9 79.1 0.98 39.7 1.96 58.0 1.34 74.6 1.04
131072 46.5 46.0 1.01 36.8 1.26 49.2 0.95 45.4 1.02
262144 33.9 34.1 0.99 31.3 1.08 34.0 1.00 34.2 0.99
524288 30.4 30.6 0.99 29.9 1.01 30.4 1.00 30.8 0.99
1000000 31.0 36.1 0.86 29.0 1.07 37.5 0.83 29.8 1.04
1048576 28.9 28.6 1.01 28.5 1.01 28.7 1.01 28.9 1.00
2097152 27.2 27.8 0.98 25.9 1.05 26.8 1.01 27.7 0.98
4194304 22.7 23.8 0.95 18.0 1.26 22.9 0.99 24.3 0.94
8388608 13.3 13.5 0.98 13.3 1.00 13.6 0.97 13.8 0.96
16777216 10.6 10.9 0.97 10.6 0.99 10.5 1.00 10.6 0.99
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.9 1.1 7.12 1.0 7.99 0.9 8.36 0.5 16.40
3 8.5 1.6 5.46 1.4 6.19 1.4 6.08 0.7 11.71
4 17.3 2.2 7.99 1.8 9.39 1.9 9.13 0.9 18.29
6 13.6 3.0 4.52 2.6 5.27 2.7 5.02 1.4 9.60
8 27.3 3.7 7.34 3.9 7.02 3.7 7.40 1.9 14.72
12 32.5 4.9 6.60 5.3 6.11 5.2 6.31 2.9 11.22
16 32.5 6.8 4.77 6.7 4.84 6.9 4.69 3.7 8.71
24 34.3 7.9 4.34 8.6 3.98 9.7 3.52 5.7 6.06
32 37.3 11.9 3.14 10.3 3.62 12.2 3.06 7.1 5.23
48 37.2 15.5 2.40 12.5 2.97 16.2 2.30 10.3 3.62
64 37.2 17.8 2.09 14.0 2.65 19.1 1.94 13.2 2.81
96 36.5 22.5 1.62 15.3 2.38 23.3 1.57 17.4 2.09
100 36.5 21.2 1.72 15.5 2.35 24.0 1.52 17.4 2.10
128 38.4 25.4 1.51 16.6 2.32 25.7 1.49 19.5 1.96
192 39.0 30.3 1.29 17.6 2.21 29.7 1.31 23.2 1.68
256 39.2 32.2 1.22 18.2 2.15 31.9 1.23 26.5 1.48
384 39.2 34.8 1.13 18.8 2.09 34.1 1.15 29.6 1.33
512 39.9 36.1 1.11 19.1 2.08 35.6 1.12 31.9 1.25
768 40.1 37.5 1.07 19.4 2.07 37.1 1.08 34.4 1.17
1000 40.1 37.3 1.08 19.6 2.05 37.8 1.06 35.6 1.12
1001 39.9 37.3 1.07 19.5 2.04 37.5 1.06 35.3 1.13
1024 40.0 38.1 1.05 19.6 2.04 37.4 1.07 35.5 1.13
1536 40.3 38.7 1.04 19.8 2.03 38.4 1.05 37.3 1.08
2048 39.8 39.1 1.02 19.9 2.00 39.1 1.02 38.1 1.05
3072 38.2 34.5 1.11 18.8 2.03 34.5 1.11 31.8 1.20
4096 34.6 34.3 1.01 18.8 1.84 34.4 1.01 29.8 1.16
6144 31.0 34.4 0.90 19.8 1.57 30.5 1.02 30.0 1.03
8192 31.1 34.9 0.89 19.9 1.56 30.6 1.01 31.0 1.00
10000 30.7 33.9 0.91 20.0 1.54 30.7 1.00 28.9 1.06
12288 30.4 35.3 0.86 20.0 1.52 30.8 0.99 32.0 0.95
16384 30.5 35.6 0.86 20.1 1.52 31.2 0.98 33.1 0.92
32768 36.2 37.6 0.96 20.1 1.80 36.6 0.99 36.5 0.99
65536 23.6 24.2 0.97 17.3 1.37 24.5 0.96 20.2 1.17
100000 18.5 18.4 1.00 17.5 1.06 18.6 0.99 18.5 1.00
131072 16.9 17.1 0.99 15.9 1.07 17.4 0.98 16.9 1.00
262144 15.2 15.0 1.01 15.0 1.01 15.2 1.00 15.2 1.00
524288 14.4 14.2 1.02 14.5 1.00 14.2 1.02 14.7 0.98
1000000 14.2 14.4 0.99 14.4 0.99 14.4 0.99 15.3 0.93
1048576 13.4 13.6 0.99 13.3 1.01 13.6 0.99 14.0 0.96
2097152 11.4 11.7 0.98 9.7 1.18 11.4 1.00 11.5 0.99
4194304 6.7 6.7 1.00 6.4 1.05 6.8 0.98 6.9 0.97
8388608 5.3 5.4 0.99 4.4 1.20 5.4 0.99 5.4 0.98
16777216 4.6 4.8 0.95 3.9 1.19 4.8 0.95 4.6 0.99
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.1 0.7 1.50 0.5 2.26 0.4 2.48 0.2 4.80
3x3 1.9 1.5 1.31 0.9 2.06 0.8 2.50 0.5 4.26
4x4 6.0 2.1 2.80 1.7 3.54 1.5 4.06 0.8 7.74
6x6 7.2 3.9 1.84 3.2 2.26 2.7 2.66 1.8 3.94
8x8 20.1 7.9 2.54 6.3 3.17 4.7 4.23 3.1 6.50
12x12 27.8 14.2 1.97 11.5 2.42 8.1 3.41 6.2 4.49
16x16 52.9 24.6 2.15 16.8 3.14 13.9 3.81 11.5 4.61
24x24 76.2 40.5 1.88 28.6 2.66 24.3 3.14 19.2 3.98
32x32 96.8 54.9 1.76 36.8 2.63 35.5 2.73 30.0 3.23
48x48 91.2 76.2 1.20 49.3 1.85 56.5 1.61 47.1 1.94
64x64 130.3 92.0 1.42 55.2 2.36 74.3 1.75 54.2 2.41
96x96 119.9 105.1 1.14 60.0 2.00 86.6 1.38 75.4 1.59
100x100 84.6 86.6 0.98 60.3 1.40 75.8 1.12 68.0 1.24
128x128 89.8 77.6 1.16 58.6 1.53 77.1 1.16 72.7 1.23
192x192 81.1 79.9 1.01 61.7 1.31 79.3 1.02 77.2 1.05
200x200 78.6 79.6 0.99 62.8 1.25 79.5 0.99 78.4 1.00
256x256 81.0 80.2 1.01 62.5 1.30 79.7 1.02 78.5 1.03
257x257 70.4 70.3 1.00 51.9 1.36 68.5 1.03 67.6 1.04
384x384 80.8 80.6 1.00 62.6 1.29 80.1 1.01 79.1 1.02
500x500 70.9 76.4 0.93 64.1 1.11 75.4 0.94 70.6 1.00
512x512 69.8 76.6 0.91 60.8 1.15 76.1 0.92 74.5 0.94
768x768 63.7 60.4 1.06 54.7 1.16 62.4 1.02 58.7 1.09
1000x1000 60.7 52.4 1.16 46.0 1.32 66.6 0.91 54.9 1.11
1001x1001 49.5 61.1 0.81 50.6 0.98 53.0 0.93 51.3 0.97
1024x1024 43.4 50.3 0.86 56.9 0.76 57.5 0.76 54.4 0.80
1536x1536 65.3 55.8 1.17 57.8 1.13 60.3 1.08 57.1 1.14
2048x2048 35.0 43.1 0.81 51.4 0.68 61.2 0.57 48.4 0.72
3072x3072 17.7 27.2 0.65 18.2 0.97 27.0 0.65 23.2 0.76
4096x4096 12.9 18.5 0.69 14.3 0.90 22.2 0.58 19.7 0.65
4097x4097 11.9 17.8 0.67 13.8 0.87 20.8 0.57 19.1 0.63
8x10000 47.6 43.6 1.09 24.8 1.92 12.9 3.67 13.9 3.42
100x10000 53.7 49.7 1.08 51.9 1.03 53.7 1.00 47.3 1.13
1000x10000 21.7 28.5 0.76 17.5 1.24 26.4 0.82 22.3 0.97
4000x10000 16.5 19.5 0.84 16.1 1.02 17.4 0.95 18.2 0.90
10000x8 72.1 114.2 0.63 69.0 1.05 88.4 0.82 79.3 0.91
10000x100 57.8 55.5 1.04 48.9 1.18 53.6 1.08 53.2 1.09
10000x1000 20.3 27.7 0.73 20.2 1.01 29.0 0.70 26.8 0.76
10000x4000 16.9 19.3 0.88 16.3 1.04 19.9 0.85 18.8 0.90
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.34 0.5 3.69 0.4 4.09 0.7 2.64
3x3 2.9 1.6 1.82 0.9 3.10 0.8 3.68 1.3 2.17
4x4 6.4 2.4 2.64 1.7 3.76 1.5 4.41 2.0 3.21
6x6 10.3 4.2 2.46 3.2 3.24 2.7 3.89 3.4 3.08
8x8 19.0 7.5 2.53 5.7 3.36 4.8 3.98 5.8 3.30
12x12 30.6 13.3 2.30 9.7 3.16 8.9 3.44 10.0 3.06
16x16 40.3 18.4 2.18 14.3 2.82 13.6 2.96 15.9 2.53
24x24 47.4 26.1 1.81 20.6 2.30 23.1 2.05 24.0 1.98
32x32 60.6 30.7 1.97 24.8 2.44 31.9 1.90 30.9 1.96
48x48 61.3 38.1 1.61 28.3 2.17 42.2 1.45 41.0 1.49
64x64 67.3 42.8 1.57 30.5 2.21 47.1 1.43 46.5 1.45
96x96 37.9 38.7 0.98 29.7 1.28 38.1 0.99 37.2 1.02
100x100 38.9 38.8 1.00 30.6 1.27 38.3 1.01 37.5 1.04
128x128 40.9 39.2 1.04 30.4 1.34 39.7 1.03 38.5 1.06
192x192 40.3 39.4 1.02 31.5 1.28 40.2 1.00 39.0 1.03
200x200 39.5 39.6 1.00 31.5 1.26 39.6 1.00 39.3 1.00
256x256 39.9 40.3 0.99 31.5 1.27 40.4 0.99 39.4 1.01
257x257 37.1 34.3 1.08 27.3 1.36 36.5 1.02 36.9 1.01
384x384 34.2 34.0 1.00 29.3 1.17 35.9 0.95 35.1 0.97
500x500 28.8 29.4 0.98 25.0 1.15 30.0 0.96 29.6 0.97
512x512 21.2 27.7 0.77 24.1 0.88 29.4 0.72 28.5 0.74
768x768 31.8 29.8 1.07 28.6 1.11 29.6 1.08 27.9 1.14
1000x1000 33.2 33.0 1.01 28.6 1.16 33.8 0.98 32.2 1.03
1001x1001 26.6 31.0 0.86 26.6 1.00 27.2 0.98 31.0 0.86
1024x1024 21.1 26.6 0.79 27.5 0.77 27.5 0.77 30.3 0.69
1536x1536 15.3 21.4 0.72 17.9 0.85 23.0 0.67 25.0 0.61
2048x2048 9.9 11.2 0.88 9.7 1.02 14.6 0.68 12.9 0.76
3072x3072 5.9 8.2 0.71 7.2 0.82 10.6 0.56 8.6 0.68
4096x4096 5.6 7.7 0.73 6.1 0.92 9.2 0.61 7.5 0.75
4097x4097 5.0 7.6 0.66 6.3 0.80 9.2 0.55 7.5 0.68
8x10000 36.9 21.4 1.72 21.9 1.68 12.8 2.87 15.6 2.37
100x10000 31.4 27.2 1.15 27.8 1.13 27.8 1.13 31.2 1.00
1000x10000 8.9 8.7 1.02 8.0 1.12 11.7 0.76 9.9 0.90
4000x10000 8.2 7.6 1.08 7.9 1.05 8.8 0.93 9.1 0.90
10000x8 35.7 50.9 0.70 34.6 1.03 49.6 0.72 64.0 0.56
10000x100 28.2 26.2 1.08 25.1 1.12 25.4 1.11 27.3 1.03
10000x1000 6.7 8.5 0.79 9.0 0.75 11.2 0.60 11.3 0.60
10000x4000 6.0 7.3 0.83 8.0 0.75 9.1 0.66 9.1 0.66
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 0.6 3.55 0.4 4.89 0.3 6.19 0.0 58.28
3x3x3 5.5 1.7 3.28 1.1 4.77 1.0 5.24 0.1 45.54
4x4x4 22.4 4.1 5.51 3.0 7.36 2.2 10.08 0.3 78.33
6x6x6 15.7 8.8 1.79 7.1 2.20 15.1 1.04 0.9 16.65
8x8x8 22.8 19.7 1.15 13.3 1.71 20.7 1.10 2.2 10.34
12x12x12 34.9 44.7 0.78 32.2 1.08 33.6 1.04 6.9 5.09
16x16x16 82.7 69.5 1.19 62.2 1.33 85.6 0.97 16.3 5.07
24x24x24 115.9 99.2 1.17 91.1 1.27 120.9 0.96 42.0 2.76
32x32x32 119.3 110.1 1.08 111.1 1.07 138.3 0.86 74.9 1.59
48x48x48 140.5 126.5 1.11 122.6 1.15 153.0 0.92 119.2 1.18
64x64x64 138.7 132.6 1.05 126.1 1.10 153.7 0.90 135.9 1.02
96x96x96 148.0 140.2 1.06 130.0 1.14 148.2 1.00 150.6 0.98
100x100x100 138.9 135.2 1.03 120.3 1.15 140.1 0.99 140.5 0.99
128x128x128 147.9 141.4 1.05 130.3 1.13 149.1 0.99 152.4 0.97
160x160x160 150.9 147.3 1.02 133.3 1.13 151.2 1.00 156.7 0.96
192x192x192 91.6 149.4 0.61 132.7 0.69 155.1 0.59 156.7 0.58
200x200x200 152.9 149.3 1.02 131.5 1.16 153.7 1.00 153.1 1.00
224x224x224 153.3 150.0 1.02 134.3 1.14 153.5 1.00 156.2 0.98
256x256x256 152.6 149.8 1.02 133.6 1.14 153.2 1.00 152.2 1.00
257x257x257 149.6 146.2 1.02 125.3 1.19 145.1 1.03 147.4 1.01
288x288x288 154.4 152.5 1.01 134.8 1.15 155.4 0.99 154.4 1.00
320x320x320 153.5 152.4 1.01 134.8 1.14 155.1 0.99 153.8 1.00
384x384x384 154.9 152.8 1.01 135.2 1.15 155.8 0.99 155.5 1.00
448x448x448 154.7 153.9 1.01 135.8 1.14 155.9 0.99 155.8 0.99
500x500x500 153.1 153.4 1.00 133.7 1.15 153.5 1.00 154.3 0.99
512x512x512 154.7 153.5 1.01 135.4 1.14 155.3 1.00 151.7 1.02
768x768x768 154.8 155.4 1.00 136.2 1.14 156.6 0.99 154.9 1.00
1000x1000x1000 154.2 155.5 0.99 135.4 1.14 156.5 0.99 152.6 1.01
1001x1001x1001 153.3 154.4 0.99 132.9 1.15 153.5 1.00 152.5 1.00
1024x1024x1024 152.8 155.0 0.99 134.9 1.13 155.4 0.98 152.7 1.00
1536x1536x1536 152.1 153.8 0.99 134.3 1.13 154.8 0.98 153.3 0.99
2048x2048x2048 151.2 152.8 0.99 132.5 1.14 153.6 0.98 151.2 1.00
3072x3072x3072 152.8 152.9 1.00 132.7 1.15 154.8 0.99 153.2 1.00
4096x4096x4096 152.1 154.8 0.98 131.7 1.16 155.3 0.98 150.2 1.01
4097x4097x4097 152.4 155.7 0.98 124.6 1.22 154.8 0.98 152.1 1.00
64x64x1024 137.9 132.2 1.04 122.7 1.12 152.6 0.90 157.1 0.88
64x1024x64 144.9 139.7 1.04 131.8 1.10 156.9 0.92 154.1 0.94
256x256x1024 151.3 150.7 1.00 131.7 1.15 152.4 0.99 154.8 0.98
1024x64x64 143.2 145.1 0.99 118.6 1.21 76.0 1.88 86.6 1.65
1024x256x256 152.4 152.8 1.00 132.5 1.15 153.7 0.99 149.0 1.02
4096x96x96 146.0 148.5 0.98 123.3 1.18 146.3 1.00 95.1 1.53
4096x128x128 147.7 146.8 1.01 125.9 1.17 150.0 0.98 94.5 1.56
4096x144x144 151.2 152.1 0.99 126.7 1.19 150.3 1.01 94.0 1.61
4096x160x160 151.3 151.2 1.00 127.8 1.18 151.3 1.00 90.6 1.67
4096x176x176 152.1 152.0 1.00 128.1 1.19 152.2 1.00 81.5 1.87
8192x128x128 148.9 146.9 1.01 124.0 1.20 147.7 1.01 89.7 1.66
10000x8x8 104.9 111.9 0.94 100.1 1.05 133.7 0.78 84.0 1.25
10000x100x100 149.4 149.9 1.00 131.8 1.13 151.6 0.99 151.8 0.98
10000x1000x1000 149.8 153.6 0.98 126.4 1.18 151.5 0.99 153.1 0.98
10000x4000x4000 151.7 156.4 0.97 130.7 1.16 157.2 0.97 155.9 0.97
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 0.6 3.56 0.4 4.79 0.3 6.36 0.3 6.88
3x3x3 5.5 1.6 3.41 1.2 4.67 1.0 5.38 1.0 5.35
4x4x4 21.3 3.9 5.49 3.0 7.18 3.0 7.09 2.3 9.20
6x6x6 15.6 9.6 1.62 7.2 2.17 11.8 1.32 7.8 2.01
8x8x8 20.2 19.6 1.03 11.4 1.77 19.8 1.02 16.3 1.24
12x12x12 39.5 31.9 1.24 26.6 1.49 40.1 0.99 34.6 1.14
16x16x16 46.2 42.7 1.08 23.3 1.98 55.4 0.83 49.9 0.92
24x24x24 61.1 55.3 1.11 53.4 1.14 69.6 0.88 65.9 0.93
32x32x32 64.5 59.3 1.09 38.5 1.68 73.4 0.88 68.0 0.95
48x48x48 69.2 66.3 1.04 66.4 1.04 77.6 0.89 74.3 0.93
64x64x64 70.0 66.4 1.05 55.1 1.27 77.9 0.90 75.8 0.92
96x96x96 73.7 71.5 1.03 73.3 1.01 74.9 0.98 78.4 0.94
100x100x100 72.8 69.6 1.05 62.6 1.16 73.4 0.99 73.8 0.99
128x128x128 74.2 68.0 1.09 63.2 1.17 75.5 0.98 77.8 0.95
160x160x160 75.2 72.9 1.03 67.7 1.11 75.5 1.00 76.8 0.98
192x192x192 40.7 73.7 0.55 75.0 0.54 77.2 0.53 78.2 0.52
200x200x200 75.3 74.5 1.01 68.2 1.10 75.9 0.99 77.1 0.98
224x224x224 75.4 74.2 1.02 68.4 1.10 76.0 0.99 78.2 0.97
256x256x256 75.2 71.4 1.05 70.2 1.07 76.7 0.98 78.1 0.96
257x257x257 74.7 71.7 1.04 68.4 1.09 75.8 0.99 74.8 1.00
288x288x288 76.5 75.3 1.02 77.3 0.99 77.2 0.99 78.7 0.97
320x320x320 76.4 75.2 1.02 71.7 1.07 77.4 0.99 78.0 0.98
384x384x384 76.9 74.9 1.03 77.9 0.99 78.1 0.98 77.7 0.99
448x448x448 76.9 75.3 1.02 74.5 1.03 77.4 0.99 76.0 1.01
500x500x500 76.7 75.0 1.02 73.0 1.05 78.0 0.98 75.7 1.01
512x512x512 76.2 74.1 1.03 67.7 1.13 77.7 0.98 75.0 1.02
768x768x768 75.7 74.8 1.01 75.6 1.00 77.0 0.98 76.5 0.99
1000x1000x1000 75.4 74.9 1.01 74.0 1.02 76.4 0.99 76.3 0.99
1001x1001x1001 75.2 74.2 1.01 72.7 1.03 76.0 0.99 75.9 0.99
1024x1024x1024 74.2 74.5 1.00 70.3 1.06 75.8 0.98 75.5 0.98
1536x1536x1536 74.7 75.0 1.00 75.6 0.99 76.2 0.98 76.0 0.98
2048x2048x2048 74.9 75.1 1.00 70.8 1.06 75.9 0.99 74.6 1.00
3072x3072x3072 75.1 76.1 0.99 74.4 1.01 77.4 0.97 76.0 0.99
4096x4096x4096 74.0 75.8 0.98 72.9 1.02 74.5 0.99 71.0 1.04
4097x4097x4097 74.4 75.1 0.99 73.0 1.02 77.2 0.96 75.7 0.98
64x64x1024 68.2 62.0 1.10 54.1 1.26 74.3 0.92 73.5 0.93
64x1024x64 72.9 70.2 1.04 56.8 1.28 77.7 0.94 76.5 0.95
256x256x1024 75.4 70.8 1.06 69.9 1.08 75.7 1.00 73.5 1.03
1024x64x64 66.3 65.0 1.02 69.0 0.96 37.6 1.76 70.2 0.94
1024x256x256 76.1 71.4 1.07 66.6 1.14 76.8 0.99 76.7 0.99
4096x96x96 72.7 73.2 0.99 68.7 1.06 73.2 0.99 71.5 1.02
4096x128x128 73.7 67.8 1.09 70.4 1.05 74.5 0.99 70.6 1.04
4096x144x144 74.4 74.1 1.00 70.9 1.05 75.1 0.99 70.7 1.05
4096x160x160 73.6 73.4 1.00 71.3 1.03 75.2 0.98 70.8 1.04
4096x176x176 74.2 73.8 1.01 71.5 1.04 75.3 0.99 71.4 1.04
8192x128x128 70.6 67.6 1.04 42.0 1.68 69.9 1.01 67.2 1.05
10000x8x8 49.7 44.2 1.12 51.6 0.96 40.3 1.23 59.5 0.84
10000x100x100 70.5 70.4 1.00 73.4 0.96 72.4 0.97 72.3 0.98
10000x1000x1000 72.9 75.6 0.97 76.5 0.95 75.2 0.97 75.5 0.97
10000x4000x4000 74.0 75.8 0.98 75.1 0.99 78.1 0.95 77.0 0.96
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.4 0.4 1.10 0.2 1.99 0.2 2.36 0.2 2.72
3x3 1.1 0.8 1.39 0.6 1.85 0.5 2.26 0.4 2.37
4x4 1.9 2.6 0.73 1.2 1.55 0.9 2.18 1.1 1.76
6x6 3.7 3.8 0.98 2.6 1.41 1.1 3.42 2.8 1.34
8x8 5.3 9.7 0.54 4.8 1.11 7.8 0.68 6.5 0.81
12x12 7.6 22.4 0.34 7.4 1.03 3.8 2.00 15.3 0.50
16x16 10.0 29.6 0.34 8.9 1.12 33.8 0.29 26.6 0.37
24x24 13.6 52.1 0.26 10.5 1.29 60.3 0.23 49.0 0.28
32x32 17.6 58.0 0.30 11.7 1.51 80.8 0.22 61.1 0.29
48x48 24.7 83.1 0.30 12.7 1.95 101.8 0.24 84.3 0.29
64x64 31.5 91.8 0.34 13.0 2.43 111.6 0.28 97.3 0.32
96x96 42.8 109.2 0.39 21.0 2.04 120.1 0.36 113.3 0.38
100x100 42.6 102.5 0.42 21.2 2.01 91.1 0.47 101.6 0.42
128x128 49.1 114.1 0.43 23.4 2.10 123.7 0.40 119.9 0.41
192x192 65.2 130.6 0.50 32.3 2.02 120.5 0.54 133.1 0.49
200x200 68.6 127.6 0.54 33.2 2.07 120.7 0.57 129.6 0.53
256x256 73.3 131.6 0.56 37.5 1.95 125.1 0.59 138.1 0.53
257x257 75.4 126.3 0.60 37.2 2.03 115.3 0.65 126.0 0.60
384x384 88.8 140.8 0.63 51.5 1.72 135.8 0.65 143.5 0.62
500x500 100.2 142.2 0.70 60.3 1.66 136.5 0.73 141.0 0.71
512x512 88.7 143.8 0.62 52.4 1.69 139.4 0.64 141.7 0.63
768x768 112.0 148.9 0.75 72.0 1.55 146.2 0.77 148.3 0.76
1000x1000 122.1 150.6 0.81 83.7 1.46 147.9 0.83 149.8 0.82
1001x1001 121.2 148.4 0.82 81.9 1.48 143.7 0.84 147.5 0.82
1024x1024 85.0 149.2 0.57 50.4 1.69 147.1 0.58 142.1 0.60
1536x1536 123.8 150.1 0.82 86.6 1.43 150.0 0.82 146.6 0.84
2048x2048 108.0 148.6 0.73 71.2 1.52 147.5 0.73 140.2 0.77
3072x3072 114.4 148.4 0.77 82.7 1.38 148.5 0.77 142.1 0.80
4096x4096 124.1 145.8 0.85 84.3 1.47 146.9 0.84 128.3 0.97
4097x4097 130.8 147.0 0.89 97.8 1.34 146.7 0.89 140.5 0.93
64x4096 29.7 92.2 0.32 13.0 2.29 113.3 0.26 90.5 0.33
256x4096 73.0 135.3 0.54 37.3 1.95 126.0 0.58 132.9 0.55
1024x8 60.4 57.1 1.06 34.0 1.78 44.5 1.36 18.3 3.30
1024x64 80.9 128.4 0.63 49.9 1.62 119.1 0.68 83.6 0.97
1024x256 85.4 145.5 0.59 49.6 1.72 141.4 0.60 121.4 0.70
1024x4096 81.9 141.5 0.58 49.1 1.67 143.9 0.57 135.4 0.61
4096x8 32.9 31.2 1.06 23.1 1.43 32.5 1.01 8.0 4.09
4096x64 95.7 109.5 0.87 66.8 1.43 102.5 0.93 42.7 2.24
4096x256 123.4 140.9 0.88 83.4 1.48 137.1 0.90 97.1 1.27
4096x1024 133.2 147.7 0.90 87.5 1.52 147.5 0.90 130.5 1.02
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.4 0.4 1.03 0.2 2.32 0.2 2.30 0.2 2.82
3x3 1.0 0.8 1.33 0.5 2.00 0.5 2.23 0.4 2.39
4x4 1.9 1.9 0.98 1.1 1.79 1.3 1.48 1.0 1.83
6x6 3.7 3.4 1.09 2.8 1.28 1.6 2.33 2.7 1.35
8x8 5.5 6.4 0.86 5.3 1.04 7.4 0.74 5.6 0.97
12x12 8.5 9.2 0.92 10.1 0.84 16.3 0.52 13.7 0.62
16x16 10.6 13.0 0.81 13.8 0.76 28.2 0.37 22.5 0.47
24x24 15.6 19.0 0.82 18.1 0.86 42.8 0.36 34.8 0.45
32x32 19.4 23.3 0.83 20.4 0.95 51.6 0.38 42.3 0.46
48x48 25.4 30.1 0.84 23.7 1.07 58.4 0.44 53.8 0.47
64x64 29.3 34.2 0.86 25.7 1.14 60.6 0.48 59.3 0.49
96x96 37.5 41.2 0.91 28.5 1.31 66.3 0.57 64.3 0.58
100x100 38.7 41.3 0.94 28.8 1.34 65.7 0.59 63.4 0.61
128x128 40.0 45.3 0.88 29.5 1.35 68.3 0.59 66.5 0.60
192x192 48.0 50.2 0.96 35.5 1.35 71.2 0.67 71.1 0.68
200x200 50.2 50.9 0.99 38.8 1.29 69.5 0.72 70.3 0.71
256x256 42.9 52.8 0.81 37.6 1.14 71.5 0.60 70.4 0.61
257x257 51.5 51.6 1.00 35.9 1.44 70.1 0.74 68.2 0.76
384x384 57.1 59.7 0.96 44.4 1.29 74.3 0.77 71.8 0.80
500x500 62.8 62.2 1.01 50.2 1.25 75.8 0.83 71.2 0.88
512x512 32.4 61.5 0.53 42.6 0.76 75.0 0.43 61.4 0.53
768x768 62.4 65.7 0.95 52.1 1.20 76.0 0.82 73.4 0.85
1000x1000 67.6 67.6 1.00 58.1 1.16 75.8 0.89 73.9 0.92
1001x1001 67.0 67.1 1.00 56.6 1.18 75.3 0.89 73.1 0.92
1024x1024 45.2 66.5 0.68 50.1 0.90 75.2 0.60 72.3 0.63
1536x1536 55.1 68.1 0.81 52.2 1.06 73.8 0.75 71.9 0.77
2048x2048 59.9 67.8 0.88 49.8 1.20 71.9 0.83 68.6 0.87
3072x3072 64.6 69.1 0.93 54.9 1.18 72.2 0.89 69.6 0.93
4096x4096 63.0 68.2 0.92 50.0 1.26 69.7 0.90 54.7 1.15
4097x4097 62.3 68.2 0.91 59.7 1.04 73.3 0.85 71.4 0.87
64x4096 26.8 33.3 0.81 25.6 1.05 61.5 0.44 53.1 0.50
256x4096 42.1 50.4 0.84 37.5 1.12 71.9 0.59 69.1 0.61
1024x8 34.6 22.4 1.54 30.5 1.13 29.1 1.19 20.8 1.66
1024x64 43.8 54.6 0.80 47.3 0.93 66.4 0.66 60.6 0.72
1024x256 45.8 64.0 0.71 49.8 0.92 74.5 0.61 70.6 0.65
1024x4096 43.0 62.9 0.68 46.5 0.92 71.9 0.60 43.5 0.99
4096x8 12.4 9.7 1.28 8.6 1.45 5.7 2.19 1.5 8.39
4096x64 45.3 43.8 1.04 38.5 1.18 31.4 1.45 11.7 3.87
4096x256 64.1 60.8 1.05 50.8 1.26 50.8 1.26 29.7 2.16
4096x1024 64.2 67.1 0.96 49.9 1.29 67.5 0.95 53.9 1.19
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.2 0.3 0.57 0.2 1.12 0.1 1.43 0.0 7.81
3x3 0.5 0.9 0.59 0.4 1.18 0.4 1.38 0.1 7.03
4x4 1.2 1.9 0.65 1.0 1.20 0.9 1.44 0.2 7.51
6x6 1.9 4.4 0.43 2.3 0.79 2.2 0.83 0.5 3.71
8x8 7.0 10.0 0.70 4.5 1.57 5.0 1.40 1.1 6.58
12x12 13.6 19.3 0.71 11.2 1.22 11.4 1.20 3.2 4.31
16x16 27.2 36.3 0.75 19.4 1.40 23.0 1.18 7.1 3.81
24x24 43.1 61.4 0.70 34.0 1.27 41.6 1.03 18.7 2.30
32x32 53.5 78.2 0.68 46.0 1.16 55.4 0.97 36.1 1.48
48x48 77.4 98.0 0.79 60.0 1.29 84.0 0.92 69.7 1.11
64x64 87.6 108.2 0.81 74.5 1.18 95.6 0.92 93.4 0.94
96x96 105.7 116.2 0.91 82.1 1.29 113.1 0.93 118.5 0.89
100x100 99.3 111.2 0.89 60.6 1.64 104.8 0.95 108.0 0.92
128x128 107.6 120.2 0.90 83.4 1.29 114.0 0.94 128.0 0.84
192x192 60.6 130.4 0.46 95.8 0.63 132.5 0.46 140.3 0.43
200x200 126.8 131.6 0.96 81.5 1.56 132.9 0.95 137.0 0.93
256x256 128.4 117.8 1.09 94.6 1.36 129.0 1.00 139.4 0.92
257x257 128.8 129.1 1.00 106.1 1.21 125.0 1.03 129.7 0.99
384x384 136.8 142.3 0.96 102.7 1.33 139.6 0.98 141.2 0.97
500x500 139.3 143.1 0.97 90.3 1.54 141.9 0.98 145.5 0.96
512x512 138.5 135.0 1.03 99.4 1.39 134.5 1.03 137.8 1.01
768x768 145.5 148.3 0.98 113.2 1.29 147.5 0.99 145.7 1.00
1000x1000 146.0 150.6 0.97 106.6 1.37 151.4 0.96 148.0 0.99
1001x1001 143.6 149.4 0.96 106.3 1.35 146.9 0.98 146.8 0.98
1024x1024 134.1 150.0 0.89 95.2 1.41 138.5 0.97 137.7 0.97
1536x1536 145.4 151.3 0.96 115.9 1.25 151.0 0.96 149.2 0.97
2048x2048 138.5 151.0 0.92 100.2 1.38 137.8 1.00 141.0 0.98
3072x3072 144.2 152.2 0.95 111.6 1.29 149.9 0.96 147.8 0.98
4096x4096 146.4 149.1 0.98 50.3 2.91 116.0 1.26 133.4 1.10
4097x4097 148.1 150.7 0.98 125.1 1.18 151.5 0.98 147.5 1.00
64x4096 86.6 107.3 0.81 72.1 1.20 92.5 0.94 115.6 0.75
256x4096 126.0 133.7 0.94 94.1 1.34 126.7 0.99 116.4 1.08
1024x4096 128.1 149.1 0.86 97.8 1.31 137.3 0.93 136.6 0.94
4096x8 68.9 65.8 1.05 23.4 2.95 85.5 0.81 21.9 3.15
4096x64 142.5 135.8 1.05 115.2 1.24 140.1 1.02 83.8 1.70
4096x256 145.4 151.3 0.96 48.4 3.00 138.0 1.05 128.8 1.13
4096x1024 145.6 150.3 0.97 60.9 2.39 118.2 1.23 134.7 1.08
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.72 0.2 1.22 0.1 1.63 0.0 9.50
3x3 0.6 0.8 0.70 0.5 1.27 0.4 1.48 0.1 8.04
4x4 1.5 1.8 0.81 1.1 1.31 0.9 1.59 0.2 9.13
6x6 2.3 4.1 0.57 2.7 0.86 2.4 0.98 0.5 4.69
8x8 7.5 8.4 0.90 4.5 1.67 5.2 1.44 1.1 6.80
12x12 15.6 17.0 0.92 11.0 1.42 12.3 1.26 3.2 4.84
16x16 19.7 25.3 0.78 10.7 1.84 18.1 1.09 6.8 2.90
24x24 32.9 36.4 0.91 23.8 1.38 33.7 0.98 18.4 1.79
32x32 40.0 43.7 0.92 18.2 2.20 41.6 0.96 31.1 1.29
48x48 49.8 49.4 1.01 30.9 1.61 53.6 0.93 53.2 0.94
64x64 51.8 50.7 1.02 26.0 2.00 54.5 0.95 62.4 0.83
96x96 60.6 55.4 1.09 35.1 1.73 63.1 0.96 70.8 0.86
100x100 60.4 55.6 1.09 30.2 2.00 62.5 0.97 69.6 0.87
128x128 61.5 52.5 1.17 29.9 2.06 62.6 0.98 62.5 0.98
192x192 26.7 59.7 0.45 36.5 0.73 68.8 0.39 63.9 0.42
200x200 68.2 60.8 1.12 42.9 1.59 69.0 0.99 65.6 1.04
256x256 67.1 58.1 1.15 39.3 1.71 64.6 1.04 65.4 1.03
257x257 68.3 58.3 1.17 38.1 1.79 70.2 0.97 61.4 1.11
384x384 71.7 62.7 1.14 47.0 1.52 72.4 0.99 70.3 1.02
500x500 72.9 64.7 1.13 53.6 1.36 75.1 0.97 71.9 1.01
512x512 69.1 62.1 1.11 35.7 1.93 68.7 1.01 68.0 1.02
768x768 72.2 68.2 1.06 53.6 1.35 74.6 0.97 73.9 0.98
1000x1000 71.3 69.1 1.03 61.1 1.17 76.3 0.93 75.2 0.95
1001x1001 70.0 68.5 1.02 59.1 1.18 75.8 0.92 73.7 0.95
1024x1024 68.4 68.6 1.00 40.2 1.70 67.8 1.01 70.9 0.96
1536x1536 69.8 70.9 0.98 51.1 1.37 73.4 0.95 73.0 0.96
2048x2048 70.9 72.2 0.98 47.4 1.49 70.6 1.00 70.8 1.00
3072x3072 72.4 73.3 0.99 50.8 1.43 72.3 1.00 72.2 1.00
4096x4096 71.0 73.8 0.96 44.3 1.60 59.0 1.20 57.2 1.24
4097x4097 72.6 73.2 0.99 57.3 1.27 76.0 0.95 74.3 0.98
64x4096 50.7 47.5 1.07 26.8 1.89 51.3 0.99 67.1 0.76
256x4096 65.4 58.1 1.13 39.0 1.68 66.6 0.98 66.3 0.99
1024x4096 66.9 68.2 0.98 39.0 1.72 69.9 0.96 68.6 0.98
4096x8 29.6 32.0 0.93 34.5 0.86 33.8 0.88 8.6 3.44
4096x64 70.5 70.0 1.01 65.9 1.07 65.9 1.07 47.3 1.49
4096x256 73.3 74.0 0.99 45.2 1.62 69.3 1.06 53.6 1.37
4096x1024 72.8 73.6 0.99 40.4 1.80 68.7 1.06 54.6 1.33
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.2 0.2 1.27 0.3 0.71 0.3 0.68 0.1 1.66
3 0.5 0.4 1.13 1.1 0.44 1.1 0.43 0.2 2.47
4 0.6 0.7 0.92 1.6 0.40 2.1 0.30 0.3 2.42
6 1.0 1.3 0.75 2.1 0.46 2.1 0.47 0.4 2.22
8 1.6 2.1 0.75 2.7 0.59 2.7 0.60 0.7 2.36
12 3.0 3.6 0.82 4.0 0.76 4.0 0.75 1.2 2.44
16 5.3 5.4 0.98 4.9 1.08 4.8 1.09 1.9 2.80
24 9.5 8.4 1.12 5.6 1.68 12.3 0.77 3.4 2.76
32 9.9 11.8 0.84 7.2 1.37 17.4 0.57 5.2 1.89
48 16.9 25.3 0.67 9.3 1.82 23.7 0.71 8.9 1.91
64 23.4 36.5 0.64 10.2 2.29 15.1 1.55 12.7 1.85
96 35.2 52.8 0.67 11.2 3.14 19.2 1.84 24.3 1.45
100 31.2 48.2 0.65 11.3 2.76 19.7 1.58 24.6 1.27
128 54.3 65.3 0.83 11.7 4.66 22.7 2.39 35.6 1.52
192 73.0 90.8 0.80 54.6 1.34 92.3 0.79 58.9 1.24
200 75.2 81.9 0.92 54.0 1.39 95.0 0.79 59.4 1.27
256 90.4 101.3 0.89 59.8 1.51 95.1 0.95 70.7 1.28
257 82.7 96.3 0.86 60.6 1.37 94.4 0.88 70.9 1.17
384 108.1 115.3 0.94 73.9 1.46 112.8 0.96 91.4 1.18
500 108.6 110.5 0.98 82.0 1.33 120.8 0.90 106.8 1.02
512 106.2 117.4 0.90 75.1 1.41 91.0 1.17 93.6 1.13
768 123.0 133.5 0.92 80.4 1.53 110.9 1.11 104.8 1.17
1000 131.8 133.1 0.99 93.5 1.41 130.1 1.01 126.4 1.04
1001 128.7 131.2 0.98 88.4 1.46 124.9 1.03 114.1 1.13
1024 110.7 130.1 0.85 71.9 1.54 91.7 1.21 41.8 2.65
1536 131.7 141.6 0.93 97.0 1.36 135.8 0.97 94.8 1.39
2048 125.4 140.2 0.89 71.6 1.75 122.4 1.02 52.1 2.41
3072 131.1 139.0 0.94 96.9 1.35 128.2 1.02 66.6 1.97
4096 122.2 137.6 0.89 49.0 2.49 73.3 1.67 41.1 2.97
4097 130.4 137.1 0.95 101.2 1.29 133.5 0.98 76.1 1.71
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 1.55 0.3 0.81 0.3 0.80 0.1 2.61
3 0.4 0.4 1.16 0.6 0.77 0.8 0.52 0.2 2.14
4 0.7 0.7 1.00 1.4 0.46 1.5 0.43 0.3 2.10
6 1.0 1.3 0.76 1.7 0.59 1.5 0.66 0.6 1.68
8 1.7 2.1 0.82 2.6 0.65 2.3 0.73 0.9 1.89
12 3.4 3.4 0.99 4.0 0.85 3.7 0.93 1.4 2.45
16 5.6 5.0 1.12 4.7 1.20 4.6 1.21 2.1 2.67
24 9.8 8.0 1.22 5.3 1.83 10.8 0.90 3.8 2.59
32 8.8 10.9 0.80 7.2 1.22 14.3 0.62 5.7 1.55
48 14.0 17.2 0.81 10.1 1.37 13.3 1.05 9.4 1.48
64 18.6 26.3 0.71 12.3 1.52 18.4 1.01 12.7 1.47
96 25.8 34.7 0.74 14.7 1.76 25.4 1.02 29.2 0.88
100 26.7 30.8 0.87 14.8 1.81 25.9 1.03 30.8 0.87
128 37.3 39.8 0.94 15.1 2.48 25.4 1.47 33.2 1.12
192 46.4 47.2 0.98 32.9 1.41 52.8 0.88 47.7 0.97
200 46.7 43.8 1.07 30.8 1.52 55.4 0.84 49.9 0.94
256 52.4 51.1 1.02 32.8 1.60 45.6 1.15 48.0 1.09
257 49.9 49.4 1.01 33.6 1.48 54.3 0.92 45.6 1.09
384 58.8 55.7 1.06 44.4 1.33 51.0 1.15 56.2 1.05
500 61.5 55.0 1.12 42.7 1.44 65.9 0.93 57.9 1.06
512 55.4 55.1 1.00 27.2 2.04 29.0 1.91 58.3 0.95
768 63.8 61.0 1.05 44.0 1.45 46.5 1.37 62.8 1.02
1000 68.0 61.1 1.11 50.3 1.35 69.3 0.98 67.2 1.01
1001 66.8 60.9 1.10 48.4 1.38 68.8 0.97 66.3 1.01
1024 60.8 61.5 0.99 41.3 1.47 51.1 1.19 64.0 0.95
1536 64.5 63.5 1.02 47.2 1.37 63.7 1.01 63.2 1.02
2048 59.5 63.3 0.94 42.7 1.39 44.3 1.34 62.5 0.95
3072 63.4 63.6 1.00 47.4 1.34 59.8 1.06 58.3 1.09
4096 55.6 61.9 0.90 35.5 1.56 34.7 1.60 57.6 0.97
4097 61.9 62.1 1.00 51.1 1.21 64.0 0.97 58.3 1.06
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.2 1.16 0.5 0.39 0.5 0.37 0.3 0.56
3 0.4 0.4 1.27 1.6 0.28 1.6 0.29 1.3 0.35
4 0.7 0.6 1.24 2.7 0.27 3.0 0.25 1.1 0.66
6 1.5 1.1 1.36 1.7 0.89 1.6 0.91 1.7 0.87
8 2.6 1.6 1.67 2.0 1.32 2.2 1.20 2.1 1.24
12 4.3 2.4 1.81 2.6 1.65 3.0 1.44 4.3 0.99
16 6.9 3.3 2.09 3.4 2.06 4.0 1.73 6.5 1.07
24 7.1 6.8 1.03 5.2 1.36 4.4 1.61 10.3 0.69
32 9.8 9.2 1.06 7.8 1.26 6.8 1.45 1.5 6.72
48 15.6 17.2 0.91 11.3 1.38 12.5 1.25 2.7 5.68
64 21.7 23.0 0.94 15.6 1.39 19.4 1.12 5.3 4.12
96 33.0 37.4 0.88 18.5 1.78 33.5 0.99 9.6 3.45
100 32.4 38.1 0.85 18.5 1.75 32.0 1.01 10.2 3.18
128 39.8 47.1 0.85 23.4 1.70 47.4 0.84 17.3 2.30
192 54.5 65.0 0.84 30.7 1.77 68.3 0.80 29.1 1.87
200 57.0 64.9 0.88 31.1 1.84 68.9 0.83 30.3 1.89
256 64.0 74.7 0.86 37.4 1.71 82.3 0.78 45.5 1.41
257 65.0 71.9 0.90 36.3 1.79 78.7 0.83 45.2 1.44
384 80.1 88.5 0.91 48.1 1.67 101.1 0.79 66.2 1.21
500 89.2 93.7 0.95 55.3 1.61 107.7 0.83 81.6 1.09
512 81.6 94.9 0.86 55.7 1.47 106.5 0.77 52.0 1.57
768 102.7 105.1 0.98 69.4 1.48 121.7 0.84 102.6 1.00
1000 113.2 113.4 1.00 77.2 1.47 128.4 0.88 116.3 0.97
1001 112.4 111.7 1.01 75.9 1.48 125.4 0.90 116.6 0.96
1024 83.0 112.8 0.74 56.6 1.47 116.0 0.72 43.8 1.89
1536 118.6 122.3 0.97 89.4 1.33 133.2 0.89 94.6 1.25
2048 102.0 122.8 0.83 76.9 1.33 126.6 0.81 66.6 1.53
3072 109.4 123.7 0.88 87.6 1.25 132.8 0.82 82.1 1.33
4096 114.2 125.6 0.91 88.8 1.29 130.2 0.88 87.4 1.31
4097 120.0 126.3 0.95 102.7 1.17 137.8 0.87 119.6 1.00
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.48 0.6 0.44 0.6 0.42 1.0 0.25
3 0.4 0.4 1.24 1.5 0.29 1.7 0.27 1.5 0.30
4 0.8 0.6 1.33 2.4 0.32 2.7 0.28 2.0 0.39
6 1.5 1.0 1.39 1.6 0.94 1.4 1.06 1.4 1.02
8 2.4 1.4 1.67 2.2 1.10 2.2 1.09 2.1 1.13
12 4.3 2.2 1.95 3.5 1.22 2.8 1.55 4.6 0.92
16 6.4 2.9 2.22 4.9 1.31 4.0 1.59 7.0 0.91
24 6.8 4.0 1.69 4.5 1.52 4.2 1.61 9.7 0.70
32 9.3 5.2 1.81 6.7 1.40 6.3 1.49 12.2 0.76
48 14.6 10.5 1.39 10.0 1.46 11.4 1.28 15.0 0.97
64 19.0 13.2 1.44 13.9 1.37 16.8 1.13 16.3 1.17
96 25.8 22.7 1.14 20.4 1.27 26.7 0.97 17.7 1.45
100 26.6 22.7 1.17 21.4 1.24 27.2 0.98 17.3 1.54
128 30.3 27.1 1.12 27.0 1.12 34.2 0.88 22.3 1.36
192 38.9 38.3 1.01 31.5 1.23 45.4 0.86 36.5 1.06
200 40.4 38.9 1.04 33.4 1.21 46.2 0.87 35.6 1.13
256 37.0 40.6 0.91 35.8 1.04 50.0 0.74 30.3 1.22
257 44.1 40.1 1.10 36.2 1.22 49.8 0.88 39.9 1.10
384 50.5 50.8 0.99 43.8 1.15 58.2 0.87 52.8 0.96
500 55.1 52.1 1.06 48.6 1.13 62.0 0.89 55.7 0.99
512 34.7 50.1 0.69 42.2 0.82 58.7 0.59 22.5 1.54
768 57.2 57.8 0.99 53.0 1.08 67.0 0.85 52.3 1.09
1000 63.1 60.7 1.04 57.2 1.10 68.9 0.92 65.0 0.97
1001 62.5 60.0 1.04 55.8 1.12 68.9 0.91 65.1 0.96
1024 47.2 59.4 0.80 47.9 0.99 66.1 0.71 34.7 1.36
1536 54.3 60.0 0.90 52.4 1.04 67.0 0.81 42.1 1.29
2048 57.0 60.2 0.95 50.4 1.13 64.7 0.88 43.4 1.31
3072 61.5 64.1 0.96 56.8 1.08 68.4 0.90 52.0 1.18
4096 61.3 64.6 0.95 53.0 1.16 66.8 0.92 31.2 1.97
4097 62.4 65.3 0.96 61.4 1.02 70.0 0.89 67.9 0.92
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.60 0.5 0.18 0.5 0.18 0.1 1.32
3x3 0.2 0.3 0.61 0.7 0.23 0.8 0.22 0.1 1.43
4x4 0.3 0.4 0.60 1.0 0.26 1.0 0.26 0.2 1.49
6x6 0.6 0.8 0.66 1.8 0.30 1.8 0.30 0.3 1.59
8x8 0.9 1.3 0.71 2.8 0.34 2.7 0.34 0.5 1.70
12x12 1.9 2.4 0.78 4.3 0.43 4.4 0.42 1.1 1.72
16x16 3.0 3.5 0.86 5.6 0.53 5.6 0.53 1.7 1.78
24x24 5.0 5.6 0.90 7.6 0.66 6.5 0.77 3.0 1.66
32x32 7.3 7.6 0.96 10.3 0.70 9.0 0.80 4.5 1.60
48x48 12.1 13.3 0.91 14.5 0.83 14.0 0.86 7.9 1.53
64x64 11.4 16.8 0.68 17.6 0.65 18.7 0.61 11.2 1.01
96x96 23.8 24.3 0.98 21.6 1.10 26.6 0.89 17.8 1.33
100x100 20.3 25.5 0.80 22.0 0.92 27.2 0.75 18.7 1.09
128x128 31.8 28.3 1.12 23.9 1.33 31.3 1.02 22.5 1.41
192x192 51.4 49.0 1.05 40.3 1.28 53.3 0.97 40.9 1.26
200x200 50.7 57.7 0.88 40.0 1.27 53.6 0.95 42.4 1.20
256x256 64.1 52.0 1.23 47.4 1.35 58.5 1.10 46.2 1.39
257x257 63.3 69.3 0.91 53.7 1.18 67.5 0.94 55.1 1.15
384x384 86.0 81.6 1.05 74.0 1.16 93.8 0.92 77.0 1.12
500x500 95.6 95.7 1.00 85.1 1.12 108.2 0.88 90.8 1.05
512x512 96.1 68.6 1.40 64.9 1.48 77.1 1.25 63.6 1.51
768x768 113.0 90.3 1.25 86.8 1.30 103.4 1.09 93.1 1.21
1000x1000 120.3 114.2 1.05 105.9 1.14 130.4 0.92 118.1 1.02
1001x1001 118.2 112.9 1.05 101.9 1.16 126.6 0.93 116.2 1.02
1024x1024 118.1 72.8 1.62 67.8 1.74 76.3 1.55 61.1 1.93
1536x1536 127.5 100.3 1.27 94.7 1.35 109.3 1.17 99.5 1.28
2048x2048 127.8 91.4 1.40 84.2 1.52 91.7 1.39 72.1 1.77
3072x3072 125.4 96.0 1.31 94.3 1.33 106.5 1.18 72.6 1.73
4096x4096 120.3 65.8 1.83 67.3 1.79 78.3 1.54 48.6 2.48
4097x4097 122.9 105.5 1.17 109.2 1.13 129.1 0.95 86.7 1.42
4096x8 36.4 34.6 1.05 29.6 1.23 45.9 0.79 36.9 0.99
4096x64 51.3 47.9 1.07 46.5 1.10 58.7 0.87 51.4 1.00
4096x256 93.8 70.7 1.33 61.9 1.52 93.5 1.00 55.9 1.68
4096x1024 123.7 101.6 1.22 95.6 1.29 105.0 1.18 81.6 1.52
10000x8 39.3 35.4 1.11 30.7 1.28 46.9 0.84 38.9 1.01
10000x100 55.6 41.0 1.35 67.6 0.82 89.4 0.62 41.9 1.33
10000x1000 114.6 106.5 1.08 103.9 1.10 125.6 0.91 114.0 1.01
10000x4000 121.1 101.0 1.20 115.3 1.05 137.9 0.88 129.1 0.94
100000x8 30.5 31.3 0.97 27.0 1.13 37.2 0.82 32.1 0.95
100000x64 31.6 32.3 0.98 43.6 0.73 52.4 0.60 32.6 0.97
100000x256 68.0 47.1 1.44 55.7 1.22 57.6 1.18 53.3 1.28
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.57 0.7 0.13 0.8 0.12 0.2 0.43
3x3 0.2 0.3 0.62 0.7 0.26 0.6 0.27 0.4 0.39
4x4 0.3 0.4 0.65 0.8 0.32 0.9 0.30 0.6 0.41
6x6 0.5 0.8 0.70 1.4 0.38 1.5 0.35 1.4 0.38
8x8 0.9 1.2 0.73 2.2 0.39 2.3 0.37 2.4 0.36
12x12 1.8 2.2 0.83 3.8 0.48 4.2 0.43 4.7 0.38
16x16 2.9 3.2 0.92 5.1 0.58 5.8 0.50 7.1 0.42
24x24 5.0 5.7 0.87 6.3 0.79 7.3 0.68 11.3 0.44
32x32 7.1 8.0 0.90 8.2 0.87 10.4 0.69 14.3 0.50
48x48 11.5 12.1 0.95 10.8 1.07 15.5 0.74 15.1 0.76
64x64 10.7 15.6 0.68 12.4 0.86 19.4 0.55 18.1 0.59
96x96 19.7 18.5 1.07 14.0 1.40 22.4 0.88 20.5 0.96
100x100 17.5 18.6 0.94 14.2 1.23 22.5 0.78 20.8 0.84
128x128 24.3 19.9 1.22 19.1 1.27 28.1 0.86 10.8 2.24
192x192 34.0 30.9 1.10 28.9 1.18 42.5 0.80 14.8 2.30
200x200 33.9 35.6 0.95 30.3 1.12 45.3 0.75 14.5 2.34
256x256 38.7 31.8 1.22 29.2 1.33 38.4 1.01 17.9 2.16
257x257 38.4 40.1 0.96 34.5 1.11 50.5 0.76 16.6 2.31
384x384 48.2 41.7 1.16 38.4 1.26 48.8 0.99 24.1 2.00
500x500 52.9 51.7 1.02 46.6 1.14 60.4 0.88 27.5 1.93
512x512 51.4 35.9 1.43 32.0 1.61 38.2 1.35 23.1 2.22
768x768 59.0 48.9 1.21 46.5 1.27 54.4 1.08 34.1 1.73
1000x1000 61.7 59.3 1.04 56.4 1.09 67.1 0.92 39.9 1.55
1001x1001 60.8 58.9 1.03 54.6 1.11 66.6 0.91 39.0 1.56
1024x1024 61.1 46.0 1.33 40.7 1.50 48.1 1.27 30.9 1.97
1536x1536 62.9 49.9 1.26 46.8 1.34 54.0 1.16 39.8 1.58
2048x2048 62.0 43.7 1.42 40.9 1.52 33.5 1.85 38.1 1.63
3072x3072 61.6 49.3 1.25 53.3 1.15 57.3 1.08 40.8 1.51
4096x4096 59.2 28.7 2.06 28.9 2.05 29.3 2.02 25.7 2.31
4097x4097 60.7 53.5 1.13 63.7 0.95 67.2 0.90 41.7 1.46
4096x8 17.8 14.8 1.20 15.7 1.13 23.3 0.76 21.0 0.85
4096x64 22.8 20.8 1.10 27.0 0.85 28.2 0.81 20.2 1.13
4096x256 43.3 36.1 1.20 44.7 0.97 35.1 1.23 34.0 1.27
4096x1024 57.4 44.9 1.28 38.4 1.49 50.0 1.15 44.2 1.30
10000x8 17.4 14.1 1.24 15.2 1.15 22.3 0.78 20.8 0.84
10000x100 24.1 19.5 1.23 33.9 0.71 46.0 0.52 21.9 1.10
10000x1000 54.7 51.3 1.07 58.8 0.93 56.8 0.96 47.5 1.15
10000x4000 60.9 53.7 1.13 68.2 0.89 68.0 0.90 47.5 1.28
100000x8 12.7 13.0 0.98 13.4 0.95 15.9 0.80 18.3 0.69
100000x64 12.0 10.5 1.14 20.1 0.60 20.7 0.58 10.1 1.18
100000x256 27.7 21.2 1.30 36.6 0.76 27.6 1.00 25.1 1.10
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.47 0.6 1.35 0.6 1.42 0.3 2.36
3 0.8 0.5 1.59 0.6 1.48 0.5 1.65 0.3 3.00
4 1.0 0.7 1.38 0.8 1.19 0.8 1.33 0.4 2.49
6 1.6 1.2 1.36 1.4 1.15 1.3 1.25 0.7 2.24
8 2.2 1.6 1.36 2.1 1.07 2.0 1.14 1.1 2.02
12 3.6 2.7 1.36 3.7 0.98 3.1 1.19 2.0 1.80
16 5.2 3.7 1.41 5.2 0.98 5.0 1.03 3.1 1.69
24 7.9 5.2 1.51 8.1 0.97 8.0 0.98 5.0 1.56
32 10.5 6.4 1.65 10.5 1.00 10.6 0.99 7.2 1.45
48 15.9 9.1 1.75 14.8 1.07 15.7 1.01 9.9 1.60
64 20.9 10.8 1.93 19.0 1.10 21.1 0.99 14.7 1.42
96 31.3 13.3 2.35 25.6 1.22 28.0 1.12 22.5 1.39
100 32.4 13.6 2.38 25.6 1.26 26.2 1.24 21.8 1.48
128 40.5 14.4 2.82 29.9 1.35 32.9 1.23 29.2 1.38
192 54.3 16.8 3.24 37.3 1.46 43.6 1.25 41.5 1.31
200 56.2 17.2 3.27 38.5 1.46 44.3 1.27 41.9 1.34
256 63.3 18.2 3.48 43.3 1.46 51.3 1.24 50.4 1.26
257 60.8 18.5 3.29 43.5 1.40 52.8 1.15 47.5 1.28
384 78.4 20.1 3.89 55.6 1.41 69.8 1.12 67.7 1.16
500 83.8 21.1 3.97 63.9 1.31 81.0 1.03 73.1 1.15
512 80.8 20.7 3.90 61.0 1.32 74.3 1.09 74.0 1.09
768 88.0 21.9 4.01 69.5 1.27 94.8 0.93 87.8 1.00
1000 90.8 21.9 4.14 75.5 1.20 106.1 0.86 93.6 0.97
1001 85.4 21.9 3.89 72.1 1.18 106.5 0.80 75.5 1.13
1024 82.4 21.5 3.82 68.2 1.21 79.3 1.04 81.8 1.01
1536 92.1 20.9 4.40 77.7 1.18 104.1 0.88 101.6 0.91
2048 88.1 23.4 3.76 74.0 1.19 82.9 1.06 94.8 0.93
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.7 0.6 1.28 0.5 1.34 0.5 1.42 0.4 1.65
3 0.6 0.5 1.36 0.5 1.30 0.5 1.38 0.2 2.61
4 0.8 0.6 1.35 0.7 1.22 0.7 1.26 0.3 2.43
6 1.2 1.0 1.22 1.1 1.08 1.1 1.13 0.6 2.02
8 1.7 1.4 1.25 1.6 1.06 1.6 1.08 1.0 1.72
12 2.9 2.2 1.32 2.7 1.11 2.8 1.07 2.0 1.49
16 3.9 2.8 1.36 3.8 1.01 4.1 0.95 3.0 1.29
24 6.0 4.0 1.48 5.8 1.04 6.6 0.91 5.0 1.20
32 8.1 5.0 1.62 7.4 1.09 8.6 0.93 7.1 1.13
48 11.9 6.3 1.90 10.1 1.18 12.5 0.95 9.6 1.24
64 15.6 7.9 1.97 12.0 1.30 15.6 1.00 13.0 1.20
96 20.9 8.7 2.40 16.3 1.28 21.9 0.96 18.0 1.16
100 21.5 8.8 2.43 15.7 1.37 21.1 1.02 17.7 1.22
128 24.6 11.8 2.08 17.9 1.38 24.7 1.00 21.3 1.16
192 31.3 10.2 3.05 22.9 1.37 31.4 0.99 27.8 1.12
200 31.9 10.4 3.07 22.7 1.41 32.2 0.99 28.9 1.10
256 33.9 12.6 2.70 24.5 1.38 32.1 1.05 31.8 1.07
257 34.2 11.0 3.12 24.8 1.38 35.6 0.96 31.1 1.10
384 39.1 11.8 3.32 29.5 1.33 42.5 0.92 38.4 1.02
500 40.8 16.6 2.47 31.7 1.29 47.1 0.87 42.3 0.97
512 37.5 15.6 2.41 28.3 1.32 32.3 1.16 37.6 1.00
768 40.7 12.8 3.17 33.9 1.20 45.5 0.89 44.1 0.92
1000 42.9 13.1 3.27 41.0 1.05 57.0 0.75 48.3 0.89
1001 41.3 13.1 3.15 40.0 1.03 56.3 0.73 42.4 0.97
1024 40.6 13.1 3.10 37.2 1.09 41.7 0.97 42.7 0.95
1536 41.9 15.1 2.77 41.0 1.02 57.3 0.73 45.3 0.92
2048 29.8 13.5 2.21 37.7 0.79 53.3 0.56 36.3 0.82
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.5 0.3 8.76 0.3 7.27 0.3 7.81 0.1 17.56
3x3 1.7 0.5 3.21 0.6 2.90 0.5 3.13 0.3 6.06
4x4 1.7 0.8 2.04 0.9 1.87 0.8 2.04 0.5 3.76
6x6 2.0 1.6 1.23 1.6 1.21 1.5 1.35 0.9 2.17
8x8 2.3 2.4 0.95 2.5 0.92 2.4 0.96 1.5 1.49
12x12 2.8 3.9 0.71 4.6 0.61 3.7 0.75 2.8 1.01
16x16 4.7 5.0 0.93 6.3 0.74 6.0 0.77 4.3 1.09
24x24 6.8 7.0 0.97 9.5 0.72 9.4 0.72 7.0 0.97
32x32 10.0 12.0 0.83 13.4 0.75 14.0 0.71 10.7 0.93
48x48 16.9 18.6 0.91 20.8 0.81 22.3 0.75 14.8 1.14
64x64 23.9 29.6 0.81 31.2 0.77 35.4 0.67 23.9 1.00
96x96 38.9 43.4 0.90 43.9 0.89 55.8 0.70 40.9 0.95
100x100 40.4 44.7 0.90 44.2 0.91 55.8 0.72 40.3 1.00
128x128 50.4 56.8 0.89 52.2 0.97 71.5 0.71 55.2 0.91
192x192 77.9 84.8 0.92 73.8 1.06 104.8 0.74 85.7 0.91
200x200 80.7 89.7 0.90 75.6 1.07 108.7 0.74 88.4 0.91
256x256 92.5 94.9 0.97 79.1 1.17 112.0 0.83 97.4 0.95
257x257 99.8 112.3 0.89 89.7 1.11 134.8 0.74 108.2 0.92
384x384 133.0 140.3 0.95 108.0 1.23 166.3 0.80 140.7 0.95
500x500 153.0 169.0 0.91 123.5 1.24 196.2 0.78 155.1 0.99
512x512 129.1 117.8 1.10 95.5 1.35 142.0 0.91 123.0 1.05
768x768 162.9 167.2 0.97 125.4 1.30 188.5 0.86 157.7 1.03
1000x1000 185.3 210.9 0.88 145.5 1.27 229.5 0.81 182.7 1.01
1001x1001 184.1 207.3 0.89 142.9 1.29 230.7 0.80 178.2 1.03
1024x1024 138.8 119.0 1.17 86.9 1.60 129.9 1.07 110.4 1.26
1536x1536 176.9 174.6 1.01 129.3 1.37 191.5 0.92 159.2 1.11
2048x2048 170.7 156.2 1.09 109.0 1.57 162.6 1.05 136.8 1.25
4096x64 144.6 99.5 1.45 126.6 1.14 132.4 1.09 115.9 1.25
4096x256 213.6 160.0 1.34 158.9 1.34 193.7 1.10 153.3 1.39
4096x1024 183.0 162.0 1.13 133.2 1.37 150.6 1.21 140.5 1.30
10000x8 60.9 38.2 1.59 81.4 0.75 124.0 0.49 104.8 0.58
10000x100 169.1 105.9 1.60 157.5 1.07 206.2 0.82 123.6 1.37
10000x1000 220.6 232.5 0.95 196.8 1.12 249.0 0.89 243.5 0.91
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 8.18 0.3 7.04 0.3 7.47 1.7 1.33
3x3 1.2 0.5 2.39 0.5 2.33 0.5 2.42 1.0 1.11
4x4 1.3 0.8 1.69 0.8 1.66 0.7 1.71 1.3 0.99
6x6 1.4 1.3 1.07 1.3 1.12 1.2 1.16 2.0 0.69
8x8 1.6 2.0 0.81 1.9 0.83 1.9 0.83 2.9 0.56
12x12 1.9 3.2 0.60 3.3 0.57 3.4 0.55 4.6 0.42
16x16 3.5 4.3 0.83 4.5 0.78 4.9 0.73 6.1 0.58
24x24 5.0 6.3 0.81 6.8 0.74 7.4 0.68 8.9 0.57
32x32 7.4 10.2 0.73 9.7 0.76 11.5 0.64 11.0 0.67
48x48 12.1 14.6 0.82 14.2 0.85 17.4 0.69 13.7 0.88
64x64 15.9 21.9 0.73 20.2 0.79 25.7 0.62 21.1 0.75
96x96 24.7 30.2 0.82 28.2 0.88 37.4 0.66 32.0 0.77
100x100 25.8 31.5 0.82 28.4 0.91 38.1 0.68 32.4 0.80
128x128 31.3 36.5 0.86 32.8 0.95 43.9 0.71 39.0 0.80
192x192 47.7 52.4 0.91 47.5 1.00 63.3 0.75 57.3 0.83
200x200 49.9 55.8 0.89 50.0 1.00 67.4 0.74 60.4 0.83
256x256 53.6 54.3 0.99 48.0 1.12 62.3 0.86 59.1 0.91
257x257 59.5 66.7 0.89 58.4 1.02 80.2 0.74 72.0 0.83
384x384 71.6 74.2 0.97 67.4 1.06 86.2 0.83 80.5 0.89
500x500 82.2 92.0 0.89 82.8 0.99 104.1 0.79 98.5 0.83
512x512 62.4 57.0 1.09 53.8 1.16 66.2 0.94 53.7 1.16
768x768 82.8 84.6 0.98 78.3 1.06 94.9 0.87 85.3 0.97
1000x1000 94.6 101.1 0.94 98.8 0.96 116.3 0.81 111.9 0.85
1001x1001 93.7 100.2 0.93 96.0 0.98 115.2 0.81 109.6 0.85
1024x1024 77.8 72.3 1.08 72.2 1.08 79.4 0.98 66.1 1.18
1536x1536 88.5 84.7 1.04 79.3 1.12 88.8 1.00 72.2 1.23
2048x2048 74.8 64.2 1.17 61.5 1.21 56.6 1.32 59.1 1.27
4096x64 68.3 53.7 1.27 69.6 0.98 72.1 0.95 60.9 1.12
4096x256 102.4 82.7 1.24 85.3 1.20 94.5 1.08 86.0 1.19
4096x1024 94.5 87.9 1.08 79.9 1.18 91.8 1.03 76.6 1.23
10000x8 27.1 26.9 1.01 42.0 0.64 59.3 0.46 64.5 0.42
10000x100 76.5 52.4 1.46 80.2 0.95 101.2 0.76 61.7 1.24
10000x1000 109.6 114.5 0.96 114.8 0.95 120.9 0.91 107.1 1.02
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.4 0.3 7.97 0.3 6.98 0.3 7.07 0.1 21.38
3 1.1 0.5 2.32 0.5 2.09 0.5 2.15 0.2 4.98
4 1.6 0.8 2.11 0.9 1.80 0.8 1.93 0.4 4.38
6 2.0 1.4 1.40 1.6 1.27 1.4 1.38 0.7 2.93
8 3.7 2.0 1.82 2.5 1.45 2.3 1.59 1.1 3.33
12 4.9 3.3 1.49 3.6 1.34 3.2 1.51 1.9 2.54
16 7.9 4.2 1.87 5.1 1.56 4.6 1.73 2.8 2.85
24 11.4 6.2 1.83 7.7 1.47 7.1 1.61 4.6 2.49
32 14.2 7.7 1.84 10.0 1.42 9.2 1.55 6.4 2.21
48 18.1 10.0 1.81 13.7 1.33 12.9 1.41 9.6 1.89
64 20.9 11.7 1.79 16.0 1.31 15.2 1.37 13.0 1.61
96 25.8 12.7 2.04 15.6 1.66 15.6 1.65 12.3 2.10
100 24.6 13.2 1.86 16.3 1.51 15.6 1.58 12.8 1.92
128 27.9 15.8 1.77 20.5 1.36 21.0 1.33 16.7 1.67
192 32.0 30.9 1.04 33.2 0.97 35.2 0.91 27.9 1.15
200 32.5 33.5 0.97 33.3 0.98 35.8 0.91 29.0 1.12
256 32.1 40.1 0.80 40.2 0.80 44.6 0.72 36.9 0.87
257 31.7 41.4 0.77 40.8 0.78 44.2 0.72 39.1 0.81
384 33.9 58.5 0.58 62.9 0.54 68.0 0.50 57.2 0.59
500 35.8 73.2 0.49 77.0 0.46 85.1 0.42 74.3 0.48
512 32.7 37.4 0.87 40.7 0.80 44.7 0.73 38.1 0.86
768 35.3 79.7 0.44 85.4 0.41 94.0 0.38 82.1 0.43
1000 39.0 109.8 0.36 115.3 0.34 130.8 0.30 113.1 0.35
1001 34.3 109.1 0.31 110.5 0.31 123.3 0.28 113.0 0.30
1024 11.2 59.7 0.19 56.2 0.20 60.3 0.19 51.0 0.22
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.6 0.3 8.45 1.5 1.73 1.7 1.57 0.1 17.62
3 0.8 0.5 1.74 1.0 0.85 1.1 0.77 0.3 3.39
4 1.4 0.7 2.03 1.3 1.10 1.4 1.01 0.4 3.58
6 1.7 1.2 1.40 2.0 0.86 2.2 0.78 0.7 2.49
8 2.9 1.7 1.70 2.7 1.06 3.0 0.97 1.2 2.49
12 4.4 2.6 1.69 3.9 1.11 4.3 1.00 2.2 2.00
16 5.8 3.5 1.68 4.8 1.21 5.4 1.07 3.3 1.76
24 7.9 4.9 1.61 6.2 1.28 7.2 1.10 5.3 1.51
32 9.8 6.3 1.57 7.3 1.34 8.3 1.18 7.0 1.40
48 12.6 7.7 1.64 8.3 1.51 10.3 1.22 9.6 1.31
64 13.9 9.0 1.55 9.1 1.52 11.5 1.21 12.2 1.14
96 15.5 8.9 1.74 10.1 1.54 13.0 1.19 10.9 1.42
100 15.9 9.3 1.71 10.4 1.53 13.0 1.23 11.3 1.41
128 16.5 10.7 1.54 12.6 1.31 13.4 1.24 13.5 1.22
192 17.4 18.1 0.97 18.9 0.92 21.5 0.81 21.2 0.82
200 18.8 19.2 0.98 19.4 0.97 22.2 0.85 22.9 0.82
256 17.7 20.5 0.86 20.4 0.87 22.1 0.80 23.8 0.75
257 17.1 23.1 0.74 24.1 0.71 27.4 0.62 27.6 0.62
384 18.3 31.9 0.57 34.0 0.54 37.1 0.49 36.7 0.50
500 18.7 39.6 0.47 42.3 0.44 46.7 0.40 45.8 0.41
512 11.8 16.6 0.71 10.5 1.12 10.6 1.11 16.0 0.74
768 15.4 32.7 0.47 32.2 0.48 33.5 0.46 36.8 0.42
1000 18.0 57.0 0.32 61.4 0.29 67.4 0.27 66.1 0.27
1001 16.8 56.8 0.30 59.5 0.28 66.9 0.25 65.0 0.26
1024 9.2 35.0 0.26 23.2 0.39 23.6 0.39 31.5 0.29