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

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, TRMM, SYMM, SYRK) and LAPACK (POTRF, PSTRF, SYTRF, GETRF, GEQRF, GELS, 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.

This page was first published with a measurement of 2026-09-14 to 2026-09-16 at Eigen master 15f227178 on Ubuntu 24.04. It now shows a full re-measurement of Eigen and of every library, taken after the host moved to Ubuntu 26.04 with GCC 15.2, at Eigen master 674e4a4e5, and adds five operations: TRMM, SYMM, PSTRF, SYTRF and GELS. Against September’s last Eigen measurement, on the cells both pages share, Eigen’s AVX2 rates repeat within 8 % (geometric mean per operation and scalar) except AXPY in float (18 % faster), GEQRF (11 % faster), GETRF (8 to 18 % faster), GEEV (17 to 31 % faster) and TRSM (50 % faster in double, 78 % in float). The September version of the page and its result files are in the history of the website repository.

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 26.04.1 LTS under WSL2 (Linux 6.18.54.1, Hyper-V)
Compiler GCC 15.2.0, -O3 -DNDEBUG -mavx2 -mfma, C++17
Eigen master 674e4a4e5 (5.0.1-dev), default configuration, no external BLAS. The measured tree, 0e7c9e40a, is that master plus the comparison harness; the library code under Eigen/ is master’s
Instruction sets OpenBLAS and AOCL limited to AVX2 and FMA through their own switches: OPENBLAS_CORETYPE=Zen and AOCL_ENABLE_INSTRUCTIONS=AVX2. The oneMKL runs did not set MKL_ENABLE_INSTRUCTIONS=AVX2; oneMKL takes its generic code path on this AMD CPU either way, and its GEMM in double at n = 1024 ran at 68 GFLOP/s in the AVX-512 session and 70 in this one
OpenBLAS 0.3.32 (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
AMD AOCL 5.2.0 (Build 20251223): AOCL-BLIS libblis-mt for BLAS, AOCL-libFLAME for LAPACK
Threads 1 for every arm: OPENBLAS_NUM_THREADS, MKL_NUM_THREADS, BLIS_NUM_THREADS, OMP_NUM_THREADS all set to 1; Eigen built without OpenMP
Method Google Benchmark, 10 repetitions of at least 0.2 s each per cell, median of the 10 rates; the process pinned to one thread per physical core with taskset
Date oneMKL runs: 2026-10-25 14:56 to 2026-10-26 09:51 (UTC−7); OpenBLAS and AOCL runs: 2026-10-26 18:28 to 2026-10-27 00:08. 51 runs, about 8.2 hours of measurement
Harness benchmarks/comparison/run.py --isa x86-64-avx2 from Eigen merge request !2903 and the commits that add the five new operations, machine profile zen5-ai-max-395

The OpenBLAS and AOCL runs were repeated: a first pass of the 34 runs of 2026-10-25 and 2026-10-26 did not set the two switches above, and OpenBLAS reported its Cooperlake kernel target in it. Its results are not used. In the repeat the limits took effect: GEMM in double at n = 1024 ran at 74 and 75 GFLOP/s in OpenBLAS and AOCL, against 73 for Eigen; OpenBLAS reports Zen.

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. A ratio divides Eigen’s rate by the library’s rate from the same binary and the same run. Each of the three binaries, one per library, also measured every Eigen cell, so Eigen was measured three times, the oneMKL pass a day apart from the other two: 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. The spread is within 3 % for 81 % of the cells and above 10 % for 4 %. In September a few level-3 cells ran at one of two rates up to 2.5 times apart, depending on the binary (SYRK and GEMM at n = 192, and in float at n = 256; see libeigen/eigen#3201); in this measurement no GEMM or SYRK cell differs by more than 25 % between the three passes. 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.

Each run covered one operation against one library and ran under a fleet-quiet lease that kept other work off the host. It started only after the host passed a gate (no compilers or containers, the guest’s busy-core count below 0.5 and its one-minute load below 0.9, the Windows host’s CPU load at most 8 %) and was discarded and repeated if the guest averaged 1.8 busy cores or more in any 3 s sample, or a container started. The Windows host’s load is invisible inside the guest.

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.52 ns per call for Eigen against 4.0 ns for OpenBLAS, 3.9 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.2 ns where it is not and the remaining elements are written and reloaded through masked moves, while a September test on this machine that cycled the same kernel through 64 vectors instead of one measured 0.8 to 1.4 ns.

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, sweeps GEMM double, other shapes GEMM float, square GEMM float, 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

TRMM

X.noalias() = A.triangularView<Lower>() * B against ?trmm with the m-by-m lower triangle on the left and n columns in B, no transposition, non-unit diagonal; (m(m+1)n) flops, TRSM’s count. ?trmm overwrites B, so the reference arm copies B into the destination and multiplies in place; the Eigen arm writes the product to the destination, which noalias() zero-fills before accumulating. Each arm makes the one pass over the destination its interface requires, and neither allocates inside the timed region.

The same shapes as TRSM: square, then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of columns, then the remaining shapes with 4096 columns against a small triangle.

TRMM double, square TRMM double, sweeps TRMM double, other shapes TRMM float, square TRMM float, sweeps TRMM float, other shapes

SYMM

C.noalias() += A.selfadjointView<Lower>() * B against ?symm (?hemm for a complex scalar) with the m-by-m symmetric matrix stored in its lower triangle, on the left, and n columns in B; (2m^2n) flops, the count of the general product of the same shape. C accumulates across iterations and is never reset, as in GEMM.

The same shapes as TRSM.

SYMM double, square SYMM double, sweeps SYMM double, other shapes SYMM float, square SYMM float, sweeps SYMM 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

PSTRF

LDLT<Ref<MatrixXd>> in place against ?pstrf, lower triangle, symmetric positive definite operand; (n(n-1)(n-2)/3 + 2n(n-1)) flops for both, (n^3/3) to leading order. The two compute different factors of the same pivoted matrix, (P^T A P = L L^T) for LAPACK and (L D L^T) for Eigen, and pivot on the same entry, the largest diagonal element of the remaining Schur complement. Both arms copy the operand into a destination allocated once and factorize the copy, as GETRF does. LDLT::compute also evaluates the operand’s L1 norm for rcond(), which ?pstrf does not. Each result is checked by applying the stored factors to a random vector and comparing with (Ax).

PSTRF double PSTRF float

SYTRF

BunchKaufman<Ref<MatrixXd>> in place against ?sytrf (?hetrf for a complex scalar), lower triangle, symmetric indefinite operand; (n(n-1)(n-2)/3 + 2n(n-1)) flops for both, (n^3/3) to leading order. Both arms copy the operand into a destination allocated once and factorize the copy, as GETRF does; pivot and workspace arrays are set up once per shape. Each result is checked by applying the stored factors, with the pivot blocks of D, to a random vector and comparing with (Ax).

SYTRF double SYTRF 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, sweeps GEQRF float, square GEQRF float, sweeps

GELS

Full-rank least squares (\min \lVert AX - B \rVert) through Householder QR with A m-by-n, m ≥ n, and B m-by-nrhs: HouseholderQR<Ref<MatrixXd>> followed by qr.solve(B) against ?gels (trans = 'N'); (2mn^2 - 2n^3/3) flops for the factorization plus (\text{nrhs},(4mn - n^2)) for applying (Q^T) and solving with R. ?gels overwrites A and B, so the reference arm copies both into destinations allocated once. The Eigen arm factorizes a copy of A through the in-place HouseholderQR and writes qr.solve(B) to a preallocated X; solve() copies B into a temporary it allocates, which is the cost of the expression a user writes, so it is timed. The solution is checked through the normal equations on a well-conditioned operand.

Square shapes with one right-hand side, then the tall-skinny sweeps with m fixed at 4096, 10000 and 100000, then right-hand-side sweeps: 16 to 256 columns of B at m = n = 1024 and 16 to 1024 at 4096 by 256.

GELS double, square GELS double, sweeps GELS float, square GELS float, 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, sweeps GESDD float, square GESDD float, 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.2 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.34 2.07 1.50 1.16 1.01
AXPY float Intel oneMKL 1.40 2.53 2.72 2.26 1.27
AXPY float AOCL-BLIS 1.70 2.04 1.49 1.17 1.00
AXPY double OpenBLAS 1.48 1.83 1.38 1.10 1.01
AXPY double Intel oneMKL 1.53 2.62 2.48 2.00 1.15
AXPY double AOCL-BLIS 2.67 2.48 1.45 1.11 1.01
DOT float OpenBLAS 3.68 2.84 1.20 1.00 0.98
DOT float Intel oneMKL 4.89 3.34 2.19 1.82 1.20
DOT float AOCL-BLIS 7.35 3.64 1.26 1.04 1.01
DOT double OpenBLAS 6.00 2.17 1.14 0.95 1.01
DOT double Intel oneMKL 6.09 2.74 2.10 1.74 1.13
DOT double AOCL-BLIS 12.04 3.07 1.25 1.00 1.00
GEMV float OpenBLAS 2.49 1.38 0.96 0.75 –
GEMV float Intel oneMKL 2.22 1.91 1.19 0.96 –
GEMV float AOCL-BLIS 4.26 1.93 0.99 0.78 –
GEMV double OpenBLAS 2.30 1.27 0.93 0.78 –
GEMV double Intel oneMKL 2.26 1.67 1.09 0.94 –
GEMV double AOCL-BLIS 1.96 1.33 0.96 0.75 –
GEMM float OpenBLAS 2.46 1.07 0.99 0.98 –
GEMM float Intel oneMKL 2.68 1.14 1.13 1.15 –
GEMM float AOCL-BLIS 19.19 1.26 0.98 0.99 –
GEMM double OpenBLAS 2.19 1.06 1.00 0.97 –
GEMM double Intel oneMKL 2.89 1.19 1.04 1.01 –
GEMM double AOCL-BLIS 2.58 0.94 0.97 0.98 –
TRSM float OpenBLAS 1.28 1.36 1.00 0.95 –
TRSM float Intel oneMKL 2.57 7.37 2.73 1.64 –
TRSM float AOCL-BLIS 2.06 1.34 1.01 0.99 –
TRSM double OpenBLAS 2.03 1.87 1.16 0.96 –
TRSM double Intel oneMKL 2.69 2.41 1.52 1.14 –
TRSM double AOCL-BLIS 2.57 1.11 0.96 0.94 –
TRMM float OpenBLAS 0.51 0.83 0.92 0.92 –
TRMM float Intel oneMKL 1.66 2.13 1.56 1.23 –
TRMM float AOCL-BLIS 19.38 1.97 0.97 0.94 –
TRMM double OpenBLAS 0.55 0.93 1.03 0.91 –
TRMM double Intel oneMKL 1.62 1.79 1.48 1.33 –
TRMM double AOCL-BLIS 18.73 1.61 0.96 0.90 –
SYMM float OpenBLAS 0.76 1.08 1.00 0.97 –
SYMM float Intel oneMKL 1.36 1.18 1.18 1.17 –
SYMM float AOCL-BLIS 26.23 2.10 1.02 0.98 –
SYMM double OpenBLAS 0.87 1.06 1.00 0.94 –
SYMM double Intel oneMKL 1.72 1.22 1.09 1.15 –
SYMM double AOCL-BLIS 26.15 1.68 1.00 0.94 –
SYRK float OpenBLAS 0.61 0.81 0.97 0.94 –
SYRK float Intel oneMKL 1.16 1.32 1.36 1.42 –
SYRK float AOCL-BLIS 5.57 1.18 1.00 0.98 –
SYRK double OpenBLAS 0.72 1.02 1.09 0.97 –
SYRK double Intel oneMKL 1.32 1.83 1.48 1.29 –
SYRK double AOCL-BLIS 6.01 1.04 1.00 0.98 –
POTRF float OpenBLAS 0.96 0.94 0.92 0.94 –
POTRF float Intel oneMKL 0.56 2.83 1.44 1.51 –
POTRF float AOCL-BLIS 2.28 2.15 1.20 1.80 –
POTRF double OpenBLAS 1.07 1.05 1.05 0.97 –
POTRF double Intel oneMKL 0.66 1.99 1.49 1.43 –
POTRF double AOCL-BLIS 2.02 1.57 1.01 1.02 –
PSTRF float OpenBLAS 1.35 1.33 1.43 1.38 –
PSTRF float Intel oneMKL 0.94 1.77 2.05 2.75 –
PSTRF float AOCL-BLIS 1.78 1.44 1.44 1.91 –
PSTRF double OpenBLAS 1.36 1.35 1.43 1.22 –
PSTRF double Intel oneMKL 1.00 1.41 1.71 1.60 –
PSTRF double AOCL-BLIS 1.45 1.32 1.35 1.18 –
SYTRF float OpenBLAS 1.37 1.68 1.57 1.57 –
SYTRF float Intel oneMKL 0.87 1.54 1.77 1.16 –
SYTRF float AOCL-BLIS 2.97 2.05 1.41 1.33 –
SYTRF double OpenBLAS 1.42 1.54 1.42 1.69 –
SYTRF double Intel oneMKL 0.96 1.46 1.20 1.02 –
SYTRF double AOCL-BLIS 2.79 1.60 1.08 1.13 –
GETRF float OpenBLAS 1.48 1.16 1.15 1.01 –
GETRF float Intel oneMKL 0.75 1.89 2.10 1.42 –
GETRF float AOCL-BLIS 0.75 3.80 1.75 1.42 –
GETRF double OpenBLAS 1.60 1.67 1.16 0.98 –
GETRF double Intel oneMKL 0.63 1.50 1.31 1.10 –
GETRF double AOCL-BLIS 0.56 1.24 1.35 1.28 –
GEQRF float OpenBLAS 0.88 1.24 1.35 1.30 –
GEQRF float Intel oneMKL 0.32 1.07 1.42 1.29 –
GEQRF float AOCL-BLIS 1.62 1.32 1.31 1.57 –
GEQRF double OpenBLAS 0.94 1.23 1.27 1.24 –
GEQRF double Intel oneMKL 0.36 1.24 1.33 1.16 –
GEQRF double AOCL-BLIS 0.41 0.92 2.15 1.48 –
GELS float OpenBLAS 1.19 1.64 1.86 1.40 –
GELS float Intel oneMKL 0.63 1.21 1.45 1.35 –
GELS float AOCL-BLIS 2.52 1.54 1.54 1.77 –
GELS double OpenBLAS 1.20 1.50 1.54 1.28 –
GELS double Intel oneMKL 0.68 1.35 1.36 1.28 –
GELS double AOCL-BLIS 2.04 1.07 2.27 1.49 –
SYEV float OpenBLAS 1.31 1.81 3.54 3.86 –
SYEV float Intel oneMKL 1.08 1.06 1.31 1.21 –
SYEV float AOCL-BLIS 1.98 1.35 1.14 0.90 –
SYEV double OpenBLAS 1.24 1.60 2.26 2.20 –
SYEV double Intel oneMKL 1.11 1.20 1.26 0.91 –
SYEV double AOCL-BLIS 1.79 1.15 1.01 0.90 –
GESDD float OpenBLAS 1.88 0.90 0.95 1.06 –
GESDD float Intel oneMKL 1.55 0.86 1.26 1.41 –
GESDD float AOCL-BLIS 2.87 1.03 1.03 1.22 –
GESDD double OpenBLAS 1.56 0.78 0.93 1.03 –
GESDD double Intel oneMKL 1.46 0.85 1.06 1.16 –
GESDD double AOCL-BLIS 0.77 0.76 0.91 1.22 –
GEEV float OpenBLAS 2.93 2.13 0.62 – –
GEEV float Intel oneMKL 2.35 1.70 0.61 – –
GEEV float AOCL-BLIS 5.41 2.28 0.66 – –
GEEV double OpenBLAS 2.78 2.05 0.76 – –
GEEV double Intel oneMKL 1.33 1.91 0.80 – –
GEEV double AOCL-BLIS 4.10 1.73 0.68 – –

Observations

  • Level with the capped libraries on the large products. GEMM is 0.97 to 1.04 times OpenBLAS, oneMKL and AOCL in double from n = 192, TRSM 0.94 to 1.16 times OpenBLAS and AOCL, and SYMM and SYRK 0.94 to 1.09 against OpenBLAS and AOCL. oneMKL, on its generic path, is 1.1 to 2.4 times behind Eigen on TRSM, TRMM and SYRK.
  • TRMM holds its rate with AVX2. Eigen runs at 62 to 68 GFLOP/s from m = 1024 to 4096 (0.88 to 0.98 times OpenBLAS), where the AVX-512 build falls from 128 to 37 GFLOP/s between m = 1024 and 4096 (see the AVX-512 page).
  • The new factorizations are ahead of all three libraries from n = 24: SYTRF 1.02 to 1.7, PSTRF 1.18 to 1.71 and GELS 1.07 to 2.27 times in double.
  • GEMV trails the libraries above n = 1536 (0.75 to 0.94), and GEEV at n = 192 to 1024 (0.68 to 0.80), as it did in September; GESDD is 0.76 to 0.85 at n = 24 to 128.

Caveats

  • Linux runs under WSL2, so absolute rates are a lower bound on bare-metal Linux.
  • oneMKL as shipped does not use its AVX-512 kernels on AMD CPUs, so its results here are those of its generic path, as on the AVX-512 page.
  • The libraries’ AVX2 limits are their own documented environment switches; a library may still use instructions outside AVX2 and FMA that those switches do not name.
  • Ubuntu 26.04’s GCC 15.2 targets x86-64-v3 by default, which already includes AVX2 and FMA.
  • The OpenBLAS LAPACK arm is the reference LAPACK that OpenBLAS bundles, on top of OpenBLAS’s BLAS kernels; LAPACK ratios compare Eigen’s factorizations with different libraries’ blocking as well as their kernels.
  • PSTRF compares two algorithms that pivot on the same entry but produce different factors, (L L^T) and (L D L^T), and charges both the same flop count.

Full tables

GFLOP/s per shape and library, with the Eigen ÷ library ratio. The Eigen column is the median over its three passes; each ratio is formed within the library’s own binary and run.

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 1.0 1.00 0.8 1.15 0.7 1.47
3 1.4 1.4 1.00 1.2 1.19 0.9 1.53
4 1.9 1.8 1.04 1.6 1.22 1.4 1.41
6 2.9 2.6 1.11 2.2 1.33 1.8 1.57
8 6.2 3.2 1.96 3.4 1.83 2.6 2.41
12 5.8 4.1 1.40 4.3 1.34 3.9 1.48
16 12.4 5.0 2.50 6.2 2.00 5.4 2.30
24 18.7 6.0 3.11 8.4 2.21 8.1 2.31
32 24.9 13.8 1.80 10.7 2.32 10.9 2.27
48 37.3 12.3 3.04 14.1 2.65 15.7 2.38
64 43.1 24.6 1.75 16.4 2.62 19.6 2.20
96 53.3 30.9 1.72 19.8 2.71 28.5 1.87
100 46.5 27.7 1.68 18.9 2.45 28.2 1.65
128 58.8 30.0 1.90 21.2 2.77 33.9 1.74
192 73.0 42.5 1.72 24.4 2.97 40.7 1.79
256 75.6 45.9 1.65 25.8 2.93 46.0 1.65
384 77.3 50.6 1.53 27.8 2.78 50.9 1.52
512 78.1 51.9 1.51 28.6 2.73 51.8 1.51
768 79.2 55.2 1.44 29.8 2.66 54.0 1.43
1000 79.1 54.8 1.41 30.3 2.61 58.5 1.36
1001 78.7 54.8 1.40 30.3 2.60 58.4 1.35
1024 77.8 57.3 1.36 30.3 2.54 57.6 1.37
1536 79.8 59.9 1.34 29.5 2.66 60.8 1.31
2048 77.6 60.9 1.26 30.1 2.58 59.9 1.31
3072 76.4 62.1 1.23 30.7 2.50 61.6 1.24
4096 77.3 62.4 1.24 31.0 2.49 62.6 1.24
6144 73.1 60.1 1.21 31.3 2.36 61.5 1.19
8192 62.3 58.0 1.07 31.5 1.99 58.9 0.99
10000 62.7 59.4 1.06 31.6 2.00 58.2 1.07
12288 63.2 59.7 1.06 31.6 2.00 57.3 1.11
16384 62.8 61.2 1.03 31.5 1.95 57.6 1.10
32768 62.9 61.7 1.02 31.9 1.98 59.4 1.06
65536 61.7 62.4 0.99 31.8 1.94 63.3 0.99
100000 57.6 56.6 1.00 31.9 1.81 63.4 0.99
131072 42.9 42.3 1.01 31.1 1.47 43.4 0.99
262144 33.0 33.4 1.00 29.2 1.13 33.8 0.97
524288 30.1 30.5 1.00 28.8 1.04 30.3 0.99
1000000 29.1 29.1 1.05 28.4 1.02 29.3 1.00
1048576 28.2 28.6 1.03 28.2 1.00 28.6 0.98
2097152 26.9 26.5 1.06 27.2 0.99 27.2 0.99
4194304 19.0 18.9 1.00 16.1 1.18 18.6 1.02
8388608 13.1 13.1 1.01 12.0 1.09 12.6 1.00
16777216 10.4 10.5 1.01 9.4 1.11 9.8 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 1.0 0.99 0.9 1.09 0.5 2.03
3 1.4 1.4 1.01 1.3 1.10 0.7 2.08
4 3.1 1.8 1.72 1.7 1.78 1.0 3.13
6 2.9 2.5 1.14 2.5 1.17 1.4 2.05
8 6.2 3.2 1.96 3.4 1.82 1.9 3.27
12 9.3 4.0 2.32 4.5 2.06 2.8 3.30
16 12.4 7.2 1.72 5.8 2.13 3.8 3.30
24 18.7 7.8 2.38 7.5 2.50 5.5 3.38
32 21.6 12.3 1.74 8.8 2.45 7.2 2.98
48 26.6 15.5 1.71 10.5 2.53 10.3 2.59
64 29.4 15.4 1.85 11.6 2.54 12.9 2.29
96 35.4 21.2 1.66 13.0 2.73 16.1 2.19
100 37.3 19.9 1.89 13.1 2.84 15.9 2.16
128 38.0 22.9 1.66 13.8 2.75 18.5 2.05
192 38.8 25.2 1.54 14.7 2.63 21.7 1.79
256 39.2 26.8 1.47 15.3 2.57 23.2 1.65
384 39.4 27.8 1.42 15.8 2.51 25.3 1.56
512 39.7 28.8 1.34 16.1 2.47 27.7 1.44
768 39.8 30.0 1.33 16.3 2.43 29.7 1.34
1000 40.0 29.8 1.34 16.5 2.42 30.8 1.30
1001 39.8 29.9 1.27 16.5 2.41 30.4 1.31
1024 40.0 30.3 1.32 16.5 2.39 30.5 1.31
1536 38.4 30.9 1.24 16.7 2.30 31.6 1.22
2048 38.9 31.4 1.24 16.8 2.32 32.0 1.21
3072 36.6 29.9 1.23 16.6 2.21 29.5 1.24
4096 31.0 29.1 1.07 16.5 1.88 27.0 1.11
6144 31.4 29.8 1.05 16.7 1.89 29.1 1.08
8192 31.4 30.8 1.02 16.7 1.83 29.9 1.05
10000 31.6 30.6 1.03 16.7 1.89 30.0 1.06
12288 31.5 31.0 1.02 16.7 1.88 30.3 1.05
16384 31.5 30.9 1.02 16.7 1.86 30.5 1.03
32768 31.0 31.1 0.99 16.7 1.86 31.2 1.00
65536 21.4 21.4 1.00 16.4 1.34 21.2 1.01
100000 17.7 17.7 1.00 15.7 1.13 17.7 1.00
131072 16.6 16.8 1.00 15.0 1.11 16.6 1.00
262144 15.0 15.2 1.01 14.7 1.02 15.1 0.99
524288 14.2 14.3 1.03 14.2 1.00 14.1 1.01
1000000 13.8 13.7 1.03 13.5 1.02 13.8 1.00
1048576 13.7 13.6 1.05 13.3 1.00 13.1 1.05
2097152 9.7 9.6 1.04 8.4 1.16 9.5 1.01
4194304 6.4 6.6 0.96 5.9 1.09 6.2 1.01
8388608 5.2 5.3 0.98 4.8 1.09 4.9 1.02
16777216 4.2 4.1 1.01 3.3 1.21 4.3 1.03
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 7.7 1.5 5.30 0.9 8.50 0.6 11.97
3 8.4 2.1 4.04 1.3 6.53 0.9 8.95
4 8.1 2.6 3.13 2.0 4.04 1.2 6.63
6 8.6 3.7 2.29 2.7 3.21 1.7 4.95
8 20.1 5.3 3.83 3.9 5.11 2.6 7.85
12 20.2 6.3 3.21 5.6 3.61 3.5 5.71
16 38.0 7.9 4.84 7.5 5.04 5.2 7.34
24 56.7 8.7 6.51 10.9 5.25 7.3 7.73
32 53.2 15.6 3.41 13.3 4.03 9.7 5.42
48 64.2 17.0 3.83 17.8 3.59 14.6 4.40
64 72.1 26.5 2.73 20.5 3.49 18.4 3.92
96 72.1 32.8 2.20 24.7 2.91 26.6 2.71
100 55.7 31.9 1.74 23.2 2.40 26.0 2.15
128 68.5 40.5 1.69 27.5 2.49 34.2 2.01
192 76.7 52.1 1.47 30.8 2.49 45.8 1.68
256 74.6 54.6 1.36 32.5 2.30 51.5 1.45
384 76.7 62.4 1.22 34.9 2.20 59.4 1.29
512 78.6 64.7 1.22 36.2 2.17 63.3 1.24
768 78.6 69.7 1.13 37.4 2.10 68.5 1.15
1000 79.8 73.8 1.08 38.2 2.08 71.1 1.12
1001 79.3 72.7 1.09 38.0 2.09 70.8 1.12
1024 78.8 71.2 1.11 37.5 2.10 71.2 1.11
1536 79.4 74.5 1.07 38.8 2.05 73.8 1.07
2048 80.0 76.2 1.05 39.2 2.04 76.0 1.05
3072 80.4 78.0 1.03 39.5 2.04 75.9 1.06
4096 80.0 78.1 1.02 39.6 2.02 77.4 1.04
6144 76.3 69.1 1.10 38.5 1.97 75.8 1.01
8192 59.7 62.2 0.98 39.0 1.53 56.8 1.05
10000 60.5 65.2 0.93 39.2 1.61 58.3 1.02
12288 62.4 65.0 0.96 39.5 1.61 58.7 1.02
16384 61.5 70.2 0.88 39.6 1.62 59.2 1.01
32768 62.2 71.8 0.87 40.1 1.62 60.3 1.00
65536 73.6 73.8 1.00 40.2 1.79 69.6 1.08
100000 58.3 58.0 0.96 39.2 1.50 53.9 1.08
131072 43.9 43.8 1.00 37.1 1.18 47.7 1.01
262144 33.6 33.8 1.00 31.6 1.07 33.5 0.99
524288 30.6 30.5 1.00 30.3 1.02 30.6 1.00
1000000 30.3 30.0 0.99 29.1 1.06 29.7 1.02
1048576 29.1 28.8 1.00 28.7 1.03 28.7 1.01
2097152 28.1 27.5 1.00 26.2 1.07 27.8 1.02
4194304 22.9 22.7 0.97 18.2 1.26 23.8 0.97
8388608 13.3 13.0 1.00 12.4 1.09 13.5 0.98
16777216 10.7 10.8 0.98 10.4 1.03 10.8 1.00
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.7 1.0 7.65 1.0 7.42 0.5 15.99
3 8.5 1.5 5.66 1.5 5.77 0.7 11.73
4 16.0 2.0 8.08 1.9 8.49 0.9 16.79
6 15.2 2.8 5.47 2.6 5.86 1.4 10.65
8 26.5 3.9 6.83 3.9 6.79 1.8 14.42
12 29.9 5.5 5.45 5.3 5.60 2.9 10.41
16 26.9 6.8 3.94 7.1 3.81 3.7 7.29
24 32.4 8.6 3.74 9.2 3.53 5.6 5.75
32 34.8 11.7 3.00 10.5 3.32 7.0 4.93
48 36.4 15.4 2.36 12.6 2.88 10.2 3.56
64 35.5 18.1 1.96 13.4 2.65 12.9 2.75
96 37.1 22.3 1.66 15.6 2.38 16.7 2.22
100 36.0 21.1 1.71 15.7 2.28 16.9 2.14
128 38.8 25.0 1.55 16.1 2.41 19.8 1.96
192 39.1 30.2 1.29 17.1 2.29 24.3 1.61
256 38.9 31.7 1.23 18.2 2.14 26.8 1.45
384 39.6 34.3 1.15 18.8 2.11 30.3 1.31
512 39.4 34.5 1.15 19.0 2.04 32.4 1.22
768 40.0 36.7 1.09 19.3 2.08 34.5 1.16
1000 40.2 37.7 1.06 19.6 2.05 35.7 1.12
1001 39.8 37.5 1.06 19.5 2.04 35.6 1.12
1024 40.1 36.5 1.10 19.6 2.05 35.9 1.11
1536 40.1 38.5 1.04 19.8 2.02 37.3 1.08
2048 39.6 39.1 1.01 19.9 1.99 38.1 1.04
3072 38.3 35.0 1.10 19.2 1.98 32.1 1.20
4096 30.0 31.9 0.94 19.2 1.68 26.9 1.11
6144 30.4 32.9 0.92 19.7 1.62 30.2 0.99
8192 30.7 35.1 0.87 19.9 1.62 31.1 0.96
10000 30.7 32.7 0.94 19.9 1.62 28.9 1.04
12288 30.8 35.2 0.87 20.0 1.61 35.3 0.85
16384 31.1 35.6 0.87 20.1 1.62 37.4 0.81
32768 36.9 36.4 1.01 20.0 1.82 37.1 1.01
65536 24.1 21.8 1.10 18.1 1.25 23.8 1.02
100000 18.0 18.1 0.99 16.8 1.06 18.1 0.99
131072 16.7 16.7 1.00 15.7 1.08 16.9 0.99
262144 15.2 15.1 1.00 15.3 1.00 15.1 1.00
524288 14.6 14.4 0.99 14.5 1.03 14.7 0.99
1000000 14.6 14.4 0.99 13.9 1.06 14.5 1.01
1048576 14.0 14.0 1.01 13.6 1.05 14.2 0.99
2097152 11.4 11.4 0.98 9.1 1.27 11.6 0.99
4194304 6.7 6.6 1.01 6.2 1.09 6.6 1.03
8388608 5.3 5.3 1.00 5.1 1.04 5.4 1.01
16777216 4.8 4.8 1.00 4.7 1.03 4.7 0.99
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.0 0.4 2.24 0.5 2.07 0.2 4.50
3x3 2.2 0.6 3.45 0.9 2.35 0.5 4.76
4x4 3.8 1.6 2.39 1.7 2.16 0.8 4.86
6x6 7.9 2.8 2.78 3.3 2.42 1.8 4.27
8x8 14.8 5.6 2.63 6.3 2.33 3.1 4.79
12x12 23.2 10.6 2.20 11.5 2.02 6.2 3.74
16x16 37.7 18.7 2.02 17.2 2.24 11.5 3.21
24x24 61.4 33.0 1.84 28.6 2.15 19.2 3.28
32x32 82.4 46.9 1.75 37.4 2.22 30.0 2.74
48x48 81.9 68.4 1.20 49.1 1.67 47.1 1.75
64x64 123.0 83.8 1.47 55.6 2.19 58.9 2.12
96x96 118.4 101.5 1.16 59.8 1.98 75.4 1.57
100x100 103.3 84.1 1.24 60.3 1.71 64.4 1.60
128x128 89.1 75.6 1.18 58.2 1.54 73.2 1.18
192x192 79.4 79.2 1.00 60.8 1.27 77.0 1.03
200x200 76.3 78.9 0.97 61.9 1.23 77.6 0.98
256x256 79.4 79.5 1.00 61.2 1.30 78.2 1.01
257x257 70.2 69.1 1.01 51.4 1.37 67.9 1.03
384x384 79.6 77.1 1.00 61.4 1.30 78.9 1.01
500x500 70.1 67.1 1.02 63.4 1.11 66.7 1.05
512x512 68.9 71.3 0.93 60.5 1.23 71.6 0.96
768x768 57.3 57.5 1.11 48.7 1.18 57.1 1.00
1000x1000 53.4 63.9 0.84 42.9 1.23 53.6 1.11
1001x1001 46.5 59.4 0.81 43.6 1.04 50.3 0.93
1024x1024 42.4 47.5 0.90 45.1 0.94 51.7 0.79
1536x1536 65.3 63.5 1.03 57.5 1.14 57.8 1.06
2048x2048 39.2 58.8 0.68 47.8 0.78 48.7 0.81
3072x3072 18.4 26.3 0.68 17.5 1.05 23.2 0.80
4096x4096 13.0 18.6 0.69 14.1 0.92 19.7 0.66
4097x4097 12.2 17.7 0.69 13.0 0.94 18.6 0.64
8x10000 46.6 40.8 1.14 24.8 1.85 13.9 3.41
100x10000 51.0 59.7 0.85 50.4 1.01 44.3 1.15
1000x10000 20.0 27.8 0.73 16.5 1.20 22.6 0.88
4000x10000 16.4 19.7 0.83 15.1 1.09 17.3 0.97
10000x8 71.5 114.9 0.62 68.4 1.04 79.2 0.90
10000x100 55.8 53.6 1.06 46.9 1.19 53.4 1.04
10000x1000 20.4 26.5 0.77 19.7 1.04 26.7 0.74
10000x4000 16.7 19.2 0.85 16.0 1.04 18.5 0.92
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.0 0.4 2.22 0.5 2.12 0.7 1.53
3x3 2.1 0.9 2.31 0.9 2.29 1.3 1.59
4x4 4.4 1.5 2.87 1.7 2.51 2.0 2.14
6x6 7.1 2.8 2.47 3.2 2.24 3.3 2.12
8x8 12.7 5.5 2.32 5.7 2.12 5.8 2.20
12x12 21.4 10.4 2.05 9.5 2.31 10.1 2.11
16x16 31.7 15.7 1.97 14.2 2.23 14.7 2.17
24x24 39.3 25.4 1.54 20.6 1.91 24.0 1.63
32x32 55.4 32.7 1.69 24.7 2.15 30.7 1.81
48x48 58.7 40.2 1.46 28.3 2.08 41.0 1.44
64x64 66.0 45.8 1.45 30.2 2.17 43.4 1.52
96x96 36.6 38.2 0.96 29.9 1.22 37.0 1.07
100x100 37.6 38.5 0.98 30.4 1.24 36.8 1.03
128x128 39.7 39.1 1.02 30.6 1.30 38.6 1.03
192x192 39.8 39.3 1.01 31.3 1.26 39.0 1.02
200x200 38.8 39.3 0.99 31.3 1.24 39.0 1.02
256x256 39.4 39.0 0.98 30.9 1.27 39.3 1.02
257x257 37.2 34.4 1.02 27.0 1.38 36.4 1.02
384x384 33.5 36.8 0.88 28.2 1.19 34.6 1.01
500x500 26.3 29.4 0.89 24.7 1.06 27.9 1.15
512x512 19.4 28.3 0.68 23.2 0.83 26.7 0.80
768x768 32.6 29.9 1.10 28.5 1.14 27.3 1.18
1000x1000 32.6 28.1 1.18 28.8 1.13 32.0 0.88
1001x1001 26.1 31.4 0.83 26.5 0.99 30.9 0.84
1024x1024 20.8 26.9 0.77 25.2 0.70 30.7 0.71
1536x1536 18.5 21.8 0.85 19.0 0.93 21.5 0.87
2048x2048 10.4 10.6 0.94 9.9 1.06 13.0 0.80
3072x3072 5.9 8.0 0.74 6.8 0.87 8.9 0.67
4096x4096 5.8 7.5 0.77 6.0 0.99 7.5 0.76
4097x4097 5.0 7.7 0.65 5.9 0.84 7.3 0.68
8x10000 31.2 24.1 1.28 21.8 1.44 15.6 2.01
100x10000 27.7 29.5 1.04 21.6 1.28 25.8 1.07
1000x10000 8.9 8.0 1.11 7.8 1.14 9.9 0.91
4000x10000 8.3 7.4 1.13 7.6 1.08 9.1 0.92
10000x8 35.4 39.5 0.89 33.9 1.05 61.2 0.58
10000x100 29.7 25.7 1.15 24.5 1.22 26.7 1.05
10000x1000 6.8 8.4 0.82 8.9 0.75 11.1 0.62
10000x4000 6.1 7.3 0.83 7.9 0.75 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.4 4.72 0.4 4.90 0.0 60.38
3x3x3 5.5 1.3 4.21 1.1 4.78 0.1 45.34
4x4x4 21.8 3.1 7.13 3.1 7.17 0.3 75.63
6x6x6 15.6 6.9 2.26 7.1 2.19 1.0 15.96
8x8x8 23.1 15.9 1.45 13.3 1.76 2.2 10.51
12x12x12 34.8 40.2 0.87 30.7 1.13 6.8 5.21
16x16x16 83.5 61.4 1.36 61.2 1.37 15.8 5.30
24x24x24 117.0 95.9 1.22 91.0 1.29 41.3 2.83
32x32x32 120.0 107.0 1.12 110.6 1.09 73.0 1.64
48x48x48 138.8 126.4 1.10 122.0 1.14 118.0 1.18
64x64x64 136.9 133.5 1.03 125.8 1.09 135.8 1.01
96x96x96 144.8 141.2 1.03 129.3 1.12 150.1 0.97
100x100x100 136.6 135.5 1.01 119.3 1.14 140.8 0.97
128x128x128 144.9 142.4 1.01 130.0 1.12 152.2 0.95
160x160x160 147.6 147.2 1.00 132.2 1.11 156.6 0.95
192x192x192 150.2 149.2 1.01 132.0 1.14 156.5 0.96
200x200x200 149.2 148.4 1.00 130.2 1.15 153.1 0.97
224x224x224 149.6 149.7 1.00 134.5 1.12 154.8 0.96
256x256x256 149.5 149.1 1.00 133.3 1.12 152.9 0.98
257x257x257 146.7 146.1 1.00 124.6 1.17 147.6 1.00
288x288x288 151.2 152.2 0.99 134.8 1.12 154.4 0.98
320x320x320 150.7 152.6 0.99 134.5 1.12 153.9 0.98
384x384x384 151.2 152.4 0.99 134.9 1.12 155.5 0.97
448x448x448 152.2 153.6 0.99 136.0 1.12 156.0 0.97
500x500x500 150.7 152.7 0.99 133.5 1.13 154.4 0.98
512x512x512 151.3 154.2 0.98 135.3 1.11 151.7 1.00
768x768x768 152.2 156.3 0.97 135.9 1.12 154.8 0.99
1000x1000x1000 152.5 156.0 0.98 134.7 1.12 152.4 1.00
1001x1001x1001 150.9 153.7 0.99 132.5 1.14 152.0 0.99
1024x1024x1024 150.5 153.5 0.98 133.9 1.12 153.3 0.98
1536x1536x1536 150.0 153.7 0.98 133.7 1.12 153.4 0.98
2048x2048x2048 147.6 152.6 0.97 132.3 1.11 150.7 0.98
3072x3072x3072 150.3 152.1 0.98 130.6 1.15 153.6 0.99
4096x4096x4096 150.3 154.3 0.97 131.3 1.14 150.5 1.00
4097x4097x4097 150.6 153.6 0.98 122.9 1.23 150.9 1.00
64x64x1024 135.5 132.1 1.03 123.5 1.09 156.6 0.87
64x1024x64 142.1 139.5 1.02 130.9 1.08 152.8 0.93
256x256x1024 148.9 150.0 0.98 133.2 1.12 153.3 0.97
1024x64x64 140.7 145.2 0.97 120.7 1.17 88.3 1.57
1024x256x256 150.1 152.8 0.99 133.0 1.13 149.5 0.99
4096x96x96 139.9 149.9 0.85 117.6 1.19 45.3 3.09
4096x128x128 141.7 146.8 0.89 124.2 1.16 43.8 3.24
4096x144x144 142.8 150.2 0.87 122.5 1.19 47.2 3.03
4096x160x160 144.3 153.3 0.87 123.3 1.18 48.5 2.98
4096x176x176 144.5 153.8 0.89 123.8 1.18 46.4 3.11
8192x128x128 127.6 145.8 0.88 115.3 1.24 17.5 7.20
10000x8x8 109.5 110.2 1.00 109.6 1.00 82.9 1.30
10000x100x100 146.7 149.4 0.98 131.2 1.12 153.6 0.96
10000x1000x1000 147.9 152.5 0.96 125.3 1.18 152.6 0.97
10000x4000x4000 150.0 156.0 0.96 128.4 1.17 154.5 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.0 0.5 3.77 0.4 4.69 0.3 6.81
3x3x3 5.5 1.5 3.71 1.2 4.60 1.0 5.25
4x4x4 19.4 3.6 5.45 3.0 6.55 2.3 8.41
6x6x6 15.4 8.3 1.84 7.1 2.17 7.7 1.99
8x8x8 19.8 17.1 1.16 11.4 1.73 16.3 1.22
12x12x12 39.6 29.4 1.35 25.8 1.53 34.6 1.13
16x16x16 46.6 42.2 1.10 22.6 2.07 50.4 0.93
24x24x24 61.3 54.8 1.13 53.0 1.16 66.1 0.92
32x32x32 64.6 57.8 1.12 38.1 1.68 67.5 0.96
48x48x48 68.2 65.7 1.04 66.4 1.03 73.7 0.93
64x64x64 68.9 66.4 1.04 54.4 1.27 75.4 0.91
96x96x96 72.5 71.7 1.01 73.0 0.99 78.0 0.93
100x100x100 71.1 69.5 1.03 62.5 1.14 73.2 0.97
128x128x128 73.0 67.3 1.09 62.9 1.15 77.7 0.94
160x160x160 73.1 72.9 1.01 66.9 1.09 77.6 0.94
192x192x192 73.6 74.3 0.99 75.6 0.97 78.4 0.94
200x200x200 73.9 74.2 0.99 67.9 1.09 77.4 0.96
224x224x224 74.0 74.8 0.99 68.4 1.09 78.3 0.94
256x256x256 73.9 71.4 1.04 70.2 1.05 76.8 0.96
257x257x257 73.2 71.7 1.02 67.5 1.08 75.5 0.97
288x288x288 75.0 75.8 0.99 76.5 0.98 78.6 0.95
320x320x320 74.9 75.9 0.99 71.9 1.04 78.0 0.96
384x384x384 75.4 75.5 1.00 77.4 0.98 77.1 0.98
448x448x448 75.1 75.6 1.00 74.0 1.01 75.3 1.00
500x500x500 74.9 74.8 1.00 72.4 1.04 75.8 1.00
512x512x512 75.0 73.6 1.02 65.8 1.14 76.0 0.99
768x768x768 74.4 75.1 0.99 75.0 0.99 75.8 0.98
1000x1000x1000 74.2 75.0 0.99 73.1 1.02 76.7 0.97
1001x1001x1001 74.1 74.0 1.00 71.9 1.03 75.6 0.99
1024x1024x1024 73.0 73.9 0.99 69.7 1.05 75.2 0.98
1536x1536x1536 72.9 74.6 0.98 74.7 0.98 75.9 0.96
2048x2048x2048 73.5 74.8 0.98 69.2 1.06 75.4 0.98
3072x3072x3072 74.0 76.0 0.98 74.8 0.99 75.8 0.98
4096x4096x4096 73.0 76.0 0.96 71.4 1.03 72.2 1.01
4097x4097x4097 73.4 75.3 0.98 72.8 1.00 75.3 0.97
64x64x1024 67.4 61.8 1.09 53.7 1.25 76.4 0.88
64x1024x64 72.0 71.2 1.01 56.5 1.27 76.8 0.94
256x256x1024 74.2 70.9 1.05 69.9 1.06 74.2 1.00
1024x64x64 64.6 64.5 1.00 64.3 1.06 66.5 0.97
1024x256x256 74.4 71.8 1.04 67.8 1.10 75.4 0.98
4096x96x96 59.9 73.4 0.82 72.3 0.97 64.1 0.93
4096x128x128 63.9 67.7 0.94 72.4 0.98 31.0 2.05
4096x144x144 65.2 75.4 0.86 72.4 0.98 33.4 1.95
4096x160x160 65.9 74.5 0.88 72.5 0.99 33.8 1.91
4096x176x176 66.6 74.3 0.90 73.0 0.99 36.0 1.83
8192x128x128 62.0 68.3 0.90 70.6 0.98 38.3 1.62
10000x8x8 51.1 44.3 1.16 50.6 1.01 60.3 0.84
10000x100x100 68.6 69.9 0.98 71.8 0.98 73.1 0.94
10000x1000x1000 72.0 76.1 0.95 75.4 0.94 75.8 0.95
10000x4000x4000 72.9 75.6 0.96 74.7 0.97 77.0 0.95
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.14 0.2 2.00 0.2 2.71
3x3 1.1 0.7 1.45 0.6 1.88 0.5 2.38
4x4 1.9 2.5 0.75 1.2 1.48 1.1 1.69
6x6 3.8 3.7 1.03 2.6 1.45 2.8 1.38
8x8 24.7 9.7 2.56 4.8 5.31 6.4 3.79
12x12 16.4 22.0 0.74 7.4 2.23 15.2 1.08
16x16 68.2 30.0 2.28 8.8 7.73 26.3 2.57
24x24 88.3 52.1 1.67 10.5 8.46 49.2 1.79
32x32 102.8 57.8 1.77 11.6 8.86 61.2 1.68
48x48 115.7 82.8 1.39 12.6 9.21 83.8 1.38
64x64 123.8 91.5 1.35 13.0 9.43 96.6 1.29
96x96 128.7 109.3 1.18 21.0 6.15 111.9 1.15
100x100 112.1 101.4 1.11 21.1 5.24 100.6 1.12
128x128 132.5 113.8 1.17 23.5 5.63 118.4 1.12
192x192 134.7 130.1 1.03 32.2 4.18 132.0 1.02
200x200 136.5 127.0 1.07 32.9 4.15 127.9 1.07
256x256 136.7 130.4 1.05 37.9 3.60 136.6 1.01
257x257 131.6 125.9 1.05 37.4 3.51 124.5 1.06
384x384 140.4 140.5 1.00 50.9 2.74 141.7 0.99
500x500 139.3 141.6 0.98 59.9 2.33 140.0 0.99
512x512 138.6 142.7 0.97 50.9 2.72 138.7 1.00
768x768 145.5 149.1 0.97 72.2 2.02 147.3 0.99
1000x1000 147.4 150.6 0.98 83.2 1.77 148.0 0.99
1001x1001 146.3 147.2 0.99 81.3 1.77 147.2 0.99
1024x1024 134.0 148.2 0.90 51.2 2.62 142.1 0.95
1536x1536 144.2 148.1 0.97 86.3 1.67 145.3 0.99
2048x2048 137.0 147.0 0.93 71.8 1.91 141.2 0.97
3072x3072 135.9 146.6 0.93 82.2 1.63 137.9 0.99
4096x4096 137.5 143.2 0.96 87.4 1.57 133.9 1.03
4097x4097 138.5 145.4 0.95 95.9 1.45 139.1 0.99
64x4096 116.3 93.6 1.25 12.9 9.02 89.4 1.30
256x4096 132.7 133.9 0.99 37.5 3.59 136.0 0.98
1024x8 66.5 57.6 1.16 33.1 2.01 18.1 2.77
1024x64 122.3 128.7 0.95 50.5 2.44 85.3 1.43
1024x256 133.0 146.2 0.92 51.1 2.60 117.5 1.11
1024x4096 127.8 140.3 0.91 49.8 2.55 134.4 0.96
4096x8 34.2 48.5 0.72 34.4 0.98 15.4 2.23
4096x64 101.7 119.5 0.85 74.2 1.38 76.3 1.33
4096x256 131.5 141.6 0.85 88.4 1.49 122.0 1.08
4096x1024 141.5 151.3 0.93 92.7 1.53 142.7 1.00
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.5 0.4 1.07 0.2 2.33 0.2 2.92
3x3 1.1 0.8 1.36 0.5 2.05 0.4 2.46
4x4 4.4 2.0 2.21 1.1 4.11 1.0 4.42
6x6 5.6 3.4 1.64 2.9 1.95 2.7 2.04
8x8 17.9 6.4 2.79 5.4 3.37 5.6 3.16
12x12 29.9 9.1 3.27 10.3 2.91 13.9 2.14
16x16 38.3 13.1 2.95 13.9 2.72 22.5 1.70
24x24 46.3 18.6 2.49 18.0 2.57 34.7 1.34
32x32 52.9 22.9 2.31 20.5 2.58 41.9 1.26
48x48 59.7 29.5 1.99 23.8 2.51 53.6 1.11
64x64 61.8 33.6 1.84 25.8 2.41 58.7 1.05
96x96 65.0 40.7 1.60 28.7 2.26 63.6 1.02
100x100 64.7 40.7 1.59 28.7 2.26 63.8 1.01
128x128 66.7 44.4 1.50 29.2 2.28 66.9 1.00
192x192 66.9 49.5 1.35 35.7 1.88 69.7 0.97
200x200 66.7 50.4 1.32 38.5 1.73 69.7 0.96
256x256 65.5 51.3 1.28 37.2 1.75 69.4 0.94
257x257 66.1 51.1 1.30 35.8 1.85 67.6 0.97
384x384 69.3 59.1 1.17 44.3 1.56 71.5 0.97
500x500 71.6 61.5 1.17 50.3 1.41 71.5 1.00
512x512 61.2 60.8 1.01 42.4 1.44 65.2 0.94
768x768 70.7 65.1 1.09 51.5 1.39 73.2 0.96
1000x1000 71.1 66.3 1.07 58.2 1.22 73.7 0.96
1001x1001 71.0 65.9 1.07 56.8 1.27 72.8 0.98
1024x1024 66.4 65.5 1.01 49.1 1.36 72.1 0.92
1536x1536 65.4 67.8 0.97 54.0 1.21 70.4 0.93
2048x2048 66.3 67.2 0.99 55.7 1.18 68.1 0.97
3072x3072 65.9 68.3 0.97 58.4 1.13 70.0 0.95
4096x4096 64.4 69.2 0.92 60.1 1.10 69.1 0.93
4097x4097 67.9 69.6 0.97 61.8 1.10 72.2 0.94
64x4096 58.0 32.8 1.77 25.4 2.30 53.5 1.07
256x4096 62.7 49.3 1.28 37.0 1.70 63.3 0.99
1024x8 35.2 20.7 1.69 27.5 1.28 20.6 1.72
1024x64 63.4 50.2 1.27 49.2 1.29 59.8 1.05
1024x256 67.1 63.5 1.06 52.0 1.29 63.6 1.04
1024x4096 60.1 62.2 0.97 49.4 1.21 40.2 1.49
4096x8 14.7 13.2 1.11 15.3 0.96 10.2 1.47
4096x64 48.8 47.6 1.02 47.1 1.05 41.9 1.16
4096x256 65.2 66.9 0.97 61.4 1.06 64.1 1.02
4096x1024 65.9 69.6 0.95 61.6 1.08 69.3 0.94
TRMM 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.2 0.5 0.37 0.1 1.64 0.0 25.68
3x3 0.5 1.2 0.40 0.3 1.65 0.0 22.97
4x4 1.1 2.7 0.40 0.7 1.64 0.0 24.58
6x6 2.5 5.4 0.46 1.9 1.29 0.1 18.04
8x8 6.7 9.8 0.68 3.7 1.84 0.3 22.34
12x12 12.8 22.3 0.57 8.2 1.56 0.9 13.74
16x16 27.6 34.3 0.81 12.8 2.13 2.2 12.81
24x24 46.4 55.7 0.83 20.4 2.28 6.0 7.76
32x32 53.3 64.3 0.83 26.0 2.05 12.7 4.21
48x48 64.6 85.9 0.76 32.2 2.01 36.2 1.78
64x64 79.2 96.0 0.82 37.1 2.11 50.7 1.56
96x96 93.0 112.8 0.82 42.9 2.17 92.6 1.00
100x100 87.0 105.7 0.82 43.4 2.01 71.5 1.21
128x128 105.1 117.8 0.89 45.2 2.32 103.2 1.02
192x192 115.7 133.3 0.87 64.2 1.80 128.5 0.90
200x200 116.4 129.4 0.90 65.3 1.78 111.8 1.04
256x256 123.0 135.0 0.91 68.1 1.79 128.3 0.96
257x257 120.8 129.6 0.93 67.6 1.78 115.3 1.05
384x384 130.5 142.2 0.92 81.4 1.60 138.9 0.94
500x500 133.8 144.1 0.93 90.6 1.47 136.6 0.98
512x512 133.7 145.8 0.92 87.9 1.53 140.0 0.95
768x768 139.3 150.1 0.93 100.9 1.37 148.7 0.94
1000x1000 143.0 150.7 0.94 108.1 1.32 147.7 0.97
1001x1001 141.5 151.1 0.94 106.6 1.32 147.0 0.96
1024x1024 140.4 150.1 0.94 95.0 1.48 146.7 0.95
1536x1536 139.7 150.5 0.93 108.7 1.29 147.1 0.95
2048x2048 138.1 148.9 0.93 105.2 1.31 145.2 0.95
3072x3072 133.5 147.2 0.91 109.5 1.20 146.3 0.91
4096x4096 132.1 145.7 0.90 111.5 1.18 140.4 0.94
4097x4097 137.5 147.0 0.94 115.2 1.17 143.6 0.96
64x4096 80.1 100.7 0.79 38.4 2.10 91.8 0.85
256x4096 118.7 137.3 0.88 67.8 1.75 136.9 0.86
1024x8 63.1 58.9 1.07 37.1 1.42 44.1 1.43
1024x64 123.3 130.5 0.97 86.6 1.37 118.0 1.05
1024x256 140.4 146.9 0.96 88.4 1.58 141.8 0.99
1024x4096 127.3 144.5 0.87 91.5 1.39 140.0 0.91
4096x8 33.8 46.1 0.73 33.4 0.98 27.7 1.22
4096x64 100.5 119.9 0.85 89.4 1.12 97.1 1.03
4096x256 131.9 145.2 0.91 110.2 1.18 133.9 0.99
4096x1024 142.6 151.1 0.95 117.8 1.21 142.3 0.99
TRMM 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.2 0.4 0.40 0.1 1.68 0.0 26.05
3x3 0.5 1.1 0.42 0.3 1.70 0.0 23.76
4x4 1.2 2.5 0.46 0.7 1.69 0.0 26.22
6x6 2.6 5.0 0.52 1.9 1.35 0.1 19.01
8x8 6.3 10.0 0.63 3.7 1.69 0.3 20.07
12x12 13.7 17.5 0.78 8.1 1.70 0.9 14.34
16x16 18.8 24.5 0.77 12.1 1.55 2.1 9.09
24x24 26.7 33.1 0.81 17.4 1.54 6.7 3.99
32x32 34.4 39.1 0.88 20.1 1.70 11.2 3.08
48x48 41.7 45.7 0.91 23.6 1.77 28.1 1.48
64x64 46.1 49.2 0.93 25.5 1.81 36.1 1.28
96x96 53.6 54.8 0.98 28.4 1.88 53.3 1.01
100x100 54.1 54.4 1.00 28.9 1.87 46.7 1.16
128x128 59.0 57.2 1.03 29.7 1.99 57.5 1.03
192x192 63.7 59.1 1.07 36.8 1.73 66.0 0.97
200x200 63.6 60.2 1.06 37.8 1.68 64.5 0.98
256x256 63.8 59.3 1.08 37.9 1.68 66.4 0.96
257x257 63.8 59.1 1.08 37.4 1.71 63.7 1.00
384x384 67.9 65.7 1.03 46.3 1.47 71.1 0.95
500x500 69.4 67.6 1.02 50.3 1.38 72.0 0.97
512x512 68.7 66.8 1.03 43.2 1.59 72.2 0.93
768x768 69.9 69.3 1.01 53.9 1.30 74.1 0.94
1000x1000 69.3 69.9 0.99 57.8 1.20 73.7 0.93
1001x1001 69.0 70.1 0.98 55.7 1.25 72.9 0.94
1024x1024 68.4 69.4 0.98 47.3 1.45 72.9 0.94
1536x1536 65.8 69.7 0.94 49.5 1.34 72.2 0.91
2048x2048 62.7 69.5 0.88 47.9 1.35 70.2 0.89
3072x3072 64.0 69.6 0.92 47.6 1.35 70.4 0.90
4096x4096 62.3 71.0 0.88 44.1 1.43 68.1 0.90
4097x4097 66.6 70.2 0.95 55.8 1.19 72.6 0.92
64x4096 40.5 49.7 0.80 26.1 1.55 50.9 0.81
256x4096 57.1 57.2 0.99 37.5 1.52 69.5 0.84
1024x8 34.7 21.6 1.58 26.7 1.30 21.2 1.64
1024x64 65.9 53.2 1.24 47.0 1.40 59.3 1.11
1024x256 70.5 66.8 1.06 49.3 1.42 70.9 0.99
1024x4096 54.7 65.5 0.84 44.6 1.32 68.6 0.78
4096x8 14.4 23.0 0.63 13.9 1.04 13.1 1.10
4096x64 49.0 54.8 0.89 41.7 1.17 49.1 1.00
4096x256 65.1 69.3 0.94 51.8 1.27 65.9 0.98
4096x1024 66.1 68.8 0.96 50.4 1.33 68.7 0.96
SYMM 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.7 0.65 0.3 1.41 0.0 42.43
3x3 1.1 1.8 0.61 0.7 1.32 0.0 32.76
4x4 3.2 4.2 0.73 2.0 1.60 0.1 41.16
6x6 5.5 8.8 0.63 4.7 0.93 0.3 21.30
8x8 18.8 19.6 0.93 9.5 1.99 0.6 33.05
12x12 27.7 41.1 0.67 21.0 1.07 1.9 14.91
16x16 62.4 49.2 1.29 42.9 1.46 4.4 14.25
24x24 93.4 82.3 1.13 69.2 1.35 11.9 7.83
32x32 100.7 89.7 1.12 90.9 1.08 24.6 4.13
48x48 127.8 112.8 1.13 106.0 1.18 61.9 2.06
64x64 128.5 121.1 1.06 114.0 1.12 80.7 1.60
96x96 142.5 133.9 1.06 119.1 1.20 121.7 1.17
100x100 134.7 128.2 1.05 111.5 1.21 102.4 1.32
128x128 142.7 137.9 1.03 123.3 1.16 127.7 1.12
192x192 149.9 145.8 1.03 127.0 1.17 146.0 1.03
200x200 147.6 145.0 1.02 125.7 1.17 134.5 1.10
256x256 149.0 147.8 1.01 129.0 1.16 146.8 1.01
257x257 146.4 142.2 1.03 103.5 1.41 133.3 1.10
384x384 150.7 150.7 1.00 132.0 1.14 151.9 1.00
500x500 149.7 151.8 0.99 131.1 1.14 147.2 1.02
512x512 150.4 152.9 0.98 130.5 1.15 150.2 1.01
768x768 150.9 154.1 0.98 130.8 1.16 155.3 0.97
1000x1000 152.9 153.4 1.00 132.3 1.15 153.8 1.00
1001x1001 151.2 153.5 0.99 129.1 1.17 153.2 0.99
1024x1024 151.7 152.4 1.00 131.0 1.15 153.7 0.99
1536x1536 148.3 151.0 0.98 129.2 1.15 154.2 0.97
2048x2048 147.2 150.7 0.97 128.1 1.15 150.2 0.99
3072x3072 149.7 150.6 0.99 126.5 1.18 153.1 0.98
4096x4096 146.3 152.5 0.95 124.9 1.18 149.8 0.98
4097x4097 148.8 150.7 0.98 124.0 1.20 151.3 0.99
64x4096 137.3 137.4 0.99 126.9 1.08 133.4 1.04
256x4096 149.6 152.5 0.97 131.4 1.14 152.8 0.98
1024x8 70.7 51.1 1.38 57.9 1.22 43.5 1.17
1024x64 134.6 124.5 1.09 117.3 1.15 130.7 1.03
1024x256 149.5 147.4 1.01 129.8 1.15 149.7 1.00
1024x4096 146.5 146.9 0.98 128.6 1.14 151.8 0.96
4096x8 36.8 34.9 1.06 41.2 0.89 35.5 1.04
4096x64 105.4 101.6 1.04 100.2 1.05 108.1 0.99
4096x256 136.3 135.5 1.01 121.8 1.11 137.6 0.99
4096x1024 145.4 148.4 0.98 125.2 1.16 147.8 0.99
SYMM 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.5 0.6 0.79 0.3 1.95 0.0 50.66
3x3 1.1 1.7 0.65 0.7 1.51 0.0 33.14
4x4 3.5 4.2 0.83 1.9 1.78 0.1 44.00
6x6 6.3 9.4 0.67 4.7 1.34 0.3 23.66
8x8 16.8 18.4 0.92 8.5 1.97 0.6 27.57
12x12 34.3 26.5 1.29 20.1 1.71 1.9 17.97
16x16 40.7 38.1 1.07 19.9 1.87 4.2 9.66
24x24 55.6 49.7 1.12 45.7 1.22 12.7 4.37
32x32 59.8 54.2 1.10 35.6 1.70 20.3 2.93
48x48 66.7 62.3 1.07 61.5 1.09 42.4 1.57
64x64 67.7 64.2 1.05 52.1 1.30 50.8 1.34
96x96 72.2 69.4 1.04 69.8 1.04 65.5 1.10
100x100 70.6 68.0 1.04 60.4 1.17 60.6 1.16
128x128 72.2 71.1 1.02 61.4 1.17 66.9 1.08
192x192 74.0 74.0 1.00 73.5 1.00 73.4 1.01
200x200 73.3 73.1 1.00 66.3 1.11 72.1 1.02
256x256 73.7 73.7 1.00 68.2 1.08 73.6 1.00
257x257 72.4 72.0 1.00 60.8 1.20 69.5 1.04
384x384 75.0 75.6 0.99 67.8 1.11 75.5 0.99
500x500 75.4 75.4 1.01 71.4 1.06 74.9 1.00
512x512 74.4 74.9 1.00 67.8 1.10 75.7 0.98
768x768 75.2 75.3 0.98 69.5 1.08 77.2 0.98
1000x1000 74.6 75.0 1.00 70.9 1.05 76.3 0.98
1001x1001 74.2 74.2 1.00 69.8 1.06 75.6 0.98
1024x1024 73.2 73.2 1.00 65.7 1.12 75.7 0.96
1536x1536 72.5 73.7 0.98 62.7 1.15 76.1 0.96
2048x2048 71.5 74.7 0.96 61.2 1.17 75.4 0.95
3072x3072 70.8 75.2 0.94 59.5 1.18 76.3 0.93
4096x4096 68.6 75.4 0.91 60.1 1.14 72.2 0.96
4097x4097 69.2 74.9 0.92 63.7 1.09 75.4 0.93
64x4096 68.6 70.1 0.98 56.5 1.22 68.1 1.00
256x4096 70.0 74.5 0.94 64.8 1.08 76.0 0.93
1024x8 38.4 22.4 1.72 33.5 1.15 27.5 1.37
1024x64 68.4 52.9 1.29 55.4 1.23 65.2 1.04
1024x256 74.3 68.4 1.08 62.4 1.19 74.2 1.00
1024x4096 67.9 74.4 0.92 58.4 1.16 75.9 0.89
4096x8 15.6 15.4 1.01 21.4 0.72 17.1 0.91
4096x64 50.1 47.6 1.06 49.6 1.01 52.3 0.96
4096x256 66.0 65.7 1.01 60.2 1.10 67.0 0.99
4096x1024 72.1 73.6 0.98 61.6 1.18 72.2 1.00
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.09 0.0 8.02
3x3 0.5 0.9 0.58 0.4 1.13 0.1 6.84
4x4 1.2 1.8 0.64 1.0 1.13 0.2 7.29
6x6 1.9 4.2 0.44 2.3 0.80 0.5 3.79
8x8 6.8 10.0 0.68 4.5 1.52 1.0 6.55
12x12 13.5 19.3 0.70 11.2 1.21 3.1 4.37
16x16 27.1 36.7 0.74 19.3 1.41 7.1 3.84
24x24 44.7 62.8 0.71 33.4 1.35 18.4 2.41
32x32 55.2 77.8 0.70 45.8 1.21 36.0 1.54
48x48 78.2 98.5 0.79 59.4 1.32 69.0 1.13
64x64 88.8 107.9 0.82 75.1 1.19 92.3 0.96
96x96 105.1 115.9 0.91 81.4 1.29 117.3 0.90
100x100 98.7 111.0 0.89 60.2 1.64 108.6 0.91
128x128 106.6 120.1 0.89 83.4 1.27 110.5 0.96
192x192 126.2 130.2 0.97 95.8 1.32 130.6 0.97
200x200 125.8 131.3 0.96 81.4 1.54 138.1 0.91
256x256 126.4 117.1 1.08 94.7 1.33 114.8 1.10
257x257 127.4 129.0 0.99 105.6 1.21 130.5 0.97
384x384 134.7 142.4 0.95 102.8 1.31 114.0 1.18
500x500 135.8 142.9 0.95 89.6 1.52 145.0 0.93
512x512 135.9 134.4 1.01 99.9 1.36 135.4 1.00
768x768 142.9 149.1 0.96 113.8 1.26 145.0 0.99
1000x1000 144.4 149.8 0.96 106.5 1.36 146.9 0.99
1001x1001 142.6 148.9 0.95 106.0 1.35 146.7 0.98
1024x1024 131.9 149.6 0.88 94.3 1.40 136.8 0.96
1536x1536 143.4 149.5 0.96 115.9 1.24 147.3 0.97
2048x2048 136.3 150.9 0.90 106.6 1.28 143.6 0.95
3072x3072 141.4 149.5 0.94 110.9 1.27 147.1 0.96
4096x4096 143.8 150.6 0.95 59.2 2.43 142.7 1.01
4097x4097 145.8 150.8 0.96 125.5 1.17 146.3 1.00
64x4096 85.5 106.9 0.80 73.3 1.17 116.5 0.73
256x4096 124.1 133.5 0.93 94.2 1.32 115.8 1.07
1024x4096 126.6 147.1 0.86 92.0 1.38 134.0 0.94
4096x8 72.8 58.9 1.18 24.9 2.97 25.2 2.89
4096x64 141.7 127.8 1.11 90.0 1.57 74.3 1.91
4096x256 144.2 150.9 0.97 47.4 3.04 140.7 1.02
4096x1024 143.5 150.3 0.95 52.3 2.75 136.8 1.05
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.66 0.2 1.16 0.0 9.16
3x3 0.6 0.9 0.67 0.4 1.32 0.1 7.82
4x4 1.4 1.9 0.75 1.1 1.26 0.2 8.76
6x6 2.3 4.2 0.55 2.7 0.86 0.5 4.75
8x8 7.1 8.9 0.80 4.5 1.59 1.1 6.60
12x12 15.1 16.9 0.89 10.8 1.41 3.1 4.85
16x16 19.6 25.6 0.77 10.7 1.83 6.6 2.96
24x24 33.3 37.2 0.90 23.6 1.41 18.3 1.83
32x32 40.0 43.7 0.91 18.1 2.21 30.9 1.30
48x48 49.3 49.2 1.00 30.9 1.61 52.6 0.94
64x64 51.1 50.4 1.01 25.7 2.00 61.9 0.82
96x96 59.5 55.0 1.08 34.5 1.71 70.4 0.85
100x100 59.4 55.3 1.08 29.9 1.98 69.3 0.86
128x128 61.0 52.3 1.17 29.6 2.05 62.0 0.98
192x192 65.4 59.4 1.10 36.0 1.82 63.0 1.04
200x200 67.4 60.8 1.10 42.6 1.58 65.4 1.04
256x256 66.2 57.9 1.14 38.9 1.68 65.3 1.01
257x257 66.8 58.4 1.14 37.7 1.77 60.6 1.10
384x384 70.4 62.3 1.13 46.6 1.51 70.0 1.01
500x500 71.5 64.2 1.13 53.1 1.35 71.5 1.00
512x512 67.7 61.7 1.10 43.2 1.57 66.4 1.02
768x768 71.1 68.2 1.05 53.1 1.33 73.8 0.96
1000x1000 70.8 68.3 1.04 60.9 1.16 74.6 0.94
1001x1001 69.5 67.9 1.03 58.5 1.19 73.3 0.94
1024x1024 67.3 68.0 1.00 45.7 1.47 71.0 0.95
1536x1536 68.5 70.4 0.97 50.2 1.36 72.6 0.94
2048x2048 69.1 71.3 0.97 55.5 1.24 72.5 0.95
3072x3072 70.7 72.9 0.97 53.7 1.32 72.8 0.97
4096x4096 70.8 73.6 0.96 53.6 1.32 66.3 1.07
4097x4097 71.5 73.1 0.98 58.3 1.23 74.2 0.96
64x4096 50.3 47.4 1.05 26.6 1.89 60.8 0.83
256x4096 64.7 57.7 1.12 38.4 1.69 64.7 1.00
1024x4096 66.6 67.5 0.99 44.6 1.49 69.4 0.96
4096x8 31.5 32.1 0.97 31.7 0.99 12.6 2.51
4096x64 69.0 69.6 1.00 47.4 1.40 67.7 1.02
4096x256 71.6 73.8 0.97 41.5 1.67 71.8 1.00
4096x1024 71.1 73.5 0.97 56.4 1.26 70.6 1.00
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.38 0.3 0.70 0.1 1.72
3 0.5 0.4 1.18 1.1 0.43 0.2 2.44
4 0.6 0.6 0.94 2.0 0.29 0.3 2.32
6 0.9 1.2 0.76 2.1 0.43 0.4 2.15
8 1.5 2.0 0.75 2.7 0.57 0.7 2.28
12 2.9 3.4 0.85 3.9 0.75 1.2 2.38
16 5.2 4.9 1.01 4.8 1.07 1.9 2.80
24 10.2 8.7 1.19 5.7 1.78 3.4 2.98
32 14.9 12.0 1.25 7.3 2.06 5.2 2.81
48 24.0 23.2 1.03 9.3 2.57 8.9 2.75
64 28.8 36.2 0.80 10.2 2.77 12.6 2.28
96 41.4 51.7 0.80 11.1 3.66 24.2 1.71
100 37.4 47.1 0.80 11.3 3.27 24.5 1.53
128 53.7 64.8 0.83 11.6 4.61 35.2 1.52
192 72.6 87.3 0.83 55.0 1.32 58.4 1.24
200 74.6 79.7 0.93 53.9 1.38 58.6 1.28
256 90.1 101.2 0.89 59.4 1.51 75.6 1.21
257 82.1 95.1 0.86 60.0 1.37 69.2 1.19
384 107.6 114.2 0.94 73.4 1.46 99.4 1.08
500 108.6 108.9 1.00 81.8 1.32 104.8 1.04
512 107.6 117.1 0.92 74.4 1.44 95.0 1.14
768 123.4 132.7 0.93 78.7 1.57 126.2 0.98
1000 131.0 133.2 0.98 92.8 1.42 124.9 1.05
1001 128.5 130.7 0.98 88.4 1.46 113.1 1.14
1024 116.6 130.0 0.90 69.2 1.68 51.3 2.26
1536 131.9 138.4 0.96 95.7 1.38 106.8 1.23
2048 129.5 137.7 0.95 73.6 1.76 58.6 2.18
3072 130.4 139.2 0.94 96.1 1.36 66.7 1.94
4096 126.7 136.9 0.92 68.4 1.85 57.1 2.24
4097 128.6 136.5 0.94 100.8 1.28 79.6 1.62
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.3 0.1 1.78 0.3 0.82 0.1 2.64
3 0.4 0.3 1.21 0.8 0.51 0.2 2.08
4 0.6 0.6 0.94 1.4 0.41 0.3 1.76
6 0.9 1.1 0.84 1.7 0.55 0.6 1.53
8 1.6 1.8 0.89 2.6 0.62 0.9 1.69
12 3.2 3.2 0.99 4.0 0.79 1.4 2.27
16 5.1 4.7 1.08 4.6 1.12 2.1 2.42
24 9.5 7.7 1.23 5.4 1.77 3.8 2.50
32 13.3 10.5 1.27 7.2 1.83 5.7 2.35
48 20.2 16.9 1.20 10.2 2.00 9.5 2.11
64 21.9 25.2 0.87 12.0 1.79 12.8 1.72
96 29.7 33.5 0.89 14.4 2.05 29.1 1.02
100 30.5 30.1 1.01 14.7 2.07 30.0 1.02
128 36.5 38.8 0.94 14.9 2.46 34.4 1.06
192 45.7 46.5 0.98 32.6 1.40 48.9 0.93
200 46.5 42.9 1.07 30.1 1.54 50.0 0.93
256 51.1 50.4 1.01 32.5 1.58 48.4 1.06
257 48.5 48.2 1.01 33.3 1.47 45.1 1.07
384 57.8 55.3 1.04 43.5 1.33 52.8 1.11
500 60.5 54.7 1.11 42.0 1.44 58.8 1.03
512 56.2 54.8 1.02 26.6 2.08 60.8 0.93
768 63.9 61.0 1.05 43.5 1.46 62.3 1.03
1000 67.1 61.1 1.11 50.2 1.34 63.4 1.05
1001 66.4 60.3 1.11 48.4 1.37 63.0 1.05
1024 61.5 60.9 1.00 40.9 1.51 62.2 0.99
1536 64.2 62.9 1.02 41.0 1.57 62.9 1.02
2048 60.7 63.3 0.96 46.5 1.36 64.4 0.94
3072 62.4 63.7 0.99 43.8 1.42 58.0 1.08
4096 58.9 62.3 0.92 35.2 1.68 56.9 1.04
4097 61.0 62.2 0.98 52.0 1.17 58.4 1.04
PSTRF 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.1 0.1 1.34 0.1 1.17 0.1 1.67
3 0.3 0.2 1.46 0.2 1.00 0.1 1.81
4 0.4 0.3 1.48 0.4 1.00 0.2 1.98
6 0.6 0.5 1.30 0.7 0.86 0.3 1.85
8 1.0 0.7 1.35 1.1 0.88 0.5 1.84
12 1.6 1.3 1.26 1.9 0.79 0.9 1.66
16 2.4 1.9 1.26 2.7 0.91 1.5 1.67
24 4.1 3.3 1.25 4.2 0.99 2.7 1.53
32 6.2 4.8 1.25 5.5 1.11 4.1 1.49
48 10.5 8.2 1.29 7.4 1.42 7.4 1.42
64 15.5 11.2 1.39 8.6 1.80 10.8 1.44
96 24.9 18.1 1.38 9.9 2.51 18.0 1.40
100 25.0 18.8 1.34 10.0 2.46 18.5 1.36
128 33.5 23.2 1.44 10.5 3.16 23.0 1.46
192 48.0 34.4 1.39 26.0 1.84 35.3 1.36
200 49.3 36.1 1.37 27.2 1.81 36.0 1.36
256 53.6 35.1 1.53 27.7 1.93 36.7 1.48
257 56.6 41.1 1.38 31.1 1.81 42.2 1.34
384 71.1 49.9 1.42 38.3 1.86 52.7 1.35
500 79.5 60.5 1.31 41.8 1.91 63.1 1.26
512 51.2 25.7 1.99 22.2 2.30 25.6 2.00
768 84.7 61.1 1.38 39.1 2.15 57.8 1.47
1000 102.5 86.8 1.18 45.3 2.26 88.7 1.16
1001 101.4 85.3 1.17 45.1 2.25 86.9 1.17
1024 56.4 29.9 1.88 21.6 2.61 25.7 2.18
1536 83.6 52.7 1.59 30.3 2.75 46.8 1.79
2048 75.9 47.4 1.61 23.1 3.26 36.5 2.08
3072 83.5 59.9 1.39 28.3 2.91 41.6 2.01
4096 78.8 60.1 1.31 31.8 2.48 38.2 2.16
4097 97.5 91.4 1.06 40.9 2.43 62.0 1.57
PSTRF 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.1 0.1 1.72 0.1 1.29 0.1 1.87
3 0.2 0.2 1.41 0.2 1.00 0.2 1.43
4 0.4 0.3 1.56 0.4 1.10 0.3 1.51
6 0.5 0.5 1.17 0.7 0.80 0.5 1.22
8 0.9 0.7 1.29 1.0 0.95 0.7 1.29
12 1.6 1.3 1.25 1.7 0.94 1.1 1.48
16 2.3 1.9 1.20 2.4 0.95 1.6 1.44
24 3.9 3.3 1.20 3.8 1.05 2.9 1.36
32 5.9 4.5 1.30 5.2 1.08 4.3 1.36
48 10.0 7.3 1.37 7.6 1.24 7.4 1.35
64 14.0 9.8 1.43 9.3 1.42 10.5 1.33
96 20.0 14.9 1.34 11.7 1.67 15.9 1.26
100 20.4 15.5 1.32 12.1 1.66 16.7 1.22
128 23.9 15.7 1.53 12.2 1.94 17.3 1.38
192 31.4 21.9 1.43 17.9 1.73 24.3 1.30
200 32.5 24.3 1.36 19.3 1.67 26.6 1.22
256 24.7 13.2 1.88 12.2 2.01 14.1 1.75
257 34.7 26.7 1.31 20.2 1.71 29.3 1.18
384 40.3 29.4 1.37 24.2 1.64 32.1 1.26
500 45.5 36.8 1.24 29.9 1.51 39.2 1.17
512 27.0 14.5 1.87 13.0 2.06 14.6 1.88
768 40.0 25.4 1.57 22.5 1.77 26.1 1.55
1000 55.2 48.4 1.13 38.2 1.45 50.5 1.09
1001 54.9 47.5 1.14 36.4 1.51 49.8 1.10
1024 37.7 23.1 1.63 20.1 1.87 23.7 1.59
1536 42.3 29.6 1.43 23.1 1.83 29.6 1.44
2048 43.1 31.8 1.36 21.9 1.83 34.4 1.25
3072 43.8 38.4 1.14 27.0 1.62 38.3 1.15
4096 36.5 31.5 1.27 26.8 1.36 32.4 1.12
4097 50.7 51.8 0.98 36.0 1.41 50.6 1.00
SYTRF 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.1 0.1 1.39 0.2 0.81 0.1 2.73
3 0.3 0.3 1.17 0.4 0.68 0.1 2.68
4 0.5 0.4 1.19 0.7 0.72 0.2 2.85
6 0.8 0.7 1.15 1.1 0.76 0.3 2.39
8 1.9 1.2 1.58 1.7 1.07 0.5 3.81
12 2.9 1.8 1.62 2.6 1.03 0.9 3.45
16 4.3 2.8 1.59 3.9 1.09 1.4 3.11
24 6.4 3.9 1.64 5.7 1.11 2.4 2.72
32 8.6 5.0 1.69 7.3 1.19 3.7 2.34
48 12.4 6.8 1.85 10.1 1.22 6.4 1.92
64 15.1 8.5 1.77 13.4 1.15 9.1 1.66
96 28.3 17.8 1.59 18.0 1.57 14.5 2.05
100 29.9 18.3 1.65 10.9 2.73 15.2 1.96
128 35.1 22.6 1.57 13.9 2.52 18.2 1.89
192 50.3 31.2 1.61 19.1 2.59 27.3 1.86
200 52.4 32.6 1.61 20.2 2.63 28.9 1.81
256 47.4 31.5 1.47 23.7 2.00 29.9 1.59
257 58.3 34.9 1.66 25.7 2.27 32.8 1.77
384 67.8 41.4 1.65 33.2 2.04 44.0 1.52
500 77.2 43.2 1.80 40.2 1.92 56.4 1.37
512 40.0 35.8 1.12 36.5 1.08 39.9 1.01
768 76.2 45.9 1.70 49.6 1.51 56.4 1.35
1000 100.1 51.1 1.96 60.1 1.67 79.8 1.25
1001 99.7 51.2 1.95 59.9 1.66 80.6 1.24
1024 43.2 39.8 1.07 45.7 0.96 39.7 1.09
1536 72.2 50.2 1.45 66.2 1.09 68.1 1.05
2048 63.5 47.0 1.35 59.5 1.07 51.2 1.25
3072 75.8 49.0 1.55 69.6 1.09 54.6 1.40
4096 80.1 47.2 1.59 65.0 1.24 49.7 1.61
4097 104.0 52.7 1.98 77.8 1.32 72.5 1.43
SYTRF 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.1 0.1 1.29 0.2 0.77 0.1 2.72
3 0.3 0.3 1.12 0.4 0.70 0.1 2.58
4 0.8 0.4 2.02 0.6 1.28 0.2 4.77
6 1.1 0.8 1.39 1.1 0.97 0.4 3.09
8 1.6 1.2 1.36 1.7 1.02 0.6 2.57
12 2.8 1.9 1.52 2.8 1.07 1.2 2.24
16 4.0 2.8 1.41 4.0 1.04 1.8 2.20
24 6.2 4.0 1.53 5.4 1.15 3.1 2.01
32 8.1 5.2 1.57 6.5 1.25 4.5 1.80
48 11.7 7.0 1.67 9.0 1.30 7.2 1.63
64 14.4 8.6 1.69 10.7 1.35 9.4 1.53
96 21.3 14.1 1.50 12.9 1.67 14.0 1.52
100 22.0 14.6 1.47 10.5 2.10 15.0 1.47
128 20.2 14.8 1.36 12.6 1.63 15.5 1.30
192 28.2 19.7 1.43 17.8 1.58 22.1 1.28
200 31.2 20.9 1.48 18.6 1.68 23.6 1.34
256 18.7 17.6 1.06 19.6 0.97 19.8 0.94
257 31.8 21.6 1.45 21.3 1.49 25.8 1.25
384 34.4 22.3 1.52 26.5 1.30 29.6 1.17
500 43.0 25.0 1.72 31.7 1.36 37.9 1.12
512 20.0 19.3 1.04 24.1 0.82 22.8 0.88
768 33.3 25.3 1.31 35.0 0.95 37.8 0.88
1000 53.1 28.9 1.85 41.8 1.27 49.7 1.06
1001 54.0 29.3 1.85 41.5 1.29 50.2 1.08
1024 30.1 24.6 1.22 33.4 0.90 31.4 0.96
1536 36.6 26.9 1.36 38.1 0.97 35.2 1.03
2048 39.9 26.4 1.52 39.5 1.01 34.4 1.16
3072 43.9 24.8 1.77 43.8 1.02 37.3 1.17
4096 40.5 23.3 1.74 33.6 1.02 32.6 1.25
4097 54.8 25.4 2.16 48.9 1.12 51.9 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.19 0.5 0.41 0.3 0.59
3 0.4 0.4 1.23 1.6 0.29 1.3 0.34
4 0.8 0.6 1.28 2.6 0.29 1.2 0.63
6 1.5 1.1 1.38 1.5 0.97 1.7 0.86
8 2.7 1.5 1.79 2.0 1.32 2.1 1.25
12 4.1 2.3 1.66 2.6 1.57 4.5 0.91
16 6.5 3.1 2.05 3.5 1.84 6.4 1.05
24 8.0 6.4 1.26 5.1 1.56 10.2 0.76
32 11.5 8.6 1.33 7.7 1.49 1.5 7.72
48 19.5 17.0 1.15 11.1 1.72 2.8 7.10
64 27.4 22.8 1.20 15.3 1.78 5.2 5.23
96 42.2 38.5 1.09 18.2 2.32 9.7 4.36
100 38.9 39.2 1.00 18.3 2.13 10.3 3.75
128 55.9 48.6 1.15 23.0 2.42 17.4 3.23
192 75.1 67.1 1.13 30.5 2.44 29.5 2.55
200 76.7 66.4 1.16 30.9 2.46 30.5 2.52
256 90.2 76.4 1.18 37.1 2.42 45.2 2.00
257 86.3 73.2 1.18 36.2 2.38 45.1 1.91
384 106.6 89.6 1.19 47.9 2.23 66.1 1.61
500 110.1 94.0 1.16 54.7 2.02 81.5 1.35
512 112.4 95.6 1.17 54.9 2.05 52.1 2.16
768 123.7 106.1 1.17 68.9 1.79 102.0 1.22
1000 130.0 115.0 1.13 76.8 1.69 116.0 1.11
1001 128.2 113.0 1.14 75.9 1.69 115.7 1.10
1024 120.0 114.3 1.05 56.1 2.15 42.8 2.80
1536 132.4 121.0 1.11 87.6 1.51 94.4 1.40
2048 126.9 123.1 1.03 75.7 1.68 65.3 1.93
3072 123.0 125.7 0.98 86.6 1.43 81.1 1.51
4096 121.7 128.1 0.95 92.9 1.31 88.3 1.35
4097 124.3 129.0 0.97 101.1 1.23 118.5 1.04
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.08 0.6 0.33 1.1 0.17
3 0.5 0.4 1.22 1.4 0.34 1.3 0.37
4 0.8 0.5 1.55 2.5 0.32 1.9 0.43
6 1.3 0.9 1.44 1.5 0.84 1.6 0.78
8 2.1 1.2 1.77 2.1 0.97 2.1 1.12
12 3.9 1.8 2.17 3.6 1.06 4.7 0.84
16 5.8 2.4 2.41 4.8 1.20 6.7 0.86
24 6.9 3.5 2.05 4.4 1.55 9.5 0.73
32 9.6 4.4 2.17 6.6 1.45 11.8 0.83
48 15.7 9.6 1.65 10.0 1.57 14.8 1.05
64 21.4 12.2 1.75 14.0 1.56 15.7 1.36
96 30.3 22.0 1.37 20.3 1.49 17.5 1.74
100 31.3 21.9 1.42 21.3 1.47 17.4 1.80
128 37.8 26.5 1.42 27.1 1.40 22.2 1.70
192 46.4 37.7 1.23 31.3 1.48 36.6 1.27
200 46.8 38.3 1.22 33.4 1.40 35.0 1.34
256 52.1 40.5 1.29 35.5 1.46 30.1 1.74
257 50.7 39.7 1.27 35.8 1.42 39.7 1.28
384 57.3 50.1 1.14 43.3 1.33 52.4 1.09
500 59.8 51.8 1.15 48.4 1.24 55.1 1.09
512 56.7 50.3 1.13 42.2 1.34 22.3 2.53
768 63.9 58.1 1.10 52.0 1.23 51.2 1.26
1000 65.8 60.4 1.10 58.1 1.13 64.0 1.03
1001 65.1 60.0 1.09 56.4 1.15 63.8 1.02
1024 61.6 60.0 1.03 48.8 1.26 33.7 1.82
1536 62.6 60.1 1.04 51.4 1.20 41.6 1.50
2048 60.5 61.9 0.98 56.0 1.07 44.4 1.36
3072 61.7 63.8 0.97 58.1 1.06 51.7 1.19
4096 60.4 65.3 0.92 53.5 1.14 41.3 1.45
4097 64.1 66.4 0.97 62.8 1.02 66.9 0.96
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.1 0.78 0.5 0.20 0.1 1.47
3x3 0.2 0.2 0.82 0.7 0.24 0.1 1.55
4x4 0.3 0.3 0.82 1.0 0.27 0.2 1.59
6x6 0.6 0.7 0.84 1.8 0.30 0.3 1.63
8x8 0.9 1.0 0.91 2.7 0.34 0.6 1.67
12x12 1.9 2.0 0.96 4.4 0.43 1.1 1.66
16x16 3.2 2.9 1.08 5.6 0.56 1.8 1.75
24x24 5.2 4.9 1.07 7.6 0.69 3.4 1.52
32x32 7.6 6.7 1.14 10.4 0.74 5.3 1.42
48x48 12.7 11.7 1.08 14.4 0.88 9.9 1.28
64x64 18.0 15.1 1.19 17.5 1.02 14.4 1.24
96x96 30.4 22.1 1.37 21.5 1.41 24.6 1.24
100x100 29.8 23.1 1.29 21.8 1.37 25.4 1.17
128x128 43.1 26.1 1.65 23.9 1.80 30.6 1.39
192x192 63.4 42.9 1.48 39.8 1.59 46.6 1.36
200x200 63.9 48.9 1.31 39.5 1.60 48.1 1.33
256x256 78.2 45.8 1.72 46.9 1.66 49.1 1.59
257x257 77.2 59.5 1.30 53.4 1.44 59.7 1.29
384x384 99.1 73.3 1.35 73.9 1.34 79.0 1.25
500x500 100.7 87.0 1.16 84.2 1.20 90.9 1.10
512x512 102.1 64.9 1.58 63.5 1.60 64.0 1.59
768x768 113.8 86.7 1.31 86.5 1.31 93.2 1.23
1000x1000 119.7 108.8 1.10 107.1 1.12 118.5 1.01
1001x1001 117.1 107.6 1.09 103.7 1.14 114.8 1.02
1024x1024 118.4 70.1 1.67 66.9 1.77 61.1 1.94
1536x1536 127.0 97.3 1.30 93.1 1.36 99.5 1.28
2048x2048 128.0 90.1 1.41 86.2 1.49 73.9 1.74
3072x3072 123.7 92.8 1.34 93.4 1.31 71.7 1.73
4096x4096 118.4 90.0 1.33 96.0 1.23 67.9 1.73
4097x4097 119.5 105.7 1.13 108.5 1.10 83.4 1.44
4096x8 39.7 32.5 1.22 29.4 1.35 36.7 1.08
4096x64 75.1 46.1 1.63 51.4 1.48 51.0 1.46
4096x256 106.2 68.3 1.55 80.1 1.32 62.1 1.71
4096x1024 124.2 98.4 1.27 98.8 1.26 82.5 1.49
10000x8 40.9 33.8 1.21 30.8 1.33 39.2 1.04
10000x100 86.7 40.9 2.13 66.7 1.30 41.8 2.07
10000x1000 109.7 100.8 1.09 103.9 1.06 112.4 0.97
10000x4000 117.1 102.8 1.16 115.4 1.01 128.2 0.91
100000x8 29.3 27.3 1.07 29.5 0.99 31.9 0.92
100000x64 54.2 32.1 1.69 42.5 1.28 30.9 1.74
100000x256 71.9 43.3 1.66 48.0 1.48 50.3 1.44
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.1 0.80 0.7 0.14 0.2 0.46
3x3 0.2 0.2 0.85 0.6 0.28 0.4 0.41
4x4 0.3 0.3 0.87 0.8 0.35 0.6 0.44
6x6 0.6 0.6 0.92 1.4 0.40 1.4 0.39
8x8 0.9 1.0 0.98 2.2 0.42 2.4 0.38
12x12 1.9 1.8 1.07 3.8 0.51 4.7 0.40
16x16 3.1 2.7 1.14 5.1 0.62 7.0 0.43
24x24 5.2 4.9 1.07 6.3 0.83 11.3 0.46
32x32 7.4 6.7 1.10 8.1 0.93 14.5 0.51
48x48 12.1 10.9 1.11 10.7 1.13 14.8 0.81
64x64 16.2 14.2 1.14 12.3 1.32 18.0 0.89
96x96 22.4 17.3 1.29 14.0 1.62 20.3 1.10
100x100 22.8 17.6 1.30 14.1 1.61 20.5 1.11
128x128 29.7 18.0 1.66 19.1 1.56 10.8 2.73
192x192 39.8 28.7 1.39 28.3 1.40 14.4 2.75
200x200 39.5 32.7 1.22 30.3 1.30 14.1 2.80
256x256 45.0 28.9 1.57 29.1 1.55 17.5 2.57
257x257 44.1 37.4 1.19 34.1 1.29 16.4 2.69
384x384 52.0 39.5 1.32 38.0 1.37 23.6 2.19
500x500 54.3 49.9 1.09 46.1 1.18 27.2 1.99
512x512 53.8 34.4 1.57 31.9 1.68 23.0 2.34
768x768 59.6 47.6 1.26 44.6 1.33 33.9 1.76
1000x1000 61.2 58.0 1.05 55.7 1.09 39.1 1.57
1001x1001 60.2 57.3 1.05 54.4 1.12 38.4 1.56
1024x1024 60.7 45.0 1.36 42.0 1.43 30.5 1.99
1536x1536 61.9 49.3 1.26 46.0 1.33 39.5 1.58
2048x2048 60.8 48.2 1.26 50.2 1.21 39.1 1.57
3072x3072 59.1 48.5 1.22 52.5 1.12 41.0 1.46
4096x4096 57.2 41.1 1.38 45.4 1.26 40.8 1.44
4097x4097 58.3 53.3 1.09 63.4 0.92 42.9 1.38
4096x8 18.9 14.2 1.33 15.8 1.19 20.8 0.91
4096x64 37.6 20.5 1.83 27.2 1.39 21.9 1.71
4096x256 53.2 34.6 1.54 44.8 1.19 44.3 1.19
4096x1024 57.1 49.3 1.17 54.9 1.04 44.5 1.28
10000x8 18.2 13.9 1.33 15.2 1.19 20.4 0.89
10000x100 40.0 19.4 2.07 33.6 1.19 20.2 1.96
10000x1000 50.9 49.0 1.04 58.3 0.86 49.9 1.03
10000x4000 58.3 52.8 1.10 66.8 0.86 51.3 1.16
100000x8 15.2 12.8 1.19 13.4 0.98 18.0 0.85
100000x64 20.9 9.3 2.27 19.7 1.02 10.0 2.09
100000x256 35.4 20.5 1.73 35.4 0.98 23.8 1.52
GELS float
m×n×nrhs Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x1 0.1 0.1 1.17 0.2 0.69 0.0 3.10
3x3x1 0.2 0.2 1.11 0.3 0.70 0.1 2.76
4x4x1 0.3 0.3 1.09 0.5 0.60 0.1 2.61
6x6x1 0.6 0.5 1.13 1.0 0.57 0.2 2.46
8x8x1 0.9 0.7 1.20 1.6 0.57 0.4 2.36
12x12x1 1.7 1.2 1.27 2.9 0.61 0.8 2.20
16x16x1 2.8 1.8 1.40 4.0 0.71 1.3 2.24
24x24x1 4.7 3.1 1.41 6.1 0.77 2.5 1.89
32x32x1 6.8 4.3 1.50 6.7 1.01 3.9 1.75
48x48x1 11.4 7.6 1.45 10.8 1.05 7.6 1.53
64x64x1 16.4 10.1 1.59 14.2 1.16 11.5 1.43
96x96x1 28.0 15.2 1.80 19.0 1.47 20.2 1.40
100x100x1 28.0 15.9 1.71 19.5 1.44 21.4 1.31
128x128x1 40.3 18.8 2.10 22.0 1.83 26.6 1.52
192x192x1 60.4 26.1 2.26 36.6 1.65 32.5 1.87
200x200x1 60.6 29.0 2.08 36.9 1.66 33.8 1.79
256x256x1 75.0 31.1 2.39 44.4 1.69 38.0 1.97
257x257x1 73.5 36.9 1.98 49.9 1.47 44.4 1.67
384x384x1 95.8 49.0 1.94 69.1 1.39 65.3 1.47
500x500x1 98.4 60.6 1.62 80.5 1.22 78.4 1.26
512x512x1 99.7 48.8 2.03 62.2 1.60 58.7 1.70
768x768x1 112.3 67.8 1.65 83.3 1.35 85.1 1.32
1000x1000x1 119.4 86.8 1.38 102.8 1.15 110.4 1.08
1001x1001x1 116.7 85.3 1.37 98.6 1.19 106.8 1.09
1024x1024x1 117.5 56.6 2.08 65.3 1.75 54.5 2.16
1536x1536x1 126.5 85.1 1.47 92.4 1.37 86.9 1.46
2048x2048x1 125.9 80.9 1.55 84.5 1.50 65.8 1.91
3072x3072x1 122.9 85.7 1.43 92.3 1.34 64.0 1.92
4096x4096x1 117.6 84.9 1.38 80.8 1.46 57.5 2.04
4097x4097x1 119.0 99.0 1.20 106.2 1.13 74.4 1.60
1024x1024x16 112.2 57.2 1.96 64.8 1.70 54.6 2.06
1024x1024x64 113.6 58.5 1.90 60.9 1.87 56.2 2.02
1024x1024x256 116.0 65.6 1.77 63.7 1.86 60.3 1.92
4096x8x1 41.5 7.0 5.91 24.4 1.69 34.2 1.21
4096x64x1 73.6 26.9 2.73 41.3 1.76 49.4 1.50
4096x256x1 106.7 45.8 2.33 57.2 1.87 57.8 1.85
4096x256x16 93.7 49.1 1.92 47.3 1.98 59.9 1.54
4096x256x64 102.7 55.9 1.85 54.0 1.89 66.0 1.56
4096x256x256 115.9 58.6 1.98 87.3 1.36 55.0 2.08
4096x256x1024 120.1 71.6 1.68 93.1 1.28 77.3 1.56
4096x1024x1 121.6 82.5 1.51 88.8 1.35 72.4 1.68
10000x8x1 41.9 7.0 5.97 25.2 1.67 36.1 1.15
10000x100x1 84.8 29.3 2.90 60.2 1.40 41.0 2.07
10000x1000x1 108.8 84.2 1.30 100.2 1.09 109.9 0.99
10000x4000x1 116.5 96.9 1.20 114.3 1.04 116.2 1.00
100000x8x1 29.8 7.2 4.81 24.8 1.20 26.9 1.11
100000x64x1 53.9 21.3 2.53 37.4 1.40 31.8 1.69
100000x256x1 71.9 33.5 2.12 46.1 1.56 45.2 1.60
GELS double
m×n×nrhs Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x1 0.1 0.1 1.21 0.2 0.73 0.0 3.64
3x3x1 0.2 0.2 1.13 0.3 0.68 0.1 3.01
4x4x1 0.3 0.3 1.13 0.5 0.66 0.1 2.77
6x6x1 0.6 0.5 1.11 0.9 0.63 0.3 2.21
8x8x1 0.9 0.7 1.19 1.4 0.64 0.5 1.69
12x12x1 1.7 1.2 1.27 2.5 0.71 1.4 1.24
16x16x1 2.7 1.8 1.37 3.7 0.76 2.7 1.03
24x24x1 4.7 3.2 1.33 4.9 0.96 5.8 0.81
32x32x1 6.7 4.6 1.37 6.8 1.00 9.3 0.72
48x48x1 11.2 7.6 1.41 8.4 1.33 12.4 0.90
64x64x1 15.1 10.0 1.45 10.5 1.46 16.0 0.94
96x96x1 21.0 13.2 1.57 12.7 1.66 19.3 1.10
100x100x1 21.4 13.6 1.56 12.9 1.66 19.5 1.11
128x128x1 27.7 14.7 1.88 17.3 1.60 10.7 2.65
192x192x1 37.9 20.1 1.88 26.4 1.42 12.7 3.00
200x200x1 38.1 22.5 1.69 27.6 1.40 12.7 3.01
256x256x1 43.6 22.1 1.97 27.5 1.58 16.0 2.73
257x257x1 42.9 26.8 1.60 32.0 1.33 14.8 2.90
384x384x1 50.7 31.1 1.62 36.0 1.43 22.1 2.29
500x500x1 53.8 40.0 1.34 44.3 1.21 25.6 2.09
512x512x1 52.2 29.6 1.77 31.1 1.68 20.8 2.47
768x768x1 58.7 41.4 1.42 44.7 1.31 32.1 1.83
1000x1000x1 60.8 51.2 1.19 54.3 1.12 38.2 1.59
1001x1001x1 60.0 50.5 1.18 53.0 1.14 37.6 1.60
1024x1024x1 60.0 40.5 1.48 42.4 1.43 28.2 2.13
1536x1536x1 61.8 45.7 1.34 46.5 1.33 37.1 1.66
2048x2048x1 60.0 45.3 1.32 45.4 1.33 39.2 1.52
3072x3072x1 58.4 46.7 1.25 52.0 1.16 39.2 1.48
4096x4096x1 56.5 41.7 1.35 33.3 1.73 39.4 1.43
4097x4097x1 58.0 51.5 1.13 60.6 0.97 42.5 1.36
1024x1024x16 58.6 40.8 1.43 39.7 1.48 28.3 2.08
1024x1024x64 59.2 41.6 1.44 40.0 1.48 31.3 1.89
1024x1024x256 60.6 43.0 1.41 40.0 1.52 34.8 1.74
4096x8x1 19.7 5.9 3.35 12.8 1.54 18.4 1.07
4096x64x1 36.5 15.7 2.32 24.0 1.52 21.2 1.72
4096x256x1 52.2 27.5 1.93 41.7 1.25 39.4 1.32
4096x256x16 44.2 28.9 1.55 41.7 1.06 42.2 1.05
4096x256x64 48.3 32.5 1.49 41.9 1.15 45.0 1.07
4096x256x256 54.6 34.1 1.61 48.5 1.13 31.8 1.72
4096x256x1024 48.5 37.8 1.28 51.8 0.94 32.6 1.49
4096x1024x1 56.5 44.7 1.26 51.4 1.10 43.1 1.31
10000x8x1 19.0 5.9 3.26 12.5 1.52 18.3 1.03
10000x100x1 38.7 16.3 2.38 30.1 1.28 19.9 1.99
10000x1000x1 49.9 44.6 1.11 55.3 0.93 47.4 1.05
10000x4000x1 57.3 51.2 1.12 65.9 0.90 50.9 1.13
100000x8x1 13.4 5.3 2.56 11.1 1.20 13.7 0.98
100000x64x1 20.1 8.0 2.47 16.9 1.19 10.0 2.00
100000x256x1 34.5 17.4 1.98 33.6 1.06 21.8 1.56
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.35 0.6 1.26 0.4 2.19
3 0.7 0.5 1.45 0.5 1.28 0.3 2.50
4 1.0 0.7 1.44 0.8 1.22 0.4 2.31
6 1.5 1.3 1.18 1.5 0.99 0.7 1.93
8 2.1 1.7 1.27 2.1 1.01 1.1 1.90
12 3.3 2.8 1.20 3.7 0.89 2.0 1.62
16 4.7 3.5 1.34 5.1 0.94 3.0 1.56
24 7.2 5.3 1.38 8.0 0.88 5.1 1.42
32 9.6 6.6 1.45 10.5 0.90 7.4 1.30
48 14.4 9.1 1.58 14.4 1.00 9.9 1.44
64 19.3 11.1 1.74 18.3 1.06 14.5 1.32
96 29.1 13.7 2.12 25.2 1.14 22.4 1.29
100 29.9 13.9 2.14 25.6 1.16 21.8 1.37
128 38.9 15.3 2.52 29.6 1.32 29.0 1.34
192 53.8 17.5 3.04 37.9 1.42 41.0 1.31
200 55.2 17.9 3.09 37.7 1.46 41.7 1.32
256 62.8 18.9 3.34 43.5 1.44 50.1 1.24
257 60.2 19.2 3.14 44.5 1.36 47.2 1.28
384 78.2 20.6 3.80 56.5 1.39 67.1 1.16
500 82.7 21.5 3.84 63.0 1.32 72.8 1.13
512 80.3 21.2 3.78 60.2 1.32 74.0 1.09
768 87.5 22.4 3.90 70.7 1.24 84.6 1.03
1000 89.8 23.1 3.91 76.2 1.18 96.5 0.93
1001 83.9 22.9 3.65 74.2 1.13 75.8 1.11
1024 81.5 22.7 3.64 67.6 1.21 81.7 0.99
1536 92.7 23.6 3.88 78.6 1.19 105.4 0.88
2048 91.1 23.8 3.83 73.6 1.22 100.0 0.91
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.27 0.5 1.36 0.4 1.63
3 0.6 0.4 1.38 0.4 1.29 0.2 2.77
4 0.8 0.6 1.28 0.7 1.17 0.3 2.30
6 1.2 1.0 1.20 1.1 1.08 0.6 2.01
8 1.6 1.4 1.17 1.6 1.03 1.0 1.68
12 2.6 2.3 1.18 2.7 0.97 1.9 1.34
16 3.7 3.1 1.21 3.8 0.96 2.9 1.26
24 5.6 4.6 1.23 5.7 1.00 5.0 1.10
32 7.4 5.8 1.29 7.4 1.03 6.9 1.07
48 11.3 7.6 1.49 9.9 1.13 9.5 1.19
64 15.0 9.1 1.63 12.0 1.26 13.1 1.15
96 20.5 10.9 1.88 16.2 1.27 17.7 1.17
100 21.2 11.3 1.89 15.7 1.35 17.3 1.23
128 24.5 12.2 2.00 17.7 1.40 21.1 1.16
192 31.2 14.2 2.19 22.7 1.38 27.8 1.13
200 32.0 14.4 2.21 22.4 1.43 28.7 1.12
256 33.8 14.7 2.30 24.4 1.39 31.6 1.07
257 34.1 15.2 2.25 24.7 1.38 30.5 1.11
384 39.1 16.5 2.36 29.4 1.33 38.6 1.02
500 40.4 17.3 2.34 31.4 1.29 41.7 0.96
512 37.4 16.8 2.23 28.6 1.31 37.7 0.99
768 40.6 17.7 2.29 33.3 1.21 44.3 0.92
1000 42.8 18.8 2.27 40.7 1.05 48.5 0.90
1001 41.5 18.6 2.19 40.2 1.03 42.7 0.98
1024 41.3 18.3 2.27 37.6 1.10 43.3 0.95
1536 42.4 19.0 2.21 40.6 1.06 45.2 0.94
2048 31.6 14.4 2.19 39.7 0.79 37.1 0.87
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.4 0.3 9.51 0.3 7.22 0.1 16.66
3x3 1.7 0.5 3.63 0.6 2.92 0.3 5.96
4x4 1.8 0.8 2.36 0.9 2.00 0.5 3.82
6x6 1.9 1.4 1.39 1.6 1.25 0.9 2.23
8x8 2.2 2.2 1.01 2.5 0.90 1.5 1.59
12x12 2.8 3.7 0.76 4.4 0.63 2.7 1.03
16x16 4.7 5.0 0.94 6.3 0.74 4.2 1.15
24x24 6.9 7.2 0.96 9.4 0.73 6.9 0.99
32x32 10.2 12.1 0.84 13.2 0.77 10.5 0.96
48x48 17.6 18.8 0.94 20.7 0.85 14.6 1.21
64x64 24.9 29.6 0.85 31.0 0.78 23.7 1.05
96x96 40.9 44.2 0.93 43.8 0.94 40.7 0.99
100x100 42.1 47.2 0.88 43.9 0.97 40.4 1.04
128x128 52.5 57.5 0.91 52.6 1.00 54.8 0.96
192x192 81.3 87.6 0.93 73.9 1.11 85.9 0.95
200x200 84.6 93.1 0.91 75.8 1.12 88.2 0.96
256x256 94.6 98.2 0.97 79.5 1.18 97.7 0.97
257x257 102.7 116.0 0.89 89.2 1.15 108.3 0.95
384x384 136.2 145.8 0.94 107.0 1.27 140.1 0.97
500x500 156.7 173.4 0.90 123.1 1.28 155.6 1.01
512x512 131.5 123.0 1.07 96.2 1.41 122.6 1.07
768x768 166.8 168.0 0.99 124.8 1.33 156.9 1.07
1000x1000 188.5 217.0 0.87 145.2 1.29 179.1 1.05
1001x1001 187.0 212.6 0.88 141.8 1.32 171.7 1.08
1024x1024 137.7 112.5 1.18 93.0 1.48 110.3 1.29
1536x1536 179.6 174.7 1.04 132.1 1.36 155.2 1.15
2048x2048 171.0 155.6 1.09 116.1 1.47 134.7 1.29
4096x64 164.7 98.1 1.67 115.5 1.43 114.4 1.47
4096x256 220.7 154.6 1.43 141.1 1.57 148.8 1.46
4096x1024 185.5 156.4 1.18 133.9 1.44 139.7 1.33
10000x8 61.4 37.9 1.59 80.9 0.76 105.8 0.59
10000x100 199.8 108.0 1.85 154.4 1.29 123.1 1.61
10000x1000 225.0 222.9 1.01 193.5 1.16 238.5 0.94
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.80 0.3 7.10 1.6 1.39
3x3 1.2 0.5 2.66 0.5 2.41 1.0 1.08
4x4 1.3 0.7 1.85 0.8 1.73 1.3 1.06
6x6 1.4 1.2 1.14 1.2 1.13 2.1 0.68
8x8 1.6 1.9 0.84 1.8 0.87 2.9 0.56
12x12 2.0 3.1 0.64 3.3 0.61 4.5 0.44
16x16 3.6 4.2 0.86 4.5 0.79 6.2 0.58
24x24 5.0 6.3 0.79 6.5 0.78 8.7 0.58
32x32 7.5 10.5 0.72 9.7 0.78 10.7 0.69
48x48 12.3 15.1 0.82 14.1 0.86 13.7 0.90
64x64 16.3 22.2 0.74 20.1 0.81 20.7 0.78
96x96 25.0 31.7 0.79 28.0 0.87 31.4 0.80
100x100 26.3 33.6 0.77 28.1 0.94 32.0 0.82
128x128 31.7 38.2 0.84 32.9 0.96 38.6 0.82
192x192 47.9 55.8 0.86 47.2 1.00 56.9 0.84
200x200 50.5 59.8 0.85 50.0 1.01 60.3 0.84
256x256 54.1 56.1 0.96 47.8 1.13 58.6 0.92
257x257 59.9 71.3 0.84 58.4 1.03 71.5 0.82
384x384 72.3 78.7 0.93 66.4 1.09 80.2 0.89
500x500 81.9 93.5 0.88 82.5 0.99 94.0 0.87
512x512 62.1 54.7 1.11 53.3 1.17 55.5 1.12
768x768 83.1 84.7 0.98 80.0 1.03 84.9 0.99
1000x1000 95.9 109.9 0.86 97.3 1.06 115.1 0.83
1001x1001 94.9 107.9 0.87 95.5 1.06 112.1 0.85
1024x1024 79.2 70.8 1.12 73.3 1.09 68.2 1.15
1536x1536 87.8 84.5 1.03 80.1 1.10 73.3 1.20
2048x2048 79.5 77.5 1.02 66.2 1.22 64.0 1.24
4096x64 88.0 53.1 1.66 67.7 1.30 61.4 1.41
4096x256 106.3 81.4 1.31 84.6 1.27 84.8 1.24
4096x1024 95.4 85.4 1.12 83.8 1.14 76.2 1.25
10000x8 27.6 26.6 1.04 41.5 0.68 63.4 0.42
10000x100 92.1 54.2 1.70 80.1 1.13 60.6 1.53
10000x1000 113.4 113.0 1.00 113.2 1.01 108.1 1.05
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.2 0.3 8.18 0.3 6.46 0.1 19.98
3 1.4 0.4 3.36 0.5 2.96 0.2 6.99
4 2.0 0.7 2.71 0.9 2.29 0.4 5.34
6 3.0 1.3 2.34 1.6 1.82 0.7 4.14
8 4.3 1.9 2.24 2.5 1.72 1.1 3.93
12 6.5 3.0 2.10 3.8 1.72 2.0 3.30
16 9.2 4.1 2.23 5.4 1.69 2.7 3.39
24 13.0 5.9 2.15 7.6 1.71 4.7 2.88
32 16.6 7.5 2.21 9.8 1.69 6.6 2.47
48 21.7 10.0 2.18 13.4 1.58 9.6 2.27
64 25.1 12.1 2.06 15.6 1.62 12.7 1.98
96 30.0 13.0 2.29 15.3 2.00 12.5 2.40
100 28.4 13.6 2.07 16.1 1.77 12.9 2.20
128 32.0 16.3 1.97 20.4 1.57 16.7 1.92
192 35.9 31.3 1.15 32.2 1.10 26.8 1.35
200 36.2 32.9 1.10 33.0 1.10 28.6 1.25
256 36.6 39.2 0.94 41.1 0.88 36.3 1.01
257 36.9 40.9 0.91 40.9 0.90 37.8 0.98
384 39.7 60.0 0.66 61.6 0.64 56.8 0.72
500 41.0 73.7 0.54 76.8 0.53 72.0 0.57
512 35.4 38.2 0.93 40.6 0.87 37.9 0.96
768 41.2 84.2 0.48 85.1 0.49 82.0 0.50
1000 43.2 112.3 0.38 113.3 0.39 112.6 0.38
1001 40.8 110.7 0.37 111.2 0.38 111.1 0.36
1024 12.5 58.4 0.21 57.7 0.22 50.9 0.25
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.3 0.3 7.87 1.2 1.90 0.1 15.55
3 1.2 0.4 2.98 1.1 1.07 0.2 5.41
4 1.7 0.7 2.82 1.2 1.39 0.4 4.51
6 2.5 1.1 2.20 2.0 1.17 0.7 3.53
8 3.4 1.6 2.12 2.9 1.20 1.2 2.81
12 5.2 2.6 2.00 3.9 1.31 2.2 2.41
16 7.1 3.5 2.05 4.9 1.44 3.3 2.14
24 10.1 5.0 2.05 6.3 1.62 5.3 1.82
32 12.3 6.3 1.99 7.1 1.74 6.9 1.77
48 16.5 8.3 2.02 8.2 2.03 9.8 1.65
64 18.1 10.0 1.79 8.9 2.06 12.0 1.50
96 21.3 9.2 2.29 10.2 2.14 11.0 1.93
100 20.9 9.4 2.27 10.1 2.05 11.5 1.82
128 22.3 11.1 2.01 12.4 1.79 13.5 1.67
192 24.7 17.9 1.38 18.6 1.32 21.0 1.17
200 25.1 19.2 1.33 19.1 1.31 22.4 1.12
256 23.8 20.6 1.15 20.2 1.18 23.9 0.99
257 24.5 23.6 1.04 23.9 1.01 27.3 0.90
384 25.9 32.1 0.80 33.6 0.77 36.5 0.71
500 26.2 39.9 0.66 41.5 0.63 45.6 0.57
512 13.9 16.0 0.90 10.8 1.29 15.5 0.88
768 21.5 32.2 0.67 32.2 0.67 36.5 0.59
1000 26.8 57.5 0.47 59.7 0.45 64.8 0.42
1001 24.8 57.1 0.44 58.8 0.42 64.4 0.39
1024 12.1 33.5 0.36 23.5 0.52 31.3 0.39