Eigen vs. BLAS/LAPACK libraries, AMD Zen 5 (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.

Eigen’s dense kernels measured head-to-head against three BLAS/LAPACK libraries on one machine, one thread, the same binary driver and the same flop count for every arm: eight BLAS operations from level 1 to level 3 and nine LAPACK factorizations and solvers. The same cells with Eigen and every library limited to AVX2 are on the AVX2 page.

This page was first published with a measurement of 2026-09-10 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 AVX-512 rates repeat within 4 % (geometric mean per operation and scalar) for AXPY, DOT, GEMM, GESDD and TRSM, and for SYRK in double; GEMV is 10 to 13 % slower, POTRF 6 to 8 %, SYEV 7 to 8 % and GETRF 4 to 7 % slower; GEEV is 14 to 21 % faster, GEQRF about 8 % faster and SYRK in float 9 % faster. The libraries changed with the host, so the ratios of the two versions of the page differ for that reason as well. 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); see the caveats below
Compiler GCC 15.2.0, -O3 -DNDEBUG -mavx512dq -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
OpenBLAS 0.3.32 (Ubuntu package, DYNAMIC_ARCH, OpenMP build; runtime-selected kernel target Cooperlake); its LAPACK is the reference LAPACK it bundles
Intel oneMKL 2025.3 (Product Build 20251007), sequential LP64 interface, as shipped
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 2026-10-25 14:19 to 2026-10-26 09:31 (UTC−7): 51 runs, one per operation and library, about 7.8 hours of measurement; libraries and Eigen in the same runs
Harness benchmarks/comparison/run.py from Eigen merge request !2903 and the commits that add the five new operations, machine profile zen5-ai-max-395

GEMM at n = 1024 ran at 144 GFLOP/s in double and 300 in float in Eigen, against 122 and 287 for OpenBLAS, 93 and 284 for AOCL, and 68 and 135 for oneMKL.

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, minutes to hours apart: 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 76 % of the cells and above 10 % for 5 %, mostly AXPY, DOT and GEMV cells and the smallest sizes. 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.60 ns per call for Eigen against 3.9 ns for OpenBLAS, 4.2 ns for oneMKL and 8.7 ns for AOCL. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

AXPY’s lead is smaller because every call adds into the y written by the call before it, and reading that memory back puts a floor under every arm: Eigen’s AXPY holds at 3.0 to 4.3 ns per call from n = 2 to 32; a September test on this machine that cycled the same kernel through 64 vectors instead of one measured 0.8 to 1.5 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.1 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.30 1.94 1.42 1.06 1.03
AXPY float Intel oneMKL 1.26 2.41 3.94 2.95 1.34
AXPY float AOCL-BLIS 1.36 1.74 1.37 1.07 1.04
AXPY double OpenBLAS 1.25 1.82 1.18 1.03 1.01
AXPY double Intel oneMKL 1.24 2.82 3.92 2.33 1.24
AXPY double AOCL-BLIS 2.16 2.45 1.41 1.06 1.04
DOT float OpenBLAS 2.19 2.27 1.24 1.04 1.00
DOT float Intel oneMKL 4.03 3.71 3.80 2.58 1.32
DOT float AOCL-BLIS 5.74 3.74 1.40 1.10 1.04
DOT double OpenBLAS 4.82 2.41 1.21 1.03 1.01
DOT double Intel oneMKL 5.26 3.95 3.83 2.08 1.26
DOT double AOCL-BLIS 10.32 3.88 1.41 1.08 1.05
GEMV float OpenBLAS 1.82 1.62 0.99 0.96 –
GEMV float Intel oneMKL 1.88 2.34 1.15 1.12 –
GEMV float AOCL-BLIS 3.68 2.29 0.99 0.91 –
GEMV double OpenBLAS 2.24 1.68 0.98 0.88 –
GEMV double Intel oneMKL 2.07 2.16 1.07 1.20 –
GEMV double AOCL-BLIS 1.63 1.28 0.91 0.80 –
GEMM float OpenBLAS 1.32 0.90 1.02 1.03 –
GEMM float Intel oneMKL 2.73 1.99 2.19 2.24 –
GEMM float AOCL-BLIS 20.49 1.39 1.00 1.12 –
GEMM double OpenBLAS 1.25 0.90 1.20 1.12 –
GEMM double Intel oneMKL 3.19 2.19 2.02 1.93 –
GEMM double AOCL-BLIS 2.43 0.89 1.04 1.21 –
TRSM float OpenBLAS 1.03 3.59 1.98 1.14 –
TRSM float Intel oneMKL 1.32 6.58 4.09 2.78 –
TRSM float AOCL-BLIS 1.10 1.15 1.50 1.67 –
TRSM double OpenBLAS 1.26 3.92 1.99 1.22 –
TRSM double Intel oneMKL 1.27 2.85 2.53 2.12 –
TRSM double AOCL-BLIS 1.22 0.83 0.87 0.96 –
TRMM float OpenBLAS 0.24 0.75 0.90 0.60 –
TRMM float Intel oneMKL 0.85 2.96 2.73 1.52 –
TRMM float AOCL-BLIS 9.69 2.58 1.08 0.70 –
TRMM double OpenBLAS 0.47 1.09 1.12 0.49 –
TRMM double Intel oneMKL 1.34 2.84 2.57 1.14 –
TRMM double AOCL-BLIS 15.45 2.07 1.00 0.43 –
SYMM float OpenBLAS 0.81 1.06 1.00 0.99 –
SYMM float Intel oneMKL 1.50 1.88 2.19 2.25 –
SYMM float AOCL-BLIS 26.26 3.10 1.14 1.13 –
SYMM double OpenBLAS 0.97 1.34 1.20 1.08 –
SYMM double Intel oneMKL 1.88 2.19 2.10 2.21 –
SYMM double AOCL-BLIS 28.54 2.07 1.00 0.94 –
SYRK float OpenBLAS 0.61 0.91 1.01 0.98 –
SYRK float Intel oneMKL 1.22 1.99 2.47 2.39 –
SYRK float AOCL-BLIS 5.81 1.76 1.42 1.13 –
SYRK double OpenBLAS 0.69 1.33 1.27 1.08 –
SYRK double Intel oneMKL 1.27 2.92 2.88 2.53 –
SYRK double AOCL-BLIS 5.85 1.27 1.05 1.00 –
POTRF float OpenBLAS 0.91 1.13 1.49 1.17 –
POTRF float Intel oneMKL 0.55 3.04 2.36 2.80 –
POTRF float AOCL-BLIS 2.05 2.26 1.40 1.57 –
POTRF double OpenBLAS 0.89 1.25 1.47 1.25 –
POTRF double Intel oneMKL 0.59 2.21 2.49 2.48 –
POTRF double AOCL-BLIS 1.69 1.50 1.18 1.24 –
PSTRF float OpenBLAS 1.29 1.14 1.52 1.59 –
PSTRF float Intel oneMKL 0.87 1.65 2.58 3.87 –
PSTRF float AOCL-BLIS 1.63 1.33 1.77 2.37 –
PSTRF double OpenBLAS 1.33 1.45 1.73 1.35 –
PSTRF double Intel oneMKL 0.97 1.39 2.32 2.24 –
PSTRF double AOCL-BLIS 1.40 1.14 1.54 1.50 –
SYTRF float OpenBLAS 1.27 1.68 1.88 2.03 –
SYTRF float Intel oneMKL 0.73 1.53 2.19 1.48 –
SYTRF float AOCL-BLIS 2.50 1.97 1.50 1.02 –
SYTRF double OpenBLAS 1.32 1.72 2.14 2.53 –
SYTRF double Intel oneMKL 0.83 1.47 1.57 1.30 –
SYTRF double AOCL-BLIS 2.30 1.52 1.13 1.12 –
GETRF float OpenBLAS 1.32 1.18 1.42 1.07 –
GETRF float Intel oneMKL 0.70 1.66 2.86 2.31 –
GETRF float AOCL-BLIS 0.72 1.11 2.01 1.77 –
GETRF double OpenBLAS 1.49 1.40 1.46 1.07 –
GETRF double Intel oneMKL 0.65 1.58 2.01 1.80 –
GETRF double AOCL-BLIS 0.65 1.20 1.44 1.65 –
GEQRF float OpenBLAS 0.89 1.30 1.47 1.44 –
GEQRF float Intel oneMKL 0.32 1.03 2.09 2.02 –
GEQRF float AOCL-BLIS 1.55 1.25 1.54 1.60 –
GEQRF double OpenBLAS 0.91 1.30 1.47 1.25 –
GEQRF double Intel oneMKL 0.37 1.33 2.09 1.57 –
GEQRF double AOCL-BLIS 0.41 0.85 2.67 1.31 –
GELS float OpenBLAS 1.23 1.67 1.94 1.58 –
GELS float Intel oneMKL 0.53 1.15 2.13 1.94 –
GELS float AOCL-BLIS 2.13 1.43 1.84 1.71 –
GELS double OpenBLAS 1.21 1.63 1.79 1.28 –
GELS double Intel oneMKL 0.60 1.42 2.10 1.62 –
GELS double AOCL-BLIS 0.90 0.89 2.80 1.33 –
SYEV float OpenBLAS 1.29 1.76 3.97 4.87 –
SYEV float Intel oneMKL 1.05 1.02 1.50 1.53 –
SYEV float AOCL-BLIS 1.94 1.31 1.26 1.04 –
SYEV double OpenBLAS 1.21 1.61 2.69 2.32 –
SYEV double Intel oneMKL 1.09 1.19 1.53 1.00 –
SYEV double AOCL-BLIS 1.46 1.11 1.14 0.98 –
GESDD float OpenBLAS 1.80 0.83 0.95 1.13 –
GESDD float Intel oneMKL 1.49 0.85 1.51 1.87 –
GESDD float AOCL-BLIS 2.70 1.00 1.07 1.22 –
GESDD double OpenBLAS 1.54 0.78 0.98 1.05 –
GESDD double Intel oneMKL 1.41 0.92 1.32 1.36 –
GESDD double AOCL-BLIS 0.75 0.75 0.91 1.07 –
GEEV float OpenBLAS 2.53 2.05 0.56 – –
GEEV float Intel oneMKL 2.25 1.66 0.62 – –
GEEV float AOCL-BLIS 5.19 2.22 0.63 – –
GEEV double OpenBLAS 2.53 2.04 0.67 – –
GEEV double Intel oneMKL 1.27 1.92 0.81 – –
GEEV double AOCL-BLIS 3.32 1.68 0.58 – –

Observations

  • Where Eigen leads. In the middle of the size range (n = 24 to 1024) Eigen is ahead of all three libraries in nearly every BLAS operation and in the Cholesky-, LU- and QR-based factorizations; the exceptions in double are GEMM against OpenBLAS and AOCL at n = 24 to 128 (0.90 and 0.89), TRSM against AOCL (0.83 to 0.96) and GESDD (0.75 to 0.98). oneMKL runs its generic code path on this CPU: Eigen is 2.0 to 2.9 times ahead of it on GEMM, TRSM, SYMM and SYRK at n = 24 to 1024.
  • The new factorizations. SYTRF (Bunch-Kaufman) is 1.1 to 2.5 times faster in double than OpenBLAS, oneMKL and AOCL at every size band above n = 16; PSTRF (pivoted Cholesky against Eigen’s LDLT) 1.1 to 2.3 times, and GELS 0.9 to 2.8 times.
  • TRMM is the exception. For triangles of order 2048 and up Eigen’s rate falls to 62, 43 and 37 GFLOP/s in double at m = 2048, 3072 and 4096, while OpenBLAS holds 113 to 117: ratios of 0.54, 0.38 and 0.32, and 0.29 to 0.48 against AOCL. The cliff sits between m = 1536 (108 GFLOP/s, 0.95) and 2048, and shows in the sweeps too (0.54 at 1024 by 4096 and 4096 by 1024). For triangles of order 2 to 12 Eigen is also 0.3 to 0.5 times OpenBLAS. In between it is 1.0 to 1.2 times OpenBLAS.
  • GEEV trails all three libraries at n = 192 to 1024 (0.58 to 0.81 in double), as it did in September; it leads at the small end.

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.
  • Ubuntu 26.04’s GCC 15.2 targets x86-64-v3 by default, so even the Eigen build for the AVX2 page has that baseline; the -mavx512dq -mfma of this page’s build adds to it.
  • The AOCL LAPACK arm is AOCL-libFLAME with the AOCL-BLIS it links; the OpenBLAS LAPACK arm is the reference LAPACK that OpenBLAS bundles, on top of OpenBLAS’s BLAS kernels. LAPACK ratios therefore 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 0.9 0.9 1.01 0.8 1.11 0.8 1.22
3 1.4 1.4 1.01 1.2 1.16 1.1 1.28
4 1.8 1.8 1.03 1.5 1.20 1.4 1.31
6 2.8 2.5 1.11 2.1 1.30 1.9 1.43
8 3.7 3.0 1.24 3.3 1.12 3.0 1.20
12 5.5 3.0 1.86 4.2 1.31 4.0 1.37
16 10.8 4.6 2.34 6.2 1.75 5.9 1.82
24 11.0 5.2 2.11 8.8 1.26 8.7 1.26
32 21.5 13.7 1.57 10.6 2.03 11.7 1.84
48 32.4 11.4 2.84 13.6 2.36 16.9 1.91
64 43.1 18.1 2.37 16.0 2.70 22.3 1.93
96 64.4 34.4 1.87 19.2 3.37 32.2 2.00
100 47.1 30.3 1.55 18.6 2.53 30.2 1.57
128 73.2 45.0 1.62 21.6 3.41 41.3 1.77
192 75.5 39.2 1.93 24.2 3.12 54.6 1.46
256 91.0 48.9 1.86 25.4 3.57 62.7 1.45
384 99.0 70.5 1.39 27.6 3.59 77.0 1.38
512 118.0 94.5 1.25 28.8 4.21 84.3 1.39
768 127.6 97.8 1.30 29.9 4.32 97.6 1.30
1000 132.2 102.0 1.29 30.3 4.40 100.1 1.32
1001 133.4 103.0 1.30 30.3 4.40 99.7 1.33
1024 125.3 105.5 1.21 30.4 4.11 96.0 1.30
1536 136.4 117.1 1.17 29.4 4.67 106.3 1.27
2048 125.5 120.1 1.08 30.2 4.16 111.9 1.10
3072 126.9 121.2 1.05 30.7 4.11 118.8 1.07
4096 127.5 118.4 1.08 31.1 4.10 120.5 1.06
6144 127.8 116.4 1.10 31.4 4.17 119.0 1.03
8192 57.5 56.3 1.02 31.5 1.83 60.4 1.04
10000 59.3 56.9 1.02 31.8 1.87 56.6 1.05
12288 59.5 56.9 1.03 31.7 1.88 57.2 1.04
16384 59.8 58.1 1.02 30.8 1.94 57.7 1.04
32768 60.0 59.0 1.01 31.4 1.91 59.2 1.01
65536 76.7 74.7 1.02 31.5 2.44 75.9 1.01
100000 67.4 60.6 1.05 31.7 2.17 67.8 0.99
131072 48.5 48.0 1.03 31.2 1.51 48.3 1.01
262144 34.1 34.9 0.98 29.2 1.17 34.4 1.00
524288 30.6 30.8 0.99 28.8 1.05 30.9 1.00
1000000 32.3 33.4 0.96 28.7 1.12 34.1 1.09
1048576 33.1 30.5 1.09 28.2 1.07 30.5 1.10
2097152 34.1 33.8 1.04 26.7 1.08 29.2 1.17
4194304 18.0 16.9 1.06 16.2 1.10 17.4 1.04
8388608 12.9 12.1 1.07 10.7 1.14 12.6 1.03
16777216 10.4 10.1 1.05 9.0 1.13 10.3 1.01
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 0.9 1.0 0.96 0.9 1.05 0.5 1.90
3 1.4 1.4 0.98 1.3 1.05 0.7 1.90
4 1.8 1.8 1.02 1.7 1.05 1.0 1.88
6 2.8 2.0 1.36 2.4 1.14 1.5 1.89
8 5.4 3.1 1.77 3.4 1.57 1.8 2.98
12 5.5 4.2 1.33 4.6 1.19 2.8 2.00
16 10.7 6.7 1.60 5.8 1.86 3.7 2.90
24 16.2 7.8 2.06 7.5 2.17 5.4 2.99
32 21.6 9.9 2.18 8.7 2.49 7.2 3.01
48 32.3 17.3 1.86 10.2 3.14 10.6 3.06
64 36.5 22.8 1.60 11.8 3.10 14.1 2.60
96 37.7 20.0 1.87 13.1 2.87 20.7 1.92
100 37.8 20.2 1.87 13.1 2.87 21.4 1.86
128 45.3 31.8 1.43 13.9 3.27 21.0 2.04
192 49.5 35.5 1.39 14.8 3.34 31.2 1.70
256 57.4 42.9 1.34 15.2 3.76 35.2 1.71
384 63.4 51.2 1.24 15.8 4.00 41.9 1.52
512 63.5 52.4 1.17 16.1 3.94 45.1 1.42
768 67.2 62.1 1.08 16.4 4.20 51.6 1.30
1000 68.9 61.3 1.13 16.6 4.16 53.8 1.28
1001 68.0 60.9 1.12 16.5 4.13 54.2 1.25
1024 62.9 61.7 1.01 16.6 3.88 52.0 1.21
1536 63.5 61.7 1.03 16.7 3.81 56.3 1.13
2048 64.6 60.4 1.07 16.8 3.87 58.6 1.10
3072 63.6 59.4 1.07 16.6 3.97 53.5 1.14
4096 28.8 28.1 1.02 16.5 1.74 29.6 1.06
6144 29.8 28.7 1.02 16.5 1.81 28.5 1.04
8192 29.9 28.9 1.01 16.1 1.86 28.9 1.04
10000 29.7 29.4 1.00 16.8 1.77 29.1 1.02
12288 29.9 29.1 1.02 16.4 1.83 29.6 1.01
16384 30.0 29.5 1.01 16.5 1.82 29.6 1.02
32768 38.4 37.1 1.02 16.3 2.35 38.0 1.01
65536 25.1 24.7 1.02 15.9 1.64 23.7 1.01
100000 18.3 18.6 0.98 15.7 1.21 18.3 1.00
131072 17.1 17.6 0.96 14.8 1.16 17.0 1.01
262144 15.4 15.5 1.01 14.6 1.05 15.4 1.00
524288 16.2 16.9 0.99 14.3 1.05 15.1 1.07
1000000 17.3 18.3 1.01 14.4 1.05 14.6 1.18
1048576 17.9 17.9 0.94 13.2 1.37 14.4 1.24
2097152 8.9 8.2 1.11 8.1 1.11 8.8 0.99
4194304 6.2 6.0 1.06 5.2 1.14 6.3 0.99
8388608 5.1 5.1 1.04 4.5 1.13 5.1 1.00
16777216 4.4 4.4 1.00 4.2 1.11 4.0 1.02
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 2.2 3.48 0.9 8.78 0.6 12.18
3 8.4 3.0 2.86 1.3 6.75 0.9 9.23
4 8.1 3.6 2.23 2.0 4.10 1.3 6.11
6 8.6 4.8 1.78 2.7 3.15 1.8 4.68
8 8.9 7.2 1.22 3.8 2.35 2.6 3.35
12 9.0 7.9 1.13 5.2 1.72 3.8 2.34
16 42.3 9.5 4.47 7.6 5.60 5.2 8.11
24 22.5 9.9 2.28 10.8 2.09 7.5 3.00
32 62.4 24.3 2.57 12.9 4.83 10.2 6.13
48 78.2 20.8 3.76 17.8 4.39 14.6 5.35
64 75.5 35.7 2.10 19.8 3.81 19.7 3.84
96 100.0 47.9 2.08 24.2 4.19 29.2 3.42
100 80.5 44.0 1.84 24.0 3.33 30.1 2.68
128 112.5 64.7 1.76 27.3 4.12 37.5 2.99
192 121.3 83.9 1.45 29.6 4.09 53.5 2.27
256 121.2 88.6 1.37 32.6 3.71 69.7 1.74
384 131.8 99.2 1.34 34.5 3.82 91.7 1.44
512 135.9 104.0 1.31 36.1 3.76 100.6 1.34
768 140.1 115.2 1.22 37.5 3.73 112.9 1.24
1000 139.7 130.6 1.07 37.6 3.72 122.6 1.13
1001 138.2 133.8 1.03 37.8 3.65 121.2 1.14
1024 148.5 127.6 1.16 38.0 3.92 120.2 1.23
1536 150.3 135.9 1.11 38.7 3.87 131.6 1.14
2048 151.8 143.0 1.06 39.2 3.88 139.7 1.09
3072 156.5 149.9 1.05 39.6 3.94 146.2 1.07
4096 156.9 151.4 1.04 39.8 3.93 149.1 1.06
6144 154.7 143.9 1.08 38.4 4.03 133.1 1.16
8192 62.3 57.6 1.00 39.2 1.59 60.2 1.04
10000 57.8 57.4 1.01 39.3 1.51 56.3 1.03
12288 58.9 58.2 1.01 39.5 1.51 50.3 1.16
16384 60.2 59.3 1.01 39.8 1.51 49.2 1.19
32768 60.1 59.8 1.01 39.9 1.51 59.6 1.00
65536 77.6 76.8 1.01 40.0 1.94 77.1 1.00
100000 58.7 56.5 0.99 38.9 1.71 62.4 0.94
131072 45.5 44.4 1.02 37.0 1.29 46.4 0.98
262144 34.0 33.8 1.00 31.6 1.07 32.5 1.05
524288 31.2 31.0 1.00 29.7 1.15 29.9 1.05
1000000 38.8 35.1 0.97 28.9 1.34 32.2 1.21
1048576 38.2 34.8 1.00 28.4 1.35 38.1 1.01
2097152 35.5 35.4 0.99 26.3 1.35 34.5 1.03
4194304 22.3 22.4 1.01 17.5 1.27 19.5 1.15
8388608 13.3 13.5 0.98 12.3 1.10 12.3 1.07
16777216 10.7 10.8 0.99 10.3 1.02 10.1 1.06
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 6.7 1.0 6.60 1.0 6.99 0.5 14.46
3 8.5 1.5 5.69 1.4 6.21 0.7 12.24
4 8.7 2.1 4.25 1.8 4.93 0.9 9.41
6 9.0 2.9 3.15 2.6 3.52 1.4 6.78
8 27.8 3.9 7.10 4.0 7.01 1.8 15.13
12 19.0 5.7 3.33 5.2 3.68 2.8 6.87
16 38.2 7.5 5.04 6.7 5.72 3.6 10.60
24 45.0 10.0 4.51 9.0 4.92 5.5 8.25
32 39.7 12.0 3.28 10.1 3.92 7.0 5.72
48 51.1 19.1 2.66 12.5 4.09 11.0 4.68
64 55.0 23.8 2.30 13.8 3.98 14.7 3.74
96 60.9 31.5 1.93 14.9 4.10 20.2 2.99
100 52.4 30.5 1.72 15.6 3.36 20.3 2.57
128 57.1 36.7 1.56 16.3 3.50 26.8 2.11
192 62.5 43.8 1.43 17.2 3.60 34.3 1.83
256 66.1 49.7 1.33 17.9 3.68 38.9 1.71
384 71.8 56.4 1.27 18.7 3.86 46.9 1.53
512 72.8 61.2 1.18 19.0 3.83 51.3 1.42
768 75.5 66.5 1.14 19.4 3.90 58.0 1.30
1000 76.0 68.1 1.11 19.5 3.91 64.3 1.18
1001 76.6 66.5 1.16 19.5 3.93 62.9 1.22
1024 76.9 69.7 1.11 19.6 3.92 63.0 1.22
1536 77.3 72.8 1.06 19.7 3.94 67.8 1.13
2048 77.7 74.4 1.05 19.8 3.92 70.5 1.10
3072 77.4 68.4 1.13 19.3 3.93 61.3 1.27
4096 30.5 28.4 1.01 19.5 1.56 29.7 1.05
6144 29.3 29.0 1.01 19.7 1.51 28.4 1.02
8192 29.8 29.6 1.00 19.8 1.50 28.2 1.04
10000 30.0 29.8 1.00 19.9 1.52 28.2 1.04
12288 29.9 29.9 1.00 20.0 1.50 28.8 1.02
16384 30.1 29.9 1.01 20.1 1.50 29.1 1.03
32768 38.9 38.5 1.01 20.0 1.96 38.3 1.01
65536 22.6 22.6 0.98 18.3 1.36 22.5 1.00
100000 18.1 18.1 1.00 16.9 1.08 17.8 1.01
131072 16.9 16.9 1.00 15.7 1.08 16.1 1.05
262144 16.3 15.4 1.06 14.9 1.15 15.0 1.09
524288 19.0 16.9 1.07 14.2 1.34 18.8 1.02
1000000 18.3 18.2 1.02 13.8 1.33 17.0 1.08
1048576 18.0 17.7 1.02 13.5 1.31 17.2 1.05
2097152 11.5 11.5 1.00 8.9 1.28 9.8 1.16
4194304 6.7 6.8 0.99 6.3 1.06 6.2 1.08
8388608 5.4 5.4 1.00 5.2 1.04 5.1 1.05
16777216 4.9 4.9 1.00 3.5 1.38 4.7 1.05
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 0.8 0.4 1.80 0.5 1.78 0.2 3.71
3x3 1.9 1.0 1.91 0.9 1.99 0.5 3.81
4x4 3.1 1.5 2.07 1.7 1.82 0.8 4.03
6x6 6.6 3.7 1.80 3.2 2.04 1.9 3.55
8x8 11.2 6.5 1.74 6.1 1.36 3.2 3.47
12x12 22.3 13.4 1.66 11.6 1.92 6.2 3.53
16x16 41.4 23.4 1.77 17.2 2.39 11.7 3.64
24x24 53.7 33.5 1.61 28.5 1.89 19.6 2.73
32x32 101.2 62.4 1.63 37.4 2.71 29.7 3.26
48x48 142.7 74.4 1.92 48.1 2.98 46.9 2.96
64x64 174.2 82.4 2.13 55.2 3.16 59.6 2.81
96x96 141.2 100.3 1.41 59.4 2.37 75.7 1.87
100x100 120.4 82.0 1.47 58.9 2.01 69.2 1.74
128x128 101.2 75.6 1.34 59.8 1.68 73.6 1.37
192x192 80.4 78.8 1.02 63.2 1.27 76.7 1.05
200x200 77.8 78.6 0.99 61.7 1.24 77.7 1.00
256x256 80.0 79.5 1.01 64.1 1.25 78.0 1.03
257x257 73.5 66.3 1.11 50.7 1.43 67.3 1.09
384x384 81.1 79.6 1.02 64.6 1.26 79.3 1.01
500x500 68.9 72.2 1.00 62.4 1.11 67.1 1.01
512x512 73.2 74.1 0.99 61.6 1.19 69.7 1.02
768x768 58.4 58.4 1.00 51.1 1.14 58.2 0.99
1000x1000 51.4 68.4 0.79 57.5 0.89 53.3 0.97
1001x1001 49.5 59.5 1.04 49.7 1.00 50.8 0.96
1024x1024 42.7 49.3 1.00 41.9 1.02 54.1 0.79
1536x1536 50.7 56.0 0.91 58.8 0.85 57.2 0.89
2048x2048 37.1 46.0 0.98 48.4 0.76 46.6 0.80
3072x3072 27.8 25.0 1.13 15.8 1.69 22.5 1.24
4096x4096 17.3 17.4 0.99 12.7 1.36 19.0 0.93
4097x4097 14.7 17.8 0.83 12.1 1.19 18.5 0.79
8x10000 25.8 40.7 0.63 24.4 1.04 13.9 1.86
100x10000 53.1 59.6 0.91 49.7 1.06 47.5 1.12
1000x10000 28.1 27.7 1.02 14.5 1.87 22.5 1.28
4000x10000 20.8 18.9 1.10 14.3 1.42 17.4 1.20
10000x8 72.1 71.7 1.01 67.5 1.05 80.5 0.90
10000x100 57.6 55.1 1.05 45.2 1.26 53.7 1.07
10000x1000 29.8 26.4 1.13 18.7 1.58 26.7 1.19
10000x4000 21.0 18.8 1.12 14.7 1.37 19.0 1.10
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 0.9 0.4 2.06 0.5 1.84 0.7 1.31
3x3 1.8 0.9 2.04 0.9 2.02 1.3 1.39
4x4 3.2 1.5 2.20 1.7 1.81 2.1 1.53
6x6 6.7 2.8 2.36 3.1 2.12 3.4 1.85
8x8 13.2 5.1 2.67 5.7 2.28 6.3 2.10
12x12 18.4 9.4 1.95 9.7 1.89 12.2 1.60
16x16 38.2 15.4 2.48 14.3 2.67 21.2 1.73
24x24 58.8 24.6 2.43 20.3 2.88 38.0 1.55
32x32 77.4 31.0 2.44 24.7 3.13 54.5 1.43
48x48 77.7 39.0 2.02 28.1 2.77 53.2 1.46
64x64 120.5 39.5 3.06 30.4 3.97 74.0 1.58
96x96 39.8 41.1 0.97 30.5 1.31 41.5 0.96
100x100 39.8 34.2 1.16 30.0 1.31 38.7 1.03
128x128 40.3 43.9 0.92 31.3 1.29 36.7 1.10
192x192 40.3 45.7 0.88 32.3 1.25 39.9 1.01
200x200 40.1 44.4 0.90 31.8 1.24 39.8 1.01
256x256 40.1 43.5 0.92 32.2 1.24 39.8 1.00
257x257 37.4 27.0 1.39 27.0 1.38 36.7 1.02
384x384 34.7 36.2 0.97 28.8 1.20 35.8 0.94
500x500 27.2 25.0 1.09 24.9 1.08 24.7 1.10
512x512 21.6 29.4 0.82 23.6 0.91 29.0 0.74
768x768 24.9 29.2 0.89 25.6 0.97 27.8 0.86
1000x1000 27.9 28.3 1.00 29.7 0.93 32.1 0.87
1001x1001 26.9 27.1 1.15 26.4 1.02 29.3 0.91
1024x1024 21.2 28.1 0.84 28.1 0.75 31.5 0.64
1536x1536 18.5 25.3 0.89 17.1 1.02 27.5 0.67
2048x2048 15.9 13.2 1.22 9.0 1.70 16.0 1.00
3072x3072 7.4 9.8 0.78 6.6 1.06 9.7 0.77
4096x4096 7.1 8.7 0.81 5.9 1.23 8.3 0.84
4097x4097 6.2 8.3 0.74 5.6 1.09 8.0 0.78
8x10000 36.6 21.2 1.72 21.5 1.68 20.2 1.82
100x10000 25.9 22.4 1.40 26.7 0.97 30.6 0.84
1000x10000 11.6 9.7 1.20 7.2 1.57 11.3 1.05
4000x10000 9.7 8.7 1.12 7.3 1.27 8.7 1.12
10000x8 35.9 50.1 0.72 33.8 1.04 63.8 0.56
10000x100 28.8 26.0 1.12 31.8 0.90 33.1 0.87
10000x1000 9.6 10.1 0.97 8.5 1.09 11.2 0.86
10000x4000 8.4 8.5 1.00 7.8 1.06 8.9 0.95
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 1.1 1.84 0.4 4.84 0.0 58.42
3x3x3 5.4 3.0 1.82 1.1 4.69 0.1 51.14
4x4x4 20.7 5.5 3.74 3.0 6.77 0.3 73.51
6x6x6 15.1 13.0 1.16 7.0 2.14 0.9 16.93
8x8x8 22.5 24.9 0.90 13.2 1.72 2.1 10.51
12x12x12 34.7 53.4 0.65 33.0 1.07 6.5 5.31
16x16x16 115.8 141.2 0.82 61.9 1.88 15.9 7.30
24x24x24 124.2 151.9 0.82 90.4 1.38 42.7 2.88
32x32x32 244.3 276.8 0.88 111.1 2.19 95.1 2.57
48x48x48 268.7 273.5 0.98 122.9 2.15 186.9 1.44
64x64x64 251.5 303.6 0.84 125.0 2.01 240.4 1.05
96x96x96 276.3 311.6 0.89 129.1 2.14 283.2 0.97
100x100x100 241.0 295.6 0.82 119.9 2.01 245.0 0.98
128x128x128 284.0 263.4 1.08 131.2 2.17 293.0 0.97
160x160x160 283.6 279.0 1.02 132.9 2.14 304.2 0.93
192x192x192 295.7 291.6 1.01 133.3 2.20 311.2 0.95
200x200x200 279.4 272.3 1.03 130.5 2.12 280.3 1.00
224x224x224 296.2 286.0 1.04 134.1 2.21 307.0 0.96
256x256x256 290.9 285.2 1.02 132.9 2.19 298.7 0.97
257x257x257 269.0 271.9 0.99 125.3 2.15 272.7 0.98
288x288x288 296.5 297.2 1.01 134.3 2.20 296.4 1.00
320x320x320 297.9 288.1 1.04 134.0 2.22 299.2 1.00
384x384x384 297.6 292.3 1.01 134.2 2.22 304.5 0.99
448x448x448 299.8 298.0 1.02 135.8 2.20 304.3 0.99
500x500x500 290.8 289.9 1.00 133.4 2.18 292.5 0.99
512x512x512 296.3 293.0 1.03 133.6 2.22 308.4 0.95
768x768x768 304.4 300.5 1.02 135.5 2.25 289.5 1.04
1000x1000x1000 297.8 292.8 1.02 134.9 2.18 280.2 1.07
1001x1001x1001 288.5 291.1 0.99 131.0 2.16 279.8 1.05
1024x1024x1024 300.0 287.0 1.04 135.3 2.22 284.2 1.06
1536x1536x1536 298.0 285.4 1.05 133.4 2.23 275.8 1.08
2048x2048x2048 289.2 279.6 1.03 132.0 2.21 262.4 1.09
3072x3072x3072 292.4 287.7 1.01 131.6 2.22 249.8 1.18
4096x4096x4096 291.4 279.6 1.04 130.2 2.22 249.7 1.17
4097x4097x4097 283.2 283.7 1.01 121.9 2.30 258.2 1.10
64x64x1024 251.1 241.9 1.04 124.7 2.04 310.6 0.81
64x1024x64 270.4 277.1 0.98 130.7 2.07 300.7 0.91
256x256x1024 291.6 281.3 1.04 132.2 2.21 296.1 0.98
1024x64x64 265.8 233.6 1.16 115.5 2.30 239.6 1.11
1024x256x256 295.1 285.4 1.03 133.4 2.20 295.9 1.00
4096x96x96 274.2 193.2 1.41 124.5 2.20 262.0 1.05
4096x128x128 287.6 205.6 1.37 127.0 2.26 253.5 1.14
4096x144x144 290.0 196.7 1.45 128.8 2.25 266.9 1.09
4096x160x160 289.6 226.8 1.27 129.3 2.24 260.4 1.14
4096x176x176 290.8 219.4 1.33 130.4 2.23 224.3 1.32
8192x128x128 287.5 221.4 1.28 126.9 2.27 268.5 1.07
10000x8x8 152.3 230.3 0.65 103.5 1.56 194.6 0.78
10000x100x100 283.2 269.4 1.05 129.9 2.19 294.0 0.95
10000x1000x1000 297.5 286.0 1.04 127.4 2.33 251.3 1.19
10000x4000x4000 305.3 298.3 1.02 130.9 2.33 261.8 1.16
GEMM double
m×n×k Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2x2 2.1 1.1 1.85 0.4 4.76 0.3 5.97
3x3x3 5.2 2.9 1.81 1.2 4.44 1.2 4.49
4x4x4 21.0 5.6 3.73 2.9 7.17 2.7 7.71
6x6x6 14.8 13.3 1.11 7.2 2.05 9.0 1.64
8x8x8 24.9 36.8 0.68 11.4 2.15 16.2 1.55
12x12x12 36.4 54.3 0.67 26.7 1.38 46.1 0.79
16x16x16 85.2 112.0 0.76 23.2 3.64 71.2 1.20
24x24x24 110.9 127.0 0.87 53.5 2.10 119.3 0.93
32x32x32 119.1 145.6 0.82 38.4 3.10 133.8 0.89
48x48x48 122.6 148.6 0.83 65.7 1.86 146.3 0.83
64x64x64 130.6 152.6 0.86 55.1 2.34 151.5 0.86
96x96x96 135.8 153.2 0.90 73.3 1.85 150.9 0.90
100x100x100 129.8 151.1 0.86 61.9 2.10 143.6 0.90
128x128x128 140.3 110.1 1.27 63.3 2.22 151.9 0.93
160x160x160 143.1 111.1 1.29 67.4 2.13 153.8 0.93
192x192x192 144.7 112.8 1.28 75.3 1.90 155.2 0.94
200x200x200 143.9 115.8 1.24 67.8 2.12 148.6 0.97
224x224x224 143.7 118.7 1.21 68.7 2.06 149.2 0.96
256x256x256 141.1 117.5 1.19 68.9 2.05 147.9 0.96
257x257x257 137.4 115.8 1.19 68.3 2.01 132.7 1.02
288x288x288 146.0 121.2 1.22 76.3 1.90 152.0 0.96
320x320x320 145.1 121.8 1.20 71.5 2.03 147.3 0.98
384x384x384 147.0 122.3 1.20 76.1 1.93 137.8 1.07
448x448x448 149.4 122.0 1.23 73.1 2.04 149.3 0.98
500x500x500 144.6 123.8 1.17 72.9 1.98 147.5 0.98
512x512x512 146.5 123.7 1.18 64.9 2.26 116.4 1.26
768x768x768 146.8 122.7 1.20 75.2 1.95 130.3 1.12
1000x1000x1000 144.8 123.5 1.17 72.7 1.99 146.1 1.00
1001x1001x1001 141.7 121.3 1.17 70.7 2.00 140.2 1.03
1024x1024x1024 144.3 121.8 1.18 68.2 2.12 92.8 1.56
1536x1536x1536 140.8 123.5 1.14 73.2 1.91 84.7 1.68
2048x2048x2048 140.7 125.9 1.12 71.5 1.94 85.7 1.64
3072x3072x3072 140.0 128.2 1.10 74.1 1.89 146.7 0.94
4096x4096x4096 142.0 125.3 1.13 72.3 1.96 142.6 0.99
4097x4097x4097 139.5 126.5 1.10 72.2 1.92 140.7 0.99
64x64x1024 124.0 95.9 1.29 53.4 2.32 146.1 0.85
64x1024x64 136.7 105.4 1.31 56.5 2.40 149.1 0.92
256x256x1024 141.5 118.5 1.19 69.5 2.09 133.4 1.05
1024x64x64 130.4 112.4 1.15 65.6 1.99 141.9 0.92
1024x256x256 146.0 125.3 1.17 68.6 2.13 117.6 1.24
4096x96x96 138.2 121.8 1.10 73.6 1.88 118.6 1.17
4096x128x128 140.1 123.4 1.13 74.7 1.91 141.8 0.99
4096x144x144 141.5 124.4 1.14 73.6 1.94 140.2 1.01
4096x160x160 139.1 124.4 1.11 73.8 1.88 140.0 1.00
4096x176x176 137.9 125.0 1.09 74.4 1.85 135.9 1.03
8192x128x128 130.0 119.1 1.06 71.2 1.88 134.5 0.97
10000x8x8 68.1 105.0 0.65 50.4 1.36 112.8 0.60
10000x100x100 122.4 117.7 1.03 71.8 1.77 123.0 1.00
10000x1000x1000 145.3 127.9 1.14 75.1 1.93 144.0 1.02
10000x4000x4000 147.0 128.7 1.14 74.3 1.99 150.0 0.98
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.2 0.4 0.38 0.2 0.88 0.2 1.22
3x3 0.5 0.7 0.64 0.6 0.91 0.5 1.24
4x4 1.2 2.0 0.60 1.2 0.97 1.1 1.20
6x6 3.2 3.1 1.00 2.6 1.22 2.7 1.27
8x8 7.0 4.6 1.46 4.8 1.46 6.5 1.11
12x12 10.1 7.3 1.35 7.3 1.37 15.5 0.68
16x16 31.5 7.5 4.17 8.8 3.65 26.7 1.11
24x24 51.9 11.7 4.42 10.6 4.94 50.0 1.04
32x32 87.2 14.3 6.10 11.7 7.47 62.8 1.36
48x48 90.2 20.9 3.30 12.6 7.45 86.1 1.05
64x64 102.3 26.7 3.22 13.0 8.03 98.1 1.04
96x96 139.3 37.1 3.36 20.9 6.87 111.7 1.25
100x100 109.4 36.9 2.67 21.1 5.32 100.5 1.09
128x128 152.0 45.7 2.98 23.3 6.61 119.7 1.27
192x192 197.6 59.9 3.18 32.3 6.17 131.9 1.50
200x200 194.7 60.3 3.09 32.9 5.96 127.5 1.53
256x256 166.9 70.5 2.33 37.1 4.53 136.8 1.22
257x257 181.1 67.2 2.65 36.9 4.93 126.2 1.44
384x384 220.5 93.5 2.25 51.6 4.27 142.3 1.56
500x500 218.9 110.8 1.89 59.8 3.74 137.9 1.59
512x512 183.8 112.8 1.58 51.4 3.65 139.2 1.32
768x768 231.0 142.1 1.59 71.2 3.25 146.3 1.66
1000x1000 261.2 158.7 1.56 83.6 3.13 148.4 1.76
1001x1001 241.9 157.4 1.52 81.4 3.00 145.9 1.66
1024x1024 190.0 156.8 1.21 51.4 3.65 140.8 1.35
1536x1536 243.9 183.4 1.34 86.9 2.80 145.0 1.68
2048x2048 208.4 195.6 1.07 72.8 2.95 141.0 1.46
3072x3072 242.1 213.8 1.13 82.8 2.97 136.7 1.77
4096x4096 242.9 218.4 1.11 88.1 2.74 134.8 1.80
4097x4097 232.9 217.5 1.07 95.5 2.45 138.5 1.68
64x4096 103.2 27.4 3.59 12.9 8.20 89.8 1.15
256x4096 163.1 71.6 2.27 37.1 4.40 136.1 1.22
1024x8 102.2 63.3 1.62 34.2 3.02 18.2 5.00
1024x64 178.8 136.7 1.32 49.5 3.59 87.0 2.05
1024x256 189.6 153.6 1.23 51.3 3.66 125.0 1.53
1024x4096 165.6 147.8 1.13 50.2 3.25 136.4 1.21
4096x8 52.7 40.6 1.30 34.4 1.57 16.5 3.16
4096x64 173.3 145.9 1.19 74.9 2.28 74.4 2.33
4096x256 229.2 200.6 1.14 88.8 2.58 123.2 1.88
4096x1024 241.3 221.6 1.08 93.1 2.59 142.6 1.69
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.2 0.4 0.50 0.2 1.10 0.2 1.49
3x3 0.5 0.7 0.74 0.5 1.01 0.4 1.24
4x4 1.3 1.6 0.76 1.1 1.17 1.1 1.30
6x6 3.2 2.8 1.08 2.9 1.10 2.5 1.32
8x8 8.2 4.0 1.98 5.4 1.52 6.2 1.43
12x12 12.8 5.5 2.13 10.4 1.23 15.2 0.86
16x16 29.1 6.2 3.98 14.2 2.05 29.5 1.06
24x24 49.5 9.5 5.23 18.7 2.62 54.4 0.93
32x32 53.8 11.0 4.82 20.9 2.58 71.8 0.76
48x48 68.9 15.7 4.41 23.8 2.86 89.6 0.77
64x64 75.7 19.6 3.86 25.9 2.94 92.4 0.82
96x96 93.0 26.1 3.61 28.8 3.23 103.9 0.89
100x100 80.7 25.2 3.25 28.6 2.82 92.9 0.87
128x128 87.8 31.2 2.81 29.8 2.95 109.9 0.80
192x192 107.8 38.4 2.79 35.6 3.06 127.6 0.84
200x200 110.3 38.4 2.85 39.0 2.83 123.8 0.89
256x256 94.6 43.6 2.20 36.9 2.56 124.4 0.76
257x257 101.8 41.3 2.46 35.7 2.87 116.7 0.87
384x384 115.7 51.2 2.24 44.7 2.59 130.7 0.91
500x500 121.5 61.5 1.98 49.8 2.44 134.4 0.89
512x512 101.8 62.3 1.63 40.8 2.49 129.4 0.79
768x768 125.9 72.5 1.75 52.1 2.41 141.7 0.89
1000x1000 130.4 80.9 1.61 58.0 2.25 138.7 0.94
1001x1001 121.8 80.1 1.53 56.0 2.16 136.2 0.89
1024x1024 117.6 80.2 1.46 49.6 2.37 133.2 0.89
1536x1536 119.9 87.8 1.35 52.4 2.32 131.4 0.91
2048x2048 120.7 93.0 1.29 53.3 2.27 126.3 0.96
3072x3072 115.2 98.5 1.18 54.9 2.10 121.0 0.95
4096x4096 117.6 103.4 1.14 59.3 2.01 119.3 0.98
4097x4097 120.1 103.5 1.16 62.1 1.94 122.4 0.98
64x4096 68.2 19.7 3.50 25.6 2.44 76.4 0.89
256x4096 92.8 40.6 2.29 37.1 2.48 113.2 0.82
1024x8 58.9 46.7 1.26 27.5 2.14 109.0 0.54
1024x64 110.0 76.6 1.44 48.9 2.05 110.5 1.02
1024x256 120.4 81.2 1.47 51.9 2.34 75.0 1.61
1024x4096 109.1 72.6 1.47 49.0 2.24 108.7 1.00
4096x8 22.6 23.2 0.98 15.0 1.50 18.5 1.22
4096x64 79.7 79.8 1.09 46.6 1.71 58.8 1.32
4096x256 118.1 103.0 1.15 60.7 1.95 110.7 1.06
4096x1024 121.0 105.7 1.14 59.0 2.08 122.9 0.95
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.1 0.5 0.16 0.1 0.70 0.0 10.60
3x3 0.2 1.2 0.18 0.3 0.74 0.0 10.24
4x4 0.5 2.7 0.18 0.7 0.73 0.0 10.71
6x6 1.3 5.4 0.24 1.9 0.67 0.1 9.22
8x8 3.2 11.3 0.28 3.7 0.86 0.3 10.11
12x12 7.8 27.1 0.29 8.2 0.94 1.0 7.77
16x16 19.6 41.0 0.48 12.8 1.54 2.1 9.51
24x24 36.9 66.8 0.55 20.5 1.80 6.6 5.62
32x32 72.0 93.5 0.77 26.3 2.74 13.1 5.47
48x48 112.5 136.5 0.82 32.7 3.47 30.6 3.67
64x64 107.9 154.1 0.70 37.7 2.86 52.9 2.02
96x96 148.0 189.5 0.78 42.9 3.46 104.4 1.42
100x100 142.7 164.5 0.87 43.4 3.28 77.5 1.84
128x128 164.4 203.0 0.82 45.8 3.58 128.2 1.28
192x192 203.4 238.6 0.85 63.9 3.19 178.7 1.13
200x200 202.8 219.9 0.93 65.2 3.11 150.5 1.35
256x256 217.8 243.3 0.90 68.7 3.14 193.1 1.13
257x257 207.9 230.3 0.90 67.2 3.09 164.0 1.27
384x384 232.0 259.6 0.89 81.0 2.87 226.6 1.03
500x500 241.6 265.9 0.91 89.1 2.69 231.0 1.05
512x512 226.2 269.7 0.91 88.9 2.46 240.5 0.94
768x768 258.9 286.1 0.91 101.6 2.55 263.1 0.98
1000x1000 266.6 283.6 0.94 107.3 2.47 252.9 1.06
1001x1001 255.3 284.8 0.89 107.9 2.37 252.3 1.02
1024x1024 249.8 284.5 0.88 94.9 2.29 260.5 0.96
1536x1536 256.9 281.0 0.90 109.9 2.34 259.3 0.99
2048x2048 227.8 276.8 0.81 105.7 2.18 242.7 0.94
3072x3072 149.2 276.3 0.54 108.4 1.38 232.3 0.63
4096x4096 104.1 263.7 0.37 111.6 0.94 224.5 0.46
4097x4097 143.7 262.9 0.55 115.9 1.22 226.9 0.64
64x4096 116.7 173.7 0.67 38.3 3.04 110.7 1.07
256x4096 213.2 260.3 0.82 67.9 3.12 216.0 0.99
1024x8 107.6 77.7 1.39 38.8 2.48 54.8 1.96
1024x64 226.3 223.2 1.02 88.3 2.46 177.0 1.28
1024x256 247.7 270.7 0.92 89.6 2.76 239.4 1.04
1024x4096 193.9 267.1 0.73 90.8 2.03 230.9 0.86
4096x8 52.5 39.4 1.35 34.0 1.55 33.9 1.49
4096x64 171.4 163.7 1.05 91.6 1.88 130.9 1.29
4096x256 232.5 239.3 0.97 110.7 2.09 213.8 1.09
4096x1024 248.1 276.0 0.90 116.9 2.12 252.5 0.98
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.1 0.4 0.31 0.1 1.22 0.0 19.24
3x3 0.4 0.9 0.39 0.3 1.27 0.0 18.08
4x4 0.8 2.0 0.41 0.7 1.20 0.0 18.69
6x6 2.1 6.2 0.34 1.9 1.10 0.1 15.63
8x8 5.3 9.5 0.54 3.7 1.41 0.3 16.56
12x12 10.9 20.2 0.54 8.1 1.35 0.9 11.24
16x16 24.0 23.3 1.03 12.2 1.97 2.1 11.12
24x24 40.7 40.0 1.02 17.7 2.30 6.9 5.79
32x32 48.2 47.5 1.01 20.5 2.36 12.3 3.91
48x48 65.7 59.6 1.10 23.9 2.75 32.7 2.01
64x64 74.1 66.7 1.11 25.5 2.91 43.2 1.72
96x96 91.3 81.7 1.12 28.6 3.19 78.4 1.16
100x100 87.9 78.9 1.12 28.8 3.05 60.3 1.46
128x128 103.5 88.3 1.18 29.5 3.50 83.2 1.24
192x192 115.3 94.7 1.22 37.2 3.09 111.3 1.04
200x200 114.2 94.6 1.20 38.1 2.99 99.7 1.15
256x256 116.2 99.5 1.19 38.1 3.03 110.6 1.05
257x257 105.9 97.3 1.10 37.4 2.78 107.6 0.98
384x384 120.7 113.1 1.07 46.6 2.59 129.9 0.93
500x500 127.7 116.3 1.10 50.3 2.44 129.6 0.99
512x512 129.8 116.8 1.12 43.8 2.44 126.0 1.03
768x768 134.6 121.1 1.10 54.2 2.50 136.3 0.99
1000x1000 131.3 118.8 1.11 57.2 2.27 135.6 0.99
1001x1001 124.8 117.6 1.06 56.6 2.21 133.4 0.94
1024x1024 128.1 116.6 1.10 48.6 2.16 132.0 0.97
1536x1536 108.0 115.8 0.95 50.2 2.11 134.0 0.81
2048x2048 62.1 114.6 0.54 47.4 1.32 129.7 0.48
3072x3072 43.0 113.4 0.38 45.7 0.94 128.6 0.34
4096x4096 36.9 115.7 0.32 46.1 0.80 129.1 0.29
4097x4097 50.7 117.1 0.43 56.4 0.91 130.3 0.37
64x4096 67.9 67.5 1.01 26.1 2.57 56.7 1.20
256x4096 111.7 90.3 1.05 38.3 2.92 113.5 0.99
1024x8 60.2 49.3 1.22 26.7 2.25 61.4 0.98
1024x64 112.4 109.8 1.02 47.0 2.58 122.5 0.90
1024x256 133.2 118.6 1.13 50.1 2.66 134.9 0.98
1024x4096 55.9 105.5 0.54 43.3 1.11 126.1 0.44
4096x8 23.5 23.6 0.99 12.5 1.89 15.5 1.49
4096x64 86.4 82.6 1.05 38.4 2.25 70.6 1.22
4096x256 117.5 113.8 1.05 48.7 2.41 112.8 1.04
4096x1024 64.6 119.0 0.54 48.5 1.36 128.6 0.50
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.6 0.72 0.3 1.60 0.0 39.93
3x3 1.0 1.5 0.63 0.7 1.35 0.0 28.72
4x4 3.7 3.4 1.10 2.0 1.90 0.1 45.84
6x6 4.9 7.7 0.64 4.6 1.07 0.3 19.44
8x8 18.4 15.8 1.18 9.4 1.89 0.6 31.51
12x12 26.3 45.5 0.58 21.2 1.11 1.9 13.67
16x16 78.0 72.4 1.08 42.7 1.84 4.0 19.55
24x24 90.7 109.8 0.82 69.9 1.30 12.7 7.16
32x32 169.0 138.5 1.22 91.0 1.80 24.5 6.94
48x48 210.5 188.8 1.11 106.4 1.98 52.6 4.00
64x64 217.6 201.2 1.08 113.6 1.92 83.4 2.60
96x96 257.9 235.0 1.10 119.2 2.17 143.7 1.80
100x100 219.6 220.9 0.99 111.8 1.97 117.1 1.87
128x128 271.2 239.0 1.13 123.5 2.21 172.4 1.57
192x192 256.2 271.2 0.95 127.3 2.01 216.7 1.18
200x200 272.4 254.7 1.07 125.7 2.17 196.4 1.38
256x256 262.9 272.8 0.96 129.0 2.05 223.1 1.18
257x257 245.5 259.6 0.95 103.6 2.37 205.1 1.19
384x384 280.6 284.8 0.99 130.9 2.13 258.0 1.09
500x500 281.3 284.2 0.99 130.6 2.15 257.0 1.08
512x512 290.7 285.0 1.05 130.7 2.21 257.6 1.13
768x768 301.0 293.7 1.02 132.2 2.26 277.0 1.09
1000x1000 292.4 290.8 1.00 131.2 2.23 270.9 1.09
1001x1001 284.5 286.5 0.99 128.2 2.22 272.8 1.06
1024x1024 300.4 287.8 1.05 131.9 2.27 264.6 1.14
1536x1536 292.6 286.6 1.01 130.3 2.25 267.2 1.10
2048x2048 282.8 284.4 0.99 128.1 2.21 253.5 1.13
3072x3072 286.9 288.9 0.99 127.0 2.26 248.9 1.15
4096x4096 281.6 286.0 0.97 125.2 2.25 242.4 1.18
4097x4097 282.9 282.1 1.00 124.0 2.28 252.8 1.12
64x4096 254.6 269.9 0.91 127.7 2.01 199.5 1.28
256x4096 265.7 298.7 0.87 130.5 2.04 265.5 1.01
1024x8 89.8 50.1 1.76 59.5 1.51 26.2 3.43
1024x64 240.3 191.7 1.25 118.4 2.02 126.6 1.92
1024x256 290.1 264.4 1.10 131.1 2.21 211.9 1.37
1024x4096 291.8 279.2 1.03 129.0 2.27 245.4 1.19
4096x8 43.2 37.2 1.16 38.6 1.12 20.9 2.18
4096x64 167.9 159.3 1.03 99.7 1.68 100.3 1.73
4096x256 250.8 238.3 1.06 122.0 2.06 194.6 1.27
4096x1024 287.2 274.3 1.04 126.3 2.27 240.3 1.20
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.6 0.6 1.04 0.3 2.19 0.0 58.29
3x3 1.2 1.4 0.84 0.8 1.54 0.0 34.78
4x4 3.6 3.2 1.12 1.9 1.87 0.1 46.55
6x6 6.3 10.2 0.62 4.7 1.32 0.3 24.43
8x8 19.9 17.3 1.15 8.5 2.34 0.6 33.54
12x12 26.7 33.2 0.80 20.1 1.35 1.9 14.34
16x16 61.9 43.0 1.44 20.0 3.17 4.4 13.92
24x24 91.1 64.5 1.42 46.0 1.97 14.4 6.32
32x32 100.8 74.3 1.35 35.8 2.88 24.5 4.12
48x48 120.5 88.3 1.36 61.6 1.97 59.3 2.03
64x64 125.5 92.9 1.35 52.3 2.40 76.4 1.62
96x96 134.7 103.2 1.30 70.4 1.92 114.4 1.18
100x100 126.6 98.1 1.29 60.6 2.08 93.5 1.36
128x128 138.6 105.5 1.33 61.4 2.26 116.3 1.19
192x192 141.2 110.3 1.28 73.2 1.95 138.0 1.02
200x200 143.3 113.7 1.26 66.4 2.16 130.2 1.10
256x256 139.2 117.6 1.18 68.2 2.10 135.3 1.03
257x257 137.4 115.7 1.19 60.5 2.27 132.2 1.03
384x384 144.5 120.0 1.20 67.5 2.13 148.8 0.97
500x500 146.0 122.0 1.19 71.0 2.07 144.7 1.01
512x512 146.3 122.5 1.20 67.8 2.16 144.3 1.01
768x768 144.3 124.2 1.17 69.5 2.06 150.3 0.96
1000x1000 144.2 121.1 1.19 69.5 2.07 147.0 0.98
1001x1001 141.9 122.5 1.16 68.6 2.02 146.3 0.97
1024x1024 138.9 121.7 1.14 64.5 2.18 145.6 0.95
1536x1536 138.2 122.8 1.11 63.1 2.19 146.8 0.94
2048x2048 135.5 122.6 1.10 62.8 2.12 145.5 0.94
3072x3072 135.4 125.1 1.08 58.3 2.32 149.7 0.91
4096x4096 128.7 124.9 1.02 58.6 2.24 142.5 0.90
4097x4097 139.2 125.4 1.11 63.9 2.18 141.7 0.98
64x4096 131.9 104.6 1.27 56.6 2.27 105.7 1.25
256x4096 134.6 112.3 1.26 64.4 2.07 138.4 0.97
1024x8 60.3 44.2 1.36 33.9 1.76 60.3 1.00
1024x64 128.3 103.8 1.24 55.7 2.29 127.6 1.00
1024x256 144.8 120.4 1.20 61.7 2.35 144.5 1.00
1024x4096 131.6 117.2 1.10 58.6 2.26 145.7 0.90
4096x8 20.7 21.5 0.97 18.1 1.13 20.0 1.06
4096x64 84.3 78.4 1.04 47.0 1.80 79.8 1.06
4096x256 125.9 110.4 1.14 59.9 2.12 118.1 1.07
4096x1024 132.2 121.9 1.08 60.4 2.26 137.0 0.96
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.56 0.2 1.02 0.0 7.52
3x3 0.5 0.8 0.59 0.4 1.08 0.1 6.63
4x4 1.2 1.8 0.67 1.0 1.17 0.2 7.54
6x6 2.5 4.3 0.58 2.3 1.08 0.5 5.10
8x8 7.0 10.1 0.67 4.4 1.58 1.0 6.76
12x12 11.1 22.1 0.50 11.0 1.02 3.1 3.60
16x16 33.8 46.0 0.73 19.3 1.76 7.1 4.80
24x24 51.3 69.6 0.74 33.8 1.52 18.4 2.79
32x32 92.6 89.1 1.04 45.7 2.02 35.9 2.58
48x48 117.1 132.9 0.87 59.6 1.97 68.6 1.71
64x64 138.1 146.0 0.95 74.3 1.84 93.4 1.49
96x96 167.8 174.5 0.97 81.6 2.06 116.9 1.43
100x100 147.4 166.8 0.88 60.2 2.45 108.0 1.37
128x128 187.9 193.1 0.97 86.2 2.17 127.5 1.47
192x192 220.4 220.6 1.00 96.9 2.28 140.1 1.57
200x200 207.6 219.5 0.95 81.3 2.57 137.1 1.51
256x256 231.4 196.4 1.16 96.6 2.40 139.7 1.66
257x257 210.3 223.0 0.94 105.0 2.00 129.9 1.62
384x384 250.5 248.7 1.01 103.6 2.43 141.9 1.75
500x500 249.3 255.1 0.98 90.0 2.74 144.6 1.73
512x512 253.7 226.1 1.12 101.4 2.56 144.0 1.76
768x768 276.0 272.9 1.01 113.3 2.42 255.4 1.08
1000x1000 277.1 276.8 1.00 106.4 2.61 252.4 1.09
1001x1001 264.7 273.1 0.97 106.3 2.51 251.5 1.05
1024x1024 264.7 275.3 0.96 93.8 2.78 245.2 1.10
1536x1536 277.7 282.2 0.99 115.3 2.37 256.2 1.08
2048x2048 275.2 276.8 0.99 107.1 2.57 248.2 1.12
3072x3072 277.8 280.3 0.99 111.5 2.50 234.1 1.18
4096x4096 275.5 276.0 0.98 115.2 2.39 236.6 1.16
4097x4097 267.9 278.4 0.96 124.9 2.14 244.7 1.11
64x4096 138.0 150.0 0.92 74.8 1.85 115.3 1.19
256x4096 227.3 232.7 0.98 94.3 2.40 141.8 1.60
1024x4096 253.8 264.7 0.94 92.8 2.75 235.0 1.08
4096x8 52.3 69.6 0.77 30.8 1.70 26.7 1.81
4096x64 151.1 238.3 0.64 69.8 2.16 86.6 1.74
4096x256 261.5 280.3 0.93 62.2 4.19 243.9 1.08
4096x1024 279.2 272.9 1.01 75.1 3.72 231.8 1.21
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.63 0.2 0.98 0.0 7.82
3x3 0.5 0.9 0.63 0.5 1.07 0.1 6.99
4x4 1.2 1.9 0.65 1.1 1.09 0.2 7.56
6x6 2.8 4.7 0.61 2.7 1.04 0.5 5.69
8x8 7.1 9.5 0.76 4.5 1.59 1.1 6.21
12x12 11.2 18.6 0.60 10.9 1.03 3.0 3.73
16x16 29.5 27.2 1.07 10.7 2.76 6.9 4.29
24x24 46.5 37.3 1.24 23.5 1.98 18.7 2.48
32x32 58.6 43.5 1.33 18.2 3.22 32.9 1.78
48x48 77.0 57.6 1.33 30.9 2.51 64.0 1.20
64x64 85.9 64.0 1.33 25.6 3.36 83.5 1.03
96x96 100.8 78.0 1.30 34.9 2.88 110.0 0.92
100x100 94.5 77.6 1.22 29.9 3.14 92.4 1.03
128x128 111.1 71.7 1.55 29.9 3.70 109.8 1.02
192x192 124.6 94.8 1.28 36.4 3.43 112.7 1.11
200x200 123.9 98.9 1.26 42.6 2.91 102.1 1.21
256x256 122.3 71.5 1.71 38.0 3.21 107.4 1.16
257x257 117.4 103.4 1.14 37.6 3.13 110.8 1.05
384x384 133.3 96.3 1.39 46.6 2.85 131.0 1.02
500x500 133.6 115.7 1.15 53.1 2.54 131.0 1.02
512x512 132.4 91.0 1.45 35.1 3.77 122.1 1.08
768x768 139.6 110.2 1.27 52.5 2.58 140.5 0.99
1000x1000 137.6 119.2 1.15 60.7 2.31 137.8 1.00
1001x1001 132.8 118.2 1.12 58.4 2.35 138.2 0.96
1024x1024 131.9 116.7 1.15 44.8 2.92 134.8 0.98
1536x1536 131.2 116.3 1.13 49.0 2.65 132.9 0.99
2048x2048 131.4 119.0 1.11 50.9 2.58 131.1 0.99
3072x3072 129.3 122.9 1.05 52.9 2.45 135.4 0.96
4096x4096 130.8 123.6 1.06 48.4 2.69 119.9 1.09
4097x4097 133.4 122.7 1.09 58.0 2.31 135.8 0.98
64x4096 85.1 57.7 1.48 26.5 3.21 97.5 0.87
256x4096 123.9 88.4 1.38 39.1 3.17 114.6 1.08
1024x4096 124.3 113.3 1.10 46.3 2.71 123.8 0.98
4096x8 13.4 34.8 0.38 32.1 0.42 10.3 1.30
4096x64 77.2 104.6 0.72 55.5 1.39 58.7 1.33
4096x256 122.8 121.0 1.01 47.0 2.61 121.7 1.02
4096x1024 125.0 123.2 1.00 56.9 2.20 128.3 0.98
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.24 0.3 0.70 0.1 1.65
3 0.4 0.3 1.18 0.7 0.55 0.2 2.13
4 0.6 0.6 1.02 2.0 0.30 0.3 2.23
6 0.9 1.2 0.78 2.1 0.43 0.5 2.00
8 1.4 1.8 0.81 2.7 0.54 0.7 2.08
12 2.6 3.6 0.72 4.0 0.65 1.3 2.01
16 4.5 5.8 0.76 4.9 0.92 1.9 2.30
24 8.6 10.2 0.83 5.7 1.52 3.6 2.43
32 13.6 15.1 0.90 7.3 1.82 5.4 2.55
48 20.7 17.6 1.09 9.3 2.23 9.0 2.30
64 33.6 26.1 1.29 10.2 3.31 12.7 2.62
96 52.6 39.3 1.34 11.2 4.73 24.5 2.14
100 46.3 36.7 1.26 11.2 4.12 24.8 1.87
128 70.7 53.5 1.34 11.5 6.12 35.6 1.98
192 103.8 70.1 1.48 54.7 1.89 61.8 1.68
200 98.5 66.2 1.49 53.8 1.82 61.3 1.61
256 144.7 87.5 1.65 59.4 2.44 84.5 1.71
257 123.9 83.9 1.49 59.8 2.07 75.1 1.63
384 176.7 111.1 1.59 73.4 2.42 122.8 1.43
500 180.6 116.2 1.55 81.1 2.23 141.4 1.28
512 179.9 123.2 1.46 75.6 2.38 145.1 1.27
768 218.7 150.4 1.47 80.3 2.72 191.1 1.14
1000 234.5 159.4 1.48 93.2 2.50 201.9 1.16
1001 220.0 156.1 1.41 87.9 2.53 182.1 1.21
1024 204.9 153.1 1.34 60.8 3.35 137.4 1.49
1536 246.0 183.6 1.34 96.2 2.53 177.4 1.39
2048 239.7 193.2 1.24 79.8 2.96 129.5 1.86
3072 242.1 208.0 1.17 97.0 2.49 136.4 1.78
4096 227.7 212.5 1.07 57.5 4.05 143.3 1.56
4097 234.0 216.3 1.07 102.1 2.29 177.7 1.32
POTRF double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.2 0.2 1.19 0.2 0.79 0.1 1.89
3 0.4 0.4 1.10 0.8 0.50 0.2 2.01
4 0.6 0.6 0.86 1.5 0.38 0.3 1.74
6 0.8 1.2 0.68 1.7 0.49 0.6 1.39
8 1.3 1.9 0.72 2.6 0.52 0.9 1.44
12 2.6 3.3 0.80 4.0 0.66 1.6 1.64
16 4.6 4.7 0.98 4.6 1.01 2.5 1.84
24 8.7 7.7 1.14 5.4 1.62 4.6 1.94
32 11.7 9.8 1.08 7.1 1.65 6.9 1.73
48 17.8 15.3 1.18 10.2 1.76 11.5 1.55
64 27.0 21.1 1.28 12.0 2.26 15.5 1.73
96 40.1 29.5 1.37 14.4 2.79 31.2 1.28
100 36.8 27.9 1.32 14.6 2.51 32.1 1.13
128 52.3 37.1 1.41 14.9 3.51 39.8 1.31
192 70.8 49.0 1.45 32.8 2.16 63.0 1.12
200 72.1 46.4 1.55 30.5 2.37 65.9 1.10
256 83.0 54.2 1.53 32.6 2.55 62.8 1.32
257 74.6 52.2 1.43 33.3 2.24 56.9 1.31
384 97.5 64.7 1.51 44.0 2.22 76.3 1.26
500 101.8 69.3 1.45 41.7 2.45 86.8 1.17
512 95.9 65.3 1.49 31.3 3.07 86.4 1.10
768 114.4 81.1 1.41 43.9 2.63 98.5 1.16
1000 123.3 83.9 1.45 49.4 2.50 102.7 1.20
1001 118.1 82.0 1.44 47.7 2.48 102.6 1.15
1024 108.6 75.7 1.46 37.1 2.93 98.3 1.10
1536 115.9 83.0 1.40 44.2 2.62 95.9 1.20
2048 112.6 86.3 1.30 43.5 2.59 91.9 1.16
3072 110.1 92.2 1.19 42.9 2.58 83.2 1.31
4096 100.3 85.0 1.18 39.6 2.55 80.0 1.17
4097 107.5 89.8 1.18 51.9 2.11 79.5 1.35
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.37 0.1 1.11 0.1 1.61
3 0.2 0.2 1.26 0.2 0.88 0.1 1.49
4 0.3 0.3 1.32 0.4 0.85 0.2 1.73
6 0.6 0.5 1.24 0.7 0.78 0.3 1.71
8 0.9 0.7 1.23 1.1 0.77 0.5 1.48
12 1.6 1.3 1.29 1.9 0.77 1.0 1.70
16 2.6 1.9 1.35 2.7 0.99 1.5 1.73
24 4.0 3.5 1.12 4.2 0.96 2.7 1.47
32 5.7 5.2 1.09 5.6 1.01 4.2 1.35
48 9.3 8.8 1.06 7.5 1.24 7.3 1.27
64 13.5 12.2 1.11 8.6 1.57 10.8 1.25
96 22.5 19.9 1.13 9.9 2.25 17.8 1.26
100 24.1 20.6 1.16 10.0 2.40 18.7 1.29
128 33.9 25.7 1.32 10.5 3.23 23.6 1.44
192 53.5 39.2 1.34 26.3 2.04 35.4 1.51
200 53.1 40.7 1.30 27.2 1.95 36.6 1.46
256 62.6 38.5 1.63 28.0 2.23 37.4 1.67
257 65.0 48.2 1.35 30.9 2.09 41.8 1.56
384 91.9 59.3 1.55 38.5 2.39 52.5 1.72
500 107.1 74.9 1.43 42.1 2.56 62.8 1.71
512 61.5 27.8 2.21 22.4 2.74 26.9 2.27
768 115.5 77.7 1.48 37.6 3.07 65.3 1.84
1000 151.8 116.8 1.30 45.3 3.37 88.7 1.71
1001 146.9 114.5 1.28 45.2 3.26 86.8 1.67
1024 70.2 32.2 2.18 21.5 3.24 26.5 2.70
1536 116.4 62.3 1.87 30.5 3.82 51.5 2.26
2048 104.3 54.9 1.90 23.5 4.42 38.6 2.71
3072 114.2 72.5 1.57 28.3 4.04 45.9 2.51
4096 102.3 64.5 1.59 27.4 3.76 43.1 2.19
4097 138.4 121.4 1.14 41.1 3.37 63.3 2.21
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.70 0.1 1.38 0.1 1.89
3 0.2 0.2 1.40 0.2 0.97 0.2 1.41
4 0.3 0.3 1.35 0.4 0.96 0.3 1.39
6 0.6 0.5 1.30 0.7 0.89 0.4 1.34
8 0.9 0.7 1.33 1.0 0.94 0.7 1.36
12 1.4 1.2 1.21 1.7 0.84 1.1 1.28
16 2.1 1.8 1.12 2.4 0.90 1.7 1.21
24 3.7 3.1 1.17 3.8 0.97 3.2 1.16
32 5.3 4.4 1.20 5.2 1.01 4.8 1.10
48 9.0 6.7 1.35 7.7 1.17 8.3 1.08
64 12.5 8.5 1.47 9.3 1.32 12.1 1.04
96 19.8 12.8 1.56 11.7 1.68 18.5 1.07
100 21.3 13.2 1.61 11.9 1.77 18.8 1.13
128 27.2 14.2 1.91 12.2 2.21 19.1 1.45
192 39.4 21.2 1.87 18.0 2.17 27.7 1.42
200 42.0 23.7 1.77 19.5 2.12 31.2 1.36
256 29.5 13.5 2.18 12.2 2.40 15.4 1.94
257 44.6 27.6 1.62 20.1 2.17 33.5 1.33
384 55.9 33.0 1.70 24.3 2.28 38.7 1.46
500 65.2 43.8 1.48 29.7 2.20 47.6 1.40
512 34.4 15.5 2.22 13.0 2.54 15.9 2.18
768 55.1 29.4 1.88 22.4 2.45 30.7 1.80
1000 87.3 65.7 1.33 38.4 2.29 70.1 1.23
1001 85.0 64.4 1.32 36.7 2.33 68.1 1.25
1024 52.0 26.7 1.94 20.0 2.57 27.2 1.91
1536 60.8 35.4 1.72 23.3 2.61 35.6 1.71
2048 60.1 41.2 1.46 23.8 2.58 39.5 1.50
3072 56.0 48.0 1.17 25.8 2.17 38.2 1.44
4096 47.6 32.2 1.48 23.7 2.01 28.6 1.45
4097 68.3 67.5 1.01 35.5 1.94 46.5 1.42
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.42 0.2 0.81 0.1 2.73
3 0.3 0.2 1.24 0.4 0.69 0.1 2.70
4 0.5 0.4 1.26 0.7 0.71 0.2 2.94
6 0.8 0.7 1.16 1.1 0.70 0.3 2.32
8 1.2 1.1 1.13 1.7 0.71 0.5 2.48
12 2.0 1.6 1.27 3.1 0.64 1.0 2.05
16 3.6 2.4 1.47 4.1 0.88 1.6 2.40
24 5.9 3.7 1.57 5.8 1.02 2.6 2.30
32 8.7 4.6 1.83 7.3 1.22 4.2 2.07
48 12.3 6.7 1.86 10.3 1.17 6.5 1.91
64 15.8 7.9 1.99 13.1 1.22 9.4 1.67
96 29.0 19.2 1.48 18.0 1.61 14.4 2.02
100 28.3 19.1 1.57 11.1 2.55 15.2 1.87
128 36.4 23.3 1.54 13.9 2.70 18.2 2.00
192 58.4 32.9 1.76 19.4 3.01 28.2 2.07
200 59.7 34.7 1.72 20.2 2.96 29.0 2.06
256 48.9 33.2 1.47 24.0 2.10 31.7 1.50
257 66.4 36.3 1.87 25.3 2.63 34.6 1.91
384 86.5 41.8 2.04 32.8 2.66 49.0 1.76
500 99.9 44.1 2.23 40.4 2.47 61.7 1.63
512 44.7 35.9 1.24 36.4 1.23 46.1 0.98
768 103.8 46.4 2.24 49.6 2.16 73.7 1.39
1000 141.3 51.4 2.78 59.5 2.36 99.5 1.42
1001 140.0 51.1 2.74 59.3 2.37 100.0 1.40
1024 48.8 38.7 1.32 42.7 1.14 55.0 0.89
1536 94.6 50.4 1.88 65.9 1.41 99.6 0.95
2048 81.8 47.4 1.73 59.1 1.32 88.1 0.94
3072 100.8 49.0 2.06 70.1 1.44 99.9 1.02
4096 90.3 47.4 1.91 65.4 1.50 85.5 1.00
4097 137.4 50.6 2.67 76.8 1.79 113.1 1.22
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.33 0.2 0.78 0.1 2.44
3 0.3 0.2 1.13 0.4 0.69 0.1 2.33
4 0.5 0.4 1.17 0.6 0.72 0.2 2.40
6 0.8 0.7 1.05 1.1 0.65 0.4 2.05
8 1.7 1.0 1.63 1.6 1.09 0.6 2.90
12 2.7 1.9 1.45 2.9 0.96 1.3 2.02
16 4.1 2.6 1.60 3.8 1.07 2.0 2.07
24 6.1 3.8 1.62 5.4 1.10 3.6 1.70
32 7.9 5.2 1.52 6.6 1.23 4.6 1.71
48 11.5 7.4 1.56 8.8 1.30 7.4 1.56
64 14.1 8.7 1.68 10.6 1.32 9.8 1.41
96 23.3 11.7 2.00 12.9 1.80 16.3 1.43
100 24.1 12.8 1.88 10.7 2.20 17.4 1.41
128 23.1 12.9 1.82 12.8 1.60 15.7 1.47
192 34.7 16.9 2.06 18.0 1.92 25.8 1.29
200 37.3 17.2 2.17 18.6 1.98 29.0 1.32
256 21.6 14.9 1.45 19.7 1.11 20.4 1.06
257 39.5 18.4 2.14 21.3 1.86 27.4 1.44
384 43.8 19.7 2.25 26.7 1.63 33.4 1.31
500 58.3 21.5 2.70 31.7 1.86 48.8 1.19
512 24.1 17.1 1.41 24.6 1.00 25.6 0.88
768 43.7 22.5 1.93 34.6 1.29 46.5 0.94
1000 81.9 25.2 3.22 41.7 1.97 71.4 1.15
1001 80.9 24.8 3.28 41.4 1.94 71.5 1.13
1024 39.3 22.3 1.76 31.8 1.19 44.1 0.90
1536 49.4 23.8 2.07 37.6 1.30 54.3 0.92
2048 54.7 22.7 2.41 40.8 1.38 56.3 0.97
3072 58.5 22.9 2.55 43.6 1.35 54.8 1.05
4096 42.8 18.4 2.33 38.1 1.05 37.7 1.29
4097 74.0 21.3 3.47 49.3 1.49 51.9 1.44
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.22 0.5 0.40 0.3 0.58
3 0.5 0.3 1.07 1.1 0.42 0.8 0.59
4 0.7 0.5 1.29 2.6 0.26 1.4 0.51
6 1.4 1.0 1.34 1.5 0.89 1.7 0.81
8 2.2 1.5 1.47 2.0 1.09 2.2 0.99
12 3.6 2.5 1.45 2.5 1.46 4.2 0.87
16 5.1 3.5 1.47 3.6 1.42 6.0 0.88
24 6.3 6.4 0.97 5.1 1.23 10.3 0.61
32 9.3 8.7 1.08 7.7 1.20 13.8 0.68
48 16.4 15.1 1.09 11.1 1.45 18.2 0.90
64 24.1 19.6 1.24 15.6 1.55 22.0 1.10
96 39.3 30.9 1.27 18.3 2.13 28.0 1.41
100 36.9 31.4 1.18 18.4 1.93 28.3 1.30
128 59.5 40.2 1.48 23.0 2.53 21.8 2.74
192 89.9 58.3 1.55 30.6 2.90 30.6 2.94
200 88.7 58.7 1.51 30.9 2.86 32.1 2.76
256 108.9 72.6 1.50 37.2 2.91 51.8 2.11
257 105.1 70.5 1.50 36.3 2.87 49.2 2.14
384 148.6 96.0 1.55 48.0 3.02 78.8 1.89
500 157.0 107.2 1.49 54.7 2.85 98.5 1.59
512 144.1 110.4 1.31 54.6 2.63 60.7 2.37
768 194.3 137.3 1.42 69.0 2.81 139.3 1.40
1000 211.3 156.9 1.34 76.8 2.75 160.0 1.33
1001 202.6 154.6 1.31 75.7 2.68 158.2 1.28
1024 179.2 151.0 1.19 56.3 3.18 52.0 3.43
1536 224.9 180.9 1.25 88.5 2.53 124.4 1.81
2048 209.8 180.6 1.16 75.4 2.78 81.7 2.58
3072 203.7 193.0 1.06 86.7 2.34 103.8 1.96
4096 184.9 194.9 0.95 89.5 2.08 116.9 1.56
4097 194.0 201.7 0.96 101.1 1.92 158.4 1.23
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.11 0.5 0.42 0.4 0.46
3 0.4 0.4 1.21 1.4 0.31 1.3 0.36
4 0.7 0.5 1.41 2.6 0.27 1.9 0.39
6 1.4 0.9 1.46 1.5 0.94 1.4 1.01
8 2.5 1.2 2.04 2.2 1.16 2.2 1.14
12 3.6 2.2 1.61 3.6 1.05 4.4 0.81
16 5.7 3.1 1.83 4.5 1.22 7.1 0.80
24 6.7 5.4 1.18 4.5 1.50 9.9 0.68
32 9.2 7.3 1.24 6.6 1.39 11.9 0.78
48 16.1 11.7 1.35 10.1 1.60 15.2 1.06
64 22.6 15.1 1.47 13.9 1.62 15.6 1.45
96 34.9 22.9 1.52 20.4 1.71 20.9 1.68
100 33.1 22.7 1.46 21.4 1.56 20.6 1.61
128 46.1 28.8 1.60 27.0 1.69 28.5 1.62
192 62.6 39.4 1.59 31.1 2.03 49.1 1.28
200 64.5 38.7 1.67 33.4 1.95 47.0 1.37
256 68.8 46.1 1.49 35.3 1.95 39.5 1.77
257 68.6 45.2 1.52 35.9 1.91 56.6 1.19
384 86.1 57.9 1.49 43.0 2.00 80.9 1.06
500 93.7 62.2 1.51 48.8 1.92 85.7 1.08
512 81.2 65.1 1.24 40.7 1.99 26.4 3.09
768 108.6 74.9 1.45 52.1 2.10 73.4 1.47
1000 115.1 80.0 1.44 56.6 2.03 107.7 1.06
1001 109.3 79.4 1.38 55.6 2.00 108.5 1.00
1024 108.4 81.1 1.33 48.7 2.23 42.1 2.60
1536 105.6 84.3 1.25 51.6 2.06 51.1 2.07
2048 98.9 86.5 1.17 52.1 1.88 53.6 1.84
3072 98.1 95.3 1.03 55.5 1.76 67.5 1.47
4096 90.5 99.4 0.91 53.0 1.71 41.3 2.18
4097 101.4 99.6 1.02 61.2 1.64 100.9 1.01
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.83 0.5 0.21 0.1 1.46
3x3 0.2 0.2 0.80 0.6 0.28 0.1 1.52
4x4 0.3 0.3 0.82 1.0 0.27 0.2 1.54
6x6 0.6 0.6 0.87 1.8 0.31 0.4 1.59
8x8 0.9 1.0 0.91 2.8 0.33 0.6 1.63
12x12 1.8 1.9 0.97 4.4 0.41 1.2 1.54
16x16 2.9 2.8 1.05 5.6 0.52 1.9 1.55
24x24 4.6 4.6 0.99 7.6 0.60 3.6 1.26
32x32 7.1 6.2 1.13 10.4 0.68 5.5 1.30
48x48 11.8 10.8 1.10 14.4 0.82 10.3 1.15
64x64 16.9 13.5 1.24 17.4 0.97 15.1 1.12
96x96 31.2 20.4 1.53 21.5 1.45 24.9 1.26
100x100 29.9 21.2 1.41 21.9 1.36 25.9 1.16
128x128 47.4 24.5 1.95 24.0 1.96 30.8 1.54
192x192 78.7 49.1 1.60 39.8 1.97 50.6 1.56
200x200 78.3 61.0 1.28 39.8 1.94 52.5 1.49
256x256 101.2 56.4 1.80 47.2 2.14 54.4 1.85
257x257 94.2 81.5 1.15 53.6 1.76 67.6 1.40
384x384 143.7 104.4 1.38 72.6 1.96 99.4 1.45
500x500 160.5 132.5 1.22 84.9 1.86 120.3 1.33
512x512 161.2 87.7 1.85 63.4 2.54 82.7 1.93
768x768 199.0 125.7 1.58 86.3 2.21 123.5 1.61
1000x1000 204.5 170.7 1.20 105.0 1.91 172.2 1.20
1001x1001 201.2 167.8 1.20 102.6 1.94 163.6 1.23
1024x1024 200.1 86.5 2.30 67.7 2.96 89.8 2.23
1536x1536 229.4 141.9 1.62 93.9 2.44 150.9 1.52
2048x2048 226.8 118.5 1.91 84.8 2.65 122.8 1.86
3072x3072 189.8 126.5 1.50 94.0 2.02 114.5 1.67
4096x4096 151.8 125.6 1.19 93.0 1.63 89.3 1.71
4097x4097 170.7 150.4 1.14 107.1 1.58 131.7 1.30
4096x8 59.4 36.1 1.65 29.5 2.01 41.5 1.44
4096x64 105.8 53.3 1.99 52.7 1.98 58.9 1.80
4096x256 162.0 89.7 1.80 79.9 2.03 97.2 1.69
4096x1024 212.6 139.5 1.52 99.5 2.14 146.6 1.45
10000x8 57.4 37.5 1.51 30.8 1.86 43.6 1.33
10000x100 127.6 42.3 3.01 67.0 1.90 42.2 3.04
10000x1000 149.8 148.9 1.02 104.7 1.42 155.4 0.96
10000x4000 153.5 145.6 1.06 116.5 1.32 168.6 0.91
100000x8 36.0 30.7 1.17 29.4 1.16 28.3 1.28
100000x64 57.8 30.4 1.88 43.2 1.34 29.0 2.00
100000x256 66.1 47.5 1.39 56.0 1.18 52.1 1.27
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.81 0.4 0.25 0.2 0.49
3x3 0.2 0.2 0.82 0.7 0.27 0.4 0.41
4x4 0.3 0.3 0.84 0.9 0.32 0.6 0.42
6x6 0.6 0.6 0.90 1.4 0.39 1.4 0.39
8x8 0.9 1.0 0.95 2.2 0.41 2.4 0.38
12x12 1.9 1.8 1.01 3.8 0.49 4.8 0.38
16x16 3.0 2.7 1.11 5.2 0.59 7.2 0.42
24x24 5.0 5.0 1.00 6.3 0.79 11.3 0.44
32x32 7.1 6.9 1.03 8.1 0.88 14.7 0.48
48x48 11.7 11.1 1.06 10.7 1.09 19.1 0.61
64x64 16.1 14.2 1.13 12.2 1.30 23.5 0.69
96x96 27.6 17.6 1.58 14.0 1.96 26.8 1.03
100x100 27.1 17.7 1.54 14.1 1.91 26.8 1.01
128x128 39.3 18.6 2.11 19.2 2.04 11.7 3.38
192x192 57.3 35.3 1.63 28.5 2.01 16.3 3.50
200x200 56.3 43.4 1.30 29.9 1.87 16.2 3.48
256x256 68.0 35.9 1.89 28.8 2.32 21.0 3.26
257x257 65.2 50.7 1.29 34.3 1.87 18.9 3.46
384x384 83.1 53.5 1.56 37.4 2.22 28.4 2.92
500x500 84.6 70.9 1.19 46.7 1.83 32.7 2.58
512x512 82.1 43.6 1.96 32.0 2.49 33.1 2.48
768x768 100.6 65.3 1.55 44.7 2.12 45.5 2.21
1000x1000 106.9 89.0 1.18 56.6 1.89 52.4 2.05
1001x1001 104.5 86.6 1.20 54.7 1.91 50.8 2.06
1024x1024 104.6 61.6 1.70 39.5 2.64 51.7 2.03
1536x1536 107.6 70.6 1.52 48.9 2.20 61.1 1.76
2048x2048 89.8 70.2 1.28 49.7 1.78 66.9 1.35
3072x3072 75.1 64.5 1.16 56.1 1.35 64.5 1.16
4096x4096 64.1 44.0 1.42 43.1 1.50 62.2 1.03
4097x4097 76.0 79.5 0.96 63.4 1.21 54.4 1.39
4096x8 26.5 15.2 1.75 15.7 1.69 28.6 0.93
4096x64 44.3 21.4 2.07 27.2 1.59 24.6 1.80
4096x256 84.5 41.9 2.02 44.4 1.90 71.2 1.17
4096x1024 79.8 73.6 1.07 55.0 1.45 72.5 1.11
10000x8 27.0 14.7 1.83 15.1 1.80 27.7 0.97
10000x100 57.7 19.2 3.01 33.5 1.72 21.0 2.74
10000x1000 60.9 68.5 0.89 58.0 1.05 67.3 0.90
10000x4000 76.0 75.4 1.01 68.1 1.12 75.2 1.01
100000x8 15.3 11.5 1.33 13.3 1.16 19.0 0.81
100000x64 18.6 8.9 2.13 20.0 0.93 8.5 2.18
100000x256 36.4 20.4 1.80 35.1 1.04 34.7 1.05
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.14 0.2 0.54 0.0 2.27
3x3x1 0.2 0.2 1.17 0.3 0.56 0.1 2.30
4x4x1 0.3 0.3 1.15 0.5 0.51 0.1 2.24
6x6x1 0.5 0.5 1.20 1.0 0.50 0.2 2.19
8x8x1 0.8 0.7 1.25 1.6 0.50 0.4 2.10
12x12x1 1.5 1.2 1.29 2.9 0.51 0.8 1.92
16x16x1 2.5 1.8 1.40 4.0 0.60 1.3 1.91
24x24x1 4.0 3.0 1.34 6.1 0.64 2.6 1.57
32x32x1 6.2 4.3 1.48 6.7 0.92 4.0 1.55
48x48x1 10.6 7.4 1.45 10.7 0.98 7.8 1.36
64x64x1 15.3 9.8 1.59 14.1 1.08 11.7 1.29
96x96x1 28.5 15.1 1.88 19.0 1.50 20.6 1.37
100x100x1 27.5 15.7 1.76 19.4 1.41 21.4 1.28
128x128x1 43.7 18.4 2.38 22.0 1.98 27.2 1.61
192x192x1 73.5 32.5 2.27 36.6 1.99 33.6 2.19
200x200x1 72.7 37.3 1.96 37.1 1.95 34.5 2.11
256x256x1 96.2 39.5 2.46 43.9 2.17 41.4 2.32
257x257x1 88.9 50.8 1.77 49.3 1.80 48.1 1.85
384x384x1 137.3 71.2 1.92 69.0 1.99 77.0 1.79
500x500x1 155.2 92.0 1.69 79.7 1.94 99.0 1.57
512x512x1 157.1 67.5 2.32 62.0 2.54 72.9 2.17
768x768x1 190.3 100.5 1.89 83.8 2.32 110.1 1.71
1000x1000x1 203.8 136.4 1.47 102.7 1.99 158.5 1.29
1001x1001x1 198.7 134.1 1.45 98.7 2.02 149.2 1.33
1024x1024x1 195.5 76.3 2.56 66.2 2.97 83.2 2.35
1536x1536x1 225.9 123.8 1.84 92.3 2.31 141.4 1.60
2048x2048x1 225.3 103.8 2.18 82.9 2.52 117.8 1.91
3072x3072x1 186.0 118.9 1.56 92.7 2.01 110.6 1.71
4096x4096x1 146.5 117.0 1.27 96.1 1.52 79.0 1.83
4097x4097x1 163.3 137.8 1.23 106.9 1.53 105.6 1.54
1024x1024x16 182.4 77.3 2.36 66.3 2.77 84.0 2.16
1024x1024x64 185.0 78.0 2.38 61.1 3.01 84.5 2.19
1024x1024x256 193.1 81.3 2.38 64.0 3.01 88.9 2.17
4096x8x1 60.3 7.8 7.76 24.4 2.46 39.6 1.52
4096x64x1 103.5 30.2 3.43 45.0 2.29 58.6 1.77
4096x256x1 160.3 64.7 2.48 74.3 2.16 88.5 1.80
4096x256x16 136.3 66.9 2.04 58.3 2.22 92.4 1.50
4096x256x64 155.0 74.4 2.08 46.5 3.14 104.7 1.48
4096x256x256 191.7 72.9 2.63 66.4 2.77 104.8 1.83
4096x256x1024 200.1 90.2 2.21 93.0 2.15 130.2 1.55
4096x1024x1 208.0 119.6 1.74 97.4 2.17 135.3 1.53
10000x8x1 57.3 7.8 7.33 25.3 2.27 41.4 1.37
10000x100x1 123.2 30.1 4.10 60.3 2.04 42.1 2.94
10000x1000x1 148.9 126.2 1.18 101.9 1.46 146.2 1.04
10000x4000x1 153.2 139.8 1.09 115.2 1.33 155.7 1.00
100000x8x1 34.1 7.5 5.25 24.5 1.37 31.5 1.08
100000x64x1 58.9 20.0 2.97 37.6 1.52 28.6 2.06
100000x256x1 62.9 37.3 1.76 45.9 1.34 49.0 1.28
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.08 0.2 0.58 0.1 1.48
3x3x1 0.2 0.2 1.09 0.3 0.57 0.2 1.16
4x4x1 0.3 0.3 1.12 0.5 0.58 0.3 1.02
6x6x1 0.5 0.4 1.21 0.9 0.57 0.6 0.89
8x8x1 0.8 0.7 1.24 1.4 0.58 1.1 0.76
12x12x1 1.6 1.2 1.29 2.5 0.62 2.5 0.63
16x16x1 2.6 1.8 1.45 3.7 0.68 4.2 0.62
24x24x1 4.4 3.2 1.36 4.8 0.88 8.0 0.54
32x32x1 6.3 4.7 1.37 6.8 0.91 11.4 0.55
48x48x1 10.6 7.6 1.39 8.5 1.23 16.3 0.65
64x64x1 14.6 10.2 1.46 10.4 1.40 21.2 0.69
96x96x1 25.6 13.7 1.88 12.7 2.01 25.3 1.01
100x100x1 24.9 13.9 1.81 12.9 1.93 25.4 0.98
128x128x1 36.5 15.0 2.43 17.2 2.13 11.5 3.18
192x192x1 54.5 25.0 2.18 26.1 2.05 14.5 3.76
200x200x1 53.7 29.2 1.85 27.5 1.93 14.1 3.82
256x256x1 65.1 27.7 2.37 27.5 2.37 18.8 3.46
257x257x1 62.5 36.0 1.74 31.8 1.92 17.1 3.65
384x384x1 80.5 42.2 1.91 35.9 2.23 26.5 3.04
500x500x1 82.4 58.1 1.44 44.8 1.84 30.9 2.67
512x512x1 80.5 37.9 2.13 31.0 2.52 31.5 2.69
768x768x1 98.4 56.6 1.74 44.8 2.07 43.4 2.30
1000x1000x1 104.8 75.8 1.38 54.7 1.91 50.6 2.10
1001x1001x1 101.9 74.8 1.36 53.4 1.90 49.6 2.07
1024x1024x1 102.6 55.4 1.85 42.0 2.44 49.7 2.08
1536x1536x1 105.9 65.0 1.63 46.5 2.29 58.7 1.79
2048x2048x1 90.0 65.7 1.37 48.1 1.90 64.6 1.36
3072x3072x1 73.9 62.4 1.18 51.9 1.42 65.0 1.15
4096x4096x1 65.6 53.2 1.23 45.1 1.46 59.2 1.04
4097x4097x1 76.1 75.1 1.05 61.3 1.24 52.1 1.42
1024x1024x16 97.4 56.5 1.72 37.9 2.58 50.6 1.92
1024x1024x64 99.2 56.4 1.76 38.4 2.60 51.2 1.92
1024x1024x256 103.4 57.9 1.79 40.3 2.57 56.3 1.83
4096x8x1 26.8 6.1 4.45 12.8 2.06 26.4 1.02
4096x64x1 42.4 16.3 2.58 23.9 1.77 23.9 1.79
4096x256x1 82.2 34.9 2.37 41.7 1.97 61.9 1.32
4096x256x16 62.5 36.1 1.73 38.3 1.76 64.7 0.97
4096x256x64 72.0 41.2 1.73 42.0 1.72 67.9 1.12
4096x256x256 86.2 48.0 1.77 49.3 1.75 61.6 1.50
4096x256x1024 58.6 55.9 1.04 51.9 1.13 50.6 1.16
4096x1024x1 77.8 68.0 1.16 51.3 1.51 67.8 1.15
10000x8x1 26.9 5.9 4.53 12.6 2.13 25.9 1.05
10000x100x1 55.2 16.2 3.41 30.9 1.80 20.5 2.68
10000x1000x1 59.4 63.1 0.94 55.4 1.06 66.1 0.91
10000x4000x1 75.6 73.4 1.03 66.0 1.14 75.8 1.00
100000x8x1 15.2 5.3 2.89 11.2 1.35 14.6 1.05
100000x64x1 18.1 7.5 2.36 16.9 1.07 8.7 2.11
100000x256x1 35.4 17.8 1.98 31.8 1.15 29.6 1.20
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.7 0.6 1.32 0.6 1.25 0.3 2.14
3 0.7 0.5 1.43 0.5 1.31 0.3 2.52
4 1.0 0.7 1.43 0.8 1.19 0.4 2.24
6 1.4 1.2 1.13 1.5 0.96 0.7 1.93
8 2.0 1.6 1.25 2.1 0.96 1.1 1.86
12 3.2 2.7 1.17 3.7 0.86 2.0 1.57
16 4.6 3.4 1.34 5.1 0.91 3.0 1.53
24 6.8 5.1 1.35 8.0 0.86 5.1 1.34
32 9.4 6.4 1.46 10.6 0.87 7.4 1.27
48 14.0 9.2 1.53 14.6 0.97 9.9 1.40
64 18.7 11.0 1.69 18.5 1.01 14.4 1.28
96 28.5 14.0 2.05 25.6 1.10 22.3 1.28
100 28.8 14.0 2.06 25.4 1.13 21.9 1.31
128 38.0 15.6 2.43 29.1 1.31 29.1 1.31
192 54.7 17.9 3.06 38.3 1.43 41.1 1.33
200 55.8 18.2 3.06 38.0 1.47 42.0 1.33
256 68.3 19.1 3.57 42.9 1.59 50.5 1.35
257 63.7 19.6 3.26 43.7 1.46 48.0 1.32
384 89.8 21.1 4.25 55.7 1.63 69.4 1.29
500 94.9 22.0 4.30 62.5 1.53 75.2 1.26
512 98.4 21.5 4.61 60.7 1.62 76.5 1.29
768 110.2 22.8 4.83 71.1 1.55 90.4 1.21
1000 106.5 23.3 4.61 75.6 1.41 97.7 1.08
1001 101.7 23.7 4.27 73.7 1.38 80.0 1.27
1024 100.1 22.7 4.42 68.5 1.45 92.0 1.10
1536 118.7 23.9 4.97 78.0 1.53 108.7 1.07
2048 114.0 23.7 4.77 75.1 1.52 114.3 1.01
SYEV double
n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2 0.7 0.6 1.28 0.5 1.39 0.4 1.70
3 0.6 0.4 1.30 0.4 1.25 0.3 1.98
4 0.8 0.6 1.23 0.7 1.14 0.5 1.63
6 1.2 1.0 1.18 1.1 1.07 0.8 1.45
8 1.6 1.4 1.16 1.6 1.00 1.2 1.34
12 2.6 2.2 1.18 2.7 0.95 2.2 1.16
16 3.6 3.0 1.19 3.8 0.94 3.2 1.13
24 5.4 4.5 1.21 5.7 0.94 5.2 1.04
32 7.3 5.7 1.28 7.4 1.00 7.1 1.02
48 11.0 7.5 1.45 9.9 1.11 9.7 1.13
64 14.5 9.1 1.59 12.0 1.23 13.2 1.10
96 21.0 11.0 1.92 16.1 1.29 18.4 1.14
100 21.5 11.1 1.94 15.8 1.36 18.3 1.17
128 26.1 12.3 2.12 17.7 1.48 22.3 1.17
192 35.7 14.5 2.46 22.7 1.57 29.5 1.21
200 36.8 14.7 2.50 22.5 1.64 30.3 1.21
256 40.7 15.3 2.66 24.5 1.66 33.5 1.21
257 39.4 15.6 2.53 24.8 1.59 33.7 1.17
384 50.0 16.9 2.95 29.4 1.71 40.9 1.22
500 47.6 17.9 2.66 31.4 1.52 44.7 1.07
512 46.0 17.2 2.67 28.9 1.62 41.6 1.10
768 50.7 18.6 2.82 33.5 1.51 48.0 1.06
1000 57.0 19.2 2.95 41.0 1.41 52.5 1.09
1001 51.0 19.0 2.69 40.2 1.27 45.3 1.11
1024 53.6 18.7 2.81 37.8 1.42 50.9 1.07
1536 51.8 18.6 2.78 41.0 1.24 53.3 1.00
2048 32.6 16.7 1.95 41.0 0.81 33.5 0.97
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.47 0.3 7.21 0.1 16.58
3x3 1.7 0.5 3.54 0.6 2.83 0.3 5.89
4x4 1.8 0.8 2.34 0.9 1.98 0.5 3.70
6x6 1.9 1.4 1.36 1.6 1.22 0.9 2.12
8x8 2.1 2.2 0.95 2.5 0.83 1.5 1.42
12x12 2.6 3.6 0.72 4.4 0.59 2.7 0.94
16x16 4.3 5.1 0.85 6.3 0.68 4.3 1.02
24x24 6.3 7.4 0.85 9.4 0.67 7.0 0.90
32x32 9.8 12.4 0.79 13.1 0.75 10.8 0.91
48x48 16.4 19.9 0.82 20.6 0.80 14.6 1.14
64x64 24.0 31.7 0.77 30.4 0.79 23.5 1.01
96x96 41.9 48.7 0.86 43.0 0.96 42.1 1.00
100x100 43.5 50.9 0.84 44.2 0.98 41.0 1.06
128x128 55.5 64.9 0.86 52.4 1.05 57.4 0.97
192x192 90.6 103.1 0.88 73.9 1.22 92.9 0.98
200x200 93.5 107.9 0.86 75.4 1.24 94.6 0.99
256x256 107.3 113.4 0.95 79.3 1.35 107.3 1.00
257x257 118.1 138.6 0.86 89.6 1.32 119.3 0.98
384x384 165.5 177.5 0.93 108.1 1.53 161.9 1.03
500x500 192.0 218.6 0.88 122.1 1.56 184.1 1.04
512x512 157.8 144.5 1.09 94.7 1.67 146.0 1.09
768x768 212.6 212.2 1.02 122.7 1.72 189.9 1.12
1000x1000 247.6 278.4 0.88 144.1 1.72 214.4 1.16
1001x1001 243.2 275.9 0.87 142.3 1.71 212.8 1.15
1024x1024 176.4 138.0 1.28 97.4 1.68 138.8 1.30
1536x1536 237.9 220.5 1.08 133.3 1.82 198.1 1.18
2048x2048 220.7 184.1 1.18 116.2 1.94 175.0 1.26
4096x64 235.0 109.8 2.03 125.0 1.88 149.1 1.60
4096x256 324.0 194.9 1.68 156.1 2.06 223.9 1.45
4096x1024 268.7 204.3 1.32 134.2 2.14 212.7 1.26
10000x8 84.8 41.2 2.06 81.1 1.05 126.9 0.67
10000x100 282.8 117.1 2.42 155.9 1.80 130.5 2.17
10000x1000 292.9 329.1 0.89 194.7 1.52 327.1 0.90
GESDD double
m×n Eigen GFLOP/s OpenBLAS GFLOP/s Eigen ÷ OpenBLAS Intel oneMKL GFLOP/s Eigen ÷ Intel oneMKL AOCL-BLIS GFLOP/s Eigen ÷ AOCL-BLIS
2x2 2.2 0.3 8.70 0.3 6.92 1.7 1.38
3x3 1.2 0.4 2.69 0.5 2.41 1.0 1.07
4x4 1.2 0.7 1.69 0.8 1.56 1.3 0.94
6x6 1.4 1.2 1.12 1.2 1.10 2.1 0.66
8x8 1.6 1.8 0.86 1.9 0.85 2.9 0.55
12x12 1.9 3.0 0.64 3.3 0.60 4.5 0.44
16x16 3.6 4.3 0.84 4.5 0.78 6.1 0.59
24x24 5.1 6.2 0.83 6.6 0.78 8.8 0.58
32x32 7.6 10.5 0.72 9.7 0.78 10.9 0.69
48x48 12.7 15.9 0.80 14.0 0.90 14.7 0.88
64x64 17.8 25.2 0.71 20.0 0.86 23.3 0.77
96x96 28.5 36.7 0.78 27.4 1.04 37.0 0.77
100x100 29.0 37.1 0.79 27.8 1.04 37.2 0.78
128x128 36.0 43.4 0.83 32.2 1.12 45.5 0.79
192x192 56.5 65.3 0.86 47.5 1.19 69.6 0.82
200x200 59.3 69.9 0.85 49.9 1.19 73.0 0.81
256x256 63.6 64.2 0.99 47.6 1.34 69.4 0.92
257x257 71.4 83.6 0.85 57.8 1.24 86.2 0.83
384x384 90.3 90.0 1.01 66.4 1.34 98.9 0.91
500x500 104.3 111.7 0.93 81.4 1.27 116.5 0.91
512x512 76.1 67.1 1.18 52.1 1.42 70.8 1.07
768x768 109.2 102.6 1.06 80.1 1.38 111.8 0.98
1000x1000 130.2 137.8 0.94 97.4 1.40 152.2 0.84
1001x1001 130.0 134.8 0.96 95.0 1.41 146.2 0.87
1024x1024 100.5 87.3 1.15 72.6 1.41 92.4 1.08
1536x1536 115.0 100.2 1.15 80.5 1.46 106.1 1.08
2048x2048 86.9 88.5 0.97 68.4 1.27 86.7 1.07
4096x64 118.9 57.9 2.05 67.1 1.75 69.1 1.72
4096x256 160.0 102.4 1.56 84.8 1.90 117.3 1.27
4096x1024 121.1 117.5 1.02 84.1 1.47 123.0 0.98
10000x8 38.7 30.2 1.31 42.0 0.92 88.8 0.38
10000x100 126.4 56.0 2.26 79.9 1.59 65.4 1.91
10000x1000 140.2 158.8 0.88 112.7 1.24 157.9 0.89
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.1 0.3 6.32 0.3 6.25 0.1 20.07
3 1.4 0.5 2.88 0.5 2.94 0.2 7.09
4 1.9 0.7 2.32 0.9 2.24 0.4 5.42
6 2.9 1.4 2.09 1.6 1.79 0.7 4.09
8 3.8 1.9 1.96 2.5 1.59 1.1 3.48
12 5.7 3.1 1.82 3.7 1.53 2.0 2.92
16 8.8 4.1 2.13 5.4 1.64 2.8 3.16
24 11.4 5.9 1.91 7.6 1.57 4.7 2.43
32 16.2 7.3 2.17 9.9 1.67 6.3 2.57
48 21.0 9.9 2.11 13.3 1.58 9.7 2.18
64 24.5 12.1 2.01 15.3 1.61 12.8 1.92
96 29.9 13.2 2.26 15.5 1.97 12.3 2.38
100 27.7 13.7 1.99 16.0 1.73 12.8 2.24
128 31.6 16.7 1.91 20.3 1.56 16.6 1.89
192 36.0 34.4 1.05 32.0 1.14 27.9 1.27
200 36.2 35.7 0.98 33.0 1.10 28.7 1.28
256 37.0 44.7 0.82 41.4 0.89 36.9 1.00
257 37.5 46.3 0.79 41.0 0.91 39.0 0.97
384 39.7 68.7 0.58 63.1 0.65 60.5 0.65
500 41.2 84.0 0.49 77.0 0.53 79.4 0.52
512 38.0 38.6 0.98 40.9 0.88 40.3 0.95
768 43.3 96.0 0.44 84.1 0.52 88.1 0.49
1000 43.6 133.5 0.33 115.0 0.38 129.9 0.35
1001 42.2 134.7 0.31 110.7 0.38 130.0 0.33
1024 12.1 62.4 0.19 57.7 0.21 58.9 0.21
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.1 0.3 6.11 1.2 1.68 0.2 13.84
3 1.2 0.4 2.69 1.1 1.05 0.3 4.28
4 1.6 0.7 2.49 1.2 1.30 0.5 3.22
6 2.3 1.1 2.03 2.0 1.12 0.9 2.53
8 3.3 1.6 2.09 2.9 1.16 1.4 2.28
12 4.9 2.6 1.88 3.8 1.26 2.5 1.99
16 7.0 3.5 2.01 4.8 1.45 3.5 2.05
24 10.2 5.0 2.03 6.3 1.64 5.4 1.89
32 12.5 6.3 1.97 7.1 1.75 7.2 1.73
48 16.7 8.4 2.00 8.1 2.04 10.4 1.60
64 18.3 9.9 1.84 9.0 2.08 12.6 1.45
96 22.3 9.4 2.32 10.2 2.20 11.8 1.90
100 20.5 9.5 2.19 10.1 2.04 12.0 1.70
128 22.3 11.3 1.97 12.7 1.76 14.5 1.54
192 25.3 21.0 1.21 18.6 1.34 24.4 1.03
200 25.9 22.5 1.15 19.0 1.36 26.2 0.99
256 23.8 23.1 1.02 20.4 1.17 27.2 0.88
257 23.6 26.7 0.88 23.9 0.98 30.9 0.77
384 26.3 37.8 0.68 33.7 0.78 44.8 0.59
500 25.7 46.4 0.55 41.5 0.62 55.1 0.46
512 14.3 17.0 0.84 10.7 1.34 17.1 0.83
768 21.5 36.0 0.60 31.6 0.68 42.8 0.50
1000 26.9 69.6 0.39 60.0 0.44 85.4 0.32
1001 24.5 68.1 0.36 58.6 0.42 81.7 0.30
1024 12.7 36.6 0.36 23.1 0.55 37.5 0.33