Eigen vs. BLAS/LAPACK libraries, NVIDIA Grace with NEON (October 2026)
The operations and shapes of the Zen 5 and Apple M4 pages measured on one core of an NVIDIA Grace, the 72-core Arm Neoverse V2 server CPU, with Eigen built for NEON, the default on AArch64, against the three BLAS/LAPACK libraries with tuned kernels for this CPU: Arm Performance Libraries, NVIDIA Performance Libraries (NVPL) and OpenBLAS. The SVE page has the same cells with Eigen built for SVE at the 128-bit vector length of this CPU.
Measured again in October 2026 at Eigen master 210e0a609, with OpenBLAS 0.3.34 in place of Ubuntu’s
0.3.26; Arm Performance Libraries and NVPL are unchanged and repeat their September rates within 0.1 %
in geometric mean. Against September, Eigen’s TRSM is 3 to 26 % faster from n = 16 on, its GEEV 1 to 7 %
faster from n = 192 on, and its smallest GEMMs (n = 2 to 6) 11 to 22 % slower; every other operation is
within 2 % in geometric mean.
Conditions
| CPU | NVIDIA Grace, 72 Arm Neoverse V2 cores in one socket (lscpu: Neoverse-V2, CPU part 0xd4f); per core L1d 64 KiB and L2 1 MiB, an L3 of 114 MiB shared by all cores; 494 GiB of memory; SVE2 at a 128-bit vector length, bf16, i8mm; 64 KiB kernel pages |
| OS | Ubuntu 24.04.4 LTS, Linux 6.14.0-1015-nvidia-64k |
| Compiler | GCC 13.3.0, -O3 -DNDEBUG for the default armv8-a target, no -mcpu or -march, C++17 |
| Eigen | master 210e0a609 (5.0.1-dev) with the harness commit of merge request !2903 and the Grace profile on top (916370756 on the author’s fork branch benchmark-comparison-harness-grace-2026-10), default configuration, no external BLAS. Eigen selects SVE only when asked (EIGEN_ARM64_USE_SVE), so every kernel here is the NEON code |
| Arm Performance Libraries | 26.07 (reports 26.7.0 release), the GCC build from Arm’s deb installer, the sequential LP64 library libarmpl_lp64 |
| NVPL | NVIDIA Performance Libraries 26.5, nvpl_blas 0.6.0 and nvpl_lapack 0.4.0.1 from the redistributable archives, the sequential LP64 libraries libnvpl_blas_lp64_seq and libnvpl_lapack_lp64_seq |
| OpenBLAS | 0.3.34, built from the release tarball with GCC and gfortran 13.3 (make TARGET=NEOVERSEV2 USE_OPENMP=0 NUM_THREADS=72, pthread build); kernel target NEOVERSEV2, as the library reports at run time; its LAPACK is the reference LAPACK it bundles. The September measurement used Ubuntu 24.04’s packaged 0.3.26, which predates a Neoverse V2 target and ran its Neoverse V1 kernels |
| Interface | every library is called through the Fortran BLAS and LAPACK symbols (dgemm_, dpotrf_, …) with column-major operands, from one set of declarations shared by the three |
| Threads | 1 for every arm: ARMPL_NUM_THREADS, NVPL_BLAS_NUM_THREADS, NVPL_LAPACK_NUM_THREADS, OPENBLAS_NUM_THREADS and OMP_NUM_THREADS all set to 1; Eigen built without OpenMP |
| Method | Google Benchmark 1.9.5, 10 repetitions of at least 0.2 s each per cell, median of the 10 rates; the process pinned to one core (taskset -c 8) |
| Date | 2026-10-02 to 2026-10-03 (36 runs, about 7.7 hours of measurement) |
| Harness | benchmarks/comparison/run.py from Eigen merge request !2903, machine profile neoverse-v2-72c |
GEMM at n = 1024 ran at 35 GFLOP/s in double and 84 in float in Eigen, against 45 and 94 for Arm Performance Libraries, 45 and 95 for NVPL, and 39 and 84 for OpenBLAS.
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 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 82 % of the cells, within 5 % for 90 % and above 10 % for 3.5 %. The widest are AXPY and DOT cells where one of the three binaries runs up to 30 % slower than the other two (DOT in float at n = 3: 4.4 against 5.8 and 6.3 GFLOP/s), a binary-dependent effect rather than noise.
Each run covered one operation against one library. The machine is a shared server that was otherwise idle: a run started only once the whole machine had used less than 0.5 of a core over a 5 s window, and the load average before and after each run is in its result file: between 0.92 and 1.13 for 30 of the 36 runs, which is the run’s own core. Before the first run it was 2.23, the tail of the builds that preceded it, with the CPU already idle. Four runs in the NVPL binary (AXPY, DOT, GEMV and GEEV) saw 1.14 to 1.80, so another process was awake for part of them, and the OpenBLAS AXPY run started at 1.19 just after the last of them; NVPL’s rows from those runs repeat the September measurement within 0.6 % in geometric mean, and their Eigen cells agree with the other two passes within 1 %. None of the 36 runs had to be repeated, and no cell errored.
The libraries select their kernels at run time from the CPU they find themselves on, so they run whatever they choose for the Neoverse V2, SVE or NEON; only Eigen is held to NEON on this page, and to SVE on the SVE page. The library rows are the same on both.
For the eigenvalue and singular value decompositions the operation count is the one of the classical algorithm, so a divide-and-conquer or blocked implementation is credited with work it does not do; the ratios between arms are unaffected.
The dotted vertical lines on the charts mark the sizes at which the operands of the call, inputs and outputs together, fill the core’s L1 data cache (64 KiB), its L2 (1 MiB) and the shared L3 (114 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, so the ratios at the small end are ratios of fixed costs. The DOT cells in double at n = 2 show it directly: 0.95 ns per call for Eigen against 6.3 ns for Arm Performance Libraries, 4.1 ns for OpenBLAS and 28.9 ns for NVPL. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.
In double, Eigen runs at 0.83 to 0.97 of Arm Performance Libraries from n = 192 to 6144 and at 0.73 to 0.86 of OpenBLAS in L1 (n = 128 to 2048), then leads OpenBLAS by 4 to 12 % from n = 4096 through L2. In float Eigen leads OpenBLAS by 9 to 31 % above n = 512 and runs at 0.86 to 0.90 of Arm Performance Libraries from n = 512 to 8192. From L3 into DRAM the four arms meet at the bandwidth of one core, 43 GB/s at n = (2^{24}) in double. NVPL’s cost per call puts Eigen 9x ahead of it at n ≤ 16.

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.
Eigen’s dot product is the fastest arm at every length up to n = 32768 and within 2 % at the L2 edge: 18.4 GFLOP/s at n = 1024 in double against 14.5 for Arm Performance Libraries, 12.7 for OpenBLAS and 6.0 for NVPL, whose DOT stays at or below 6.3 GFLOP/s through L2 and only meets the others where DRAM bandwidth binds.

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.
Beyond L2 the square shapes run at the memory bandwidth for every arm. From n = 192 on Eigen runs at 0.8 to 1.3x the two vendor libraries. OpenBLAS 0.3.34 leads Eigen from n = 500 on, with Eigen at 0.65 to 0.99 of it in both scalar types outside one cell each (double at n = 3072, float at n = 4096); below n = 192 Eigen leads it by 1.1 to 2.7x. At n ≤ 16 the call costs put Eigen 1.5 to 2.7x ahead of OpenBLAS, 3 to 6.5x ahead of Arm Performance Libraries and 4 to 12x ahead of NVPL.

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.
Eigen’s NEON kernel reaches 37 GFLOP/s in double and 84 in float from n = 128 on and holds that to n = 4096 and the 10000-by-4000 shapes. The two vendor libraries reach 45 and 94, a lead of 18 % in double and 8 to 11 % in float that Eigen does not close at any size above 64. OpenBLAS 0.3.34’s Neoverse V2 kernels reach 39 and 82: 6 % ahead of Eigen in double and even with it in float, where the 0.3.26 release of the September measurement trailed Eigen by 6 % and 17 %. At n ≤ 16 Eigen is 1.7 to 2.6x ahead of every library. Its own rate at n = 2 to 6 is 11 to 22 % lower than in September (n = 3 in double: 2.7 against 3.5 GFLOP/s; n = 2 in float: 1.05 against 1.33), a regression on master since then that leaves it ahead of every library at those sizes.

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.
Eigen’s TRSM is faster than in the September measurement: by 10 to 26 % from n = 16 to 384 and by 3 to 12 % above, since master solves whole diagonal blocks with the shared packet kernel (libeigen/eigen!3187); only n = 4 and 6 are 6 to 15 % slower. From n = 192 on Eigen now leads Arm Performance Libraries by 6 to 26 % up to n = 1024 in double and runs at 0.91 to 1.00 of it above, runs at 0.96 to 1.09 of OpenBLAS in double and 3 to 87 % ahead of it in float, and trails NVPL by 12 to 19 % in double from n = 1536 on. NVPL’s call cost dominates the smallest triangles, where Eigen is 31 to 39x faster.

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.
Eigen runs SYRK at 39 GFLOP/s in double at n = 1024, within 2 % of Arm Performance Libraries and of OpenBLAS and 14 % behind NVPL, which holds the same margin as in GEMM. At n ≤ 16 the vendor libraries' call costs put Eigen 3x (Arm Performance Libraries) to 10 to 13x (NVPL) ahead; OpenBLAS keeps pace there in float and is ahead in double (Eigen at 0.82 of it).

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.
LLT is ahead of the two vendor libraries from n = 24 to 1024, by 1.1 to 1.5x, and within a few percent
of them above, where NVPL’s potrf pulls ahead by 7 % in double at n ≥ 1536. OpenBLAS 0.3.34’s potrf is
the fastest arm in double from n = 24 to 1024, with LLT at 0.76 to 0.93 of it, runs at 0.95 to 1.11 of
LLT in float, and is even with it above n = 1536.

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.
PartialPivLU is 1.3 to 1.7x faster than Arm Performance Libraries between n = 24 and 1024 and even with
it above. NVPL’s getrf is the fastest arm at the largest sizes, with Eigen at 0.89 of it in double.
Against OpenBLAS 0.3.34 Eigen leads below n = 192 (1.1 to 2.2x) and in float, and runs at 0.90 to 0.92 of
it in double from n = 192 on.

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.
The one factorization the vendor libraries lead throughout: NVPL by 13 to 15 % in double at every size above 24, Arm Performance Libraries by 1.8x in double at n ≤ 16 (a fixed cost in Eigen’s small Householder QR) and by 10 % at the largest sizes, with Eigen ahead between 192 and 1024. Eigen leads OpenBLAS by 8 to 26 % except in double from n = 192 on, where it runs at 0.96 to 0.98 of it.

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,
where a call of SelfAdjointEigenSolver takes 5.6 s in double.
Eigen’s tridiagonal QR path is 1.3 to 1.7x faster than every library in double and 1.6 to 2.7x in float at every size, the largest lead on the page for a LAPACK routine.

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.
Below n = 128 the libraries’ divide and conquer is 1.4 to 1.6x ahead of BDCSVD in double (ratios of
0.63 to 0.71); from 192 to 2048 Eigen is 1.2 to 1.7x ahead of Arm Performance Libraries, 15 % behind NVPL
and 14 to 18 % behind OpenBLAS 0.3.34, which it matched in September.

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
3.6 s in double.
EigenSolver stops scaling at n = 128 and stays at 7 to 8.5 GFLOP/s in double, while the three libraries'
dgeev climb to 24 to 31 GFLOP/s at n = 1024, so Eigen is at 0.4x from n = 192 on, as on the Zen 5 and
Apple M4 pages. At n ≤ 16 Eigen leads by 2.3 to 3.7x. EigenSolver itself is faster than in September
from n = 192 on, by 2 to 6 % in double and 1 to 7 % in 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 | Arm Performance Libraries | 2.51 | 1.62 | 0.93 | 0.92 | 1.01 |
| AXPY | float | NVPL | 9.41 | 5.25 | 1.65 | 1.09 | 1.00 |
| AXPY | float | OpenBLAS | 1.63 | 1.33 | 1.12 | 1.20 | 1.07 |
| AXPY | double | Arm Performance Libraries | 2.49 | 1.32 | 0.86 | 0.94 | 0.99 |
| AXPY | double | NVPL | 9.37 | 3.29 | 1.32 | 1.04 | 0.99 |
| AXPY | double | OpenBLAS | 1.86 | 1.07 | 0.81 | 1.02 | 1.10 |
| DOT | float | Arm Performance Libraries | 5.89 | 1.96 | 1.37 | 1.21 | 1.00 |
| DOT | float | NVPL | 28.83 | 7.74 | 3.47 | 2.50 | 1.43 |
| DOT | float | OpenBLAS | 4.22 | 1.87 | 1.40 | 1.22 | 1.01 |
| DOT | double | Arm Performance Libraries | 4.87 | 1.64 | 1.30 | 1.17 | 1.05 |
| DOT | double | NVPL | 21.51 | 5.41 | 3.20 | 2.19 | 1.36 |
| DOT | double | OpenBLAS | 3.68 | 1.57 | 1.41 | 1.12 | 1.00 |
| GEMV | float | Arm Performance Libraries | 4.71 | 1.69 | 1.05 | 1.01 | – |
| GEMV | float | NVPL | 7.99 | 2.00 | 1.07 | 0.94 | – |
| GEMV | float | OpenBLAS | 2.01 | 1.58 | 0.91 | 0.87 | – |
| GEMV | double | Arm Performance Libraries | 4.37 | 1.52 | 1.02 | 1.00 | – |
| GEMV | double | NVPL | 7.28 | 1.68 | 1.01 | 0.94 | – |
| GEMV | double | OpenBLAS | 2.09 | 1.42 | 0.90 | 0.86 | – |
| GEMM | float | Arm Performance Libraries | 2.63 | 1.18 | 0.93 | 0.91 | – |
| GEMM | float | NVPL | 2.32 | 0.93 | 0.90 | 0.89 | – |
| GEMM | float | OpenBLAS | 1.71 | 1.01 | 1.02 | 1.02 | – |
| GEMM | double | Arm Performance Libraries | 2.47 | 1.06 | 0.85 | 0.80 | – |
| GEMM | double | NVPL | 2.56 | 0.92 | 0.84 | 0.82 | – |
| GEMM | double | OpenBLAS | 1.76 | 0.96 | 0.94 | 0.91 | – |
| TRSM | float | Arm Performance Libraries | 2.68 | 2.84 | 1.14 | 1.03 | – |
| TRSM | float | NVPL | 38.99 | 3.99 | 1.31 | 0.94 | – |
| TRSM | float | OpenBLAS | 2.94 | 3.24 | 1.45 | 1.07 | – |
| TRSM | double | Arm Performance Libraries | 2.06 | 1.96 | 1.13 | 0.95 | – |
| TRSM | double | NVPL | 31.11 | 2.46 | 1.05 | 0.87 | – |
| TRSM | double | OpenBLAS | 2.22 | 1.40 | 1.03 | 0.97 | – |
| SYRK | float | Arm Performance Libraries | 3.20 | 1.21 | 0.95 | 0.97 | – |
| SYRK | float | NVPL | 13.09 | 1.51 | 0.88 | 0.89 | – |
| SYRK | float | OpenBLAS | 0.99 | 0.98 | 0.98 | 1.01 | – |
| SYRK | double | Arm Performance Libraries | 2.78 | 0.99 | 0.91 | 0.99 | – |
| SYRK | double | NVPL | 10.28 | 1.15 | 0.85 | 0.87 | – |
| SYRK | double | OpenBLAS | 0.82 | 0.80 | 0.95 | 1.00 | – |
| POTRF | float | Arm Performance Libraries | 1.24 | 1.44 | 1.21 | 1.12 | – |
| POTRF | float | NVPL | 6.32 | 1.52 | 1.37 | 0.99 | – |
| POTRF | float | OpenBLAS | 1.51 | 0.95 | 1.11 | 1.00 | – |
| POTRF | double | Arm Performance Libraries | 1.18 | 1.19 | 1.10 | 1.06 | – |
| POTRF | double | NVPL | 5.18 | 1.24 | 1.14 | 0.93 | – |
| POTRF | double | OpenBLAS | 1.41 | 0.76 | 0.93 | 0.97 | – |
| GETRF | float | Arm Performance Libraries | 1.24 | 1.31 | 1.67 | 1.19 | – |
| GETRF | float | NVPL | 6.01 | 3.01 | 1.32 | 0.99 | – |
| GETRF | float | OpenBLAS | 2.19 | 1.66 | 1.18 | 1.02 | – |
| GETRF | double | Arm Performance Libraries | 1.01 | 1.40 | 1.56 | 1.01 | – |
| GETRF | double | NVPL | 5.64 | 2.14 | 1.07 | 0.89 | – |
| GETRF | double | OpenBLAS | 1.98 | 1.08 | 0.90 | 0.92 | – |
| GEQRF | float | Arm Performance Libraries | 0.63 | 0.91 | 1.43 | 1.06 | – |
| GEQRF | float | NVPL | 0.88 | 0.83 | 0.97 | 0.93 | – |
| GEQRF | float | OpenBLAS | 1.26 | 1.19 | 1.08 | 1.10 | – |
| GEQRF | double | Arm Performance Libraries | 0.55 | 0.91 | 1.07 | 0.90 | – |
| GEQRF | double | NVPL | 0.84 | 0.85 | 0.87 | 0.86 | – |
| GEQRF | double | OpenBLAS | 1.21 | 1.21 | 0.96 | 0.98 | – |
| SYEV | float | Arm Performance Libraries | 2.01 | 1.98 | 2.49 | 2.70 | – |
| SYEV | float | NVPL | 2.05 | 2.03 | 2.30 | 2.28 | – |
| SYEV | float | OpenBLAS | 1.61 | 1.90 | 2.31 | 2.34 | – |
| SYEV | double | Arm Performance Libraries | 1.73 | 1.43 | 1.59 | 1.63 | – |
| SYEV | double | NVPL | 1.75 | 1.47 | 1.39 | 1.27 | – |
| SYEV | double | OpenBLAS | 1.43 | 1.41 | 1.41 | 1.30 | – |
| GESDD | float | Arm Performance Libraries | 1.98 | 0.90 | 1.44 | 1.79 | – |
| GESDD | float | NVPL | 2.09 | 1.00 | 1.08 | 1.02 | – |
| GESDD | float | OpenBLAS | 1.64 | 0.84 | 1.05 | 1.03 | – |
| GESDD | double | Arm Performance Libraries | 1.56 | 0.68 | 1.17 | 1.70 | – |
| GESDD | double | NVPL | 1.67 | 0.71 | 0.84 | 0.86 | – |
| GESDD | double | OpenBLAS | 1.34 | 0.63 | 0.82 | 0.86 | – |
| GEEV | float | Arm Performance Libraries | 2.75 | 1.13 | 0.46 | – | – |
| GEEV | float | NVPL | 3.71 | 1.70 | 0.46 | – | – |
| GEEV | float | OpenBLAS | 2.51 | 1.36 | 0.42 | – | – |
| GEEV | double | Arm Performance Libraries | 2.30 | 0.96 | 0.44 | – | – |
| GEEV | double | NVPL | 3.46 | 1.33 | 0.40 | – | – |
| GEEV | double | OpenBLAS | 2.40 | 1.12 | 0.38 | – | – |
Caveats
- The libraries are not held to NEON: each selects its kernels at run time for the CPU it finds, so the library rows here and on the SVE page are the same measurements, and only Eigen’s build differs between the two pages.
- OpenBLAS 0.3.34 is built from source for the Neoverse V2 target. Ubuntu 24.04’s packaged 0.3.26, what
apt install libopenblas-devgives and what the September measurement used, predates that target and runs its Neoverse V1 kernels; the newer release is 16 % faster across the cells in geometric mean, most in GEMV (1.5x) and POTRF (1.3 to 1.4x). - NVPL’s fixed cost per call, 29 ns for AXPY and DOT at n = 2 against 3 and 1 ns for Eigen, sets its ratios at the smallest sizes; those cells say nothing about its kernels.
- The machine is a shared 72-core server. Every run took place with the rest of the machine idle,
gated on measured CPU use rather than on the harness’s 1-minute load average, which still carried
the previous run’s own core when the next run was due; the result files therefore record
allow_noisy: truetogether with the load average before and after each run. - Eigen was compiled for the Armv8-A baseline that GCC targets by default;
-mcpu=neoverse-v2was not tried, and would change the compiler’s scheduling rather than Eigen’s kernels. - The kernel runs with 64 KiB pages, so the TLB reaches eight times further than on a 4 KiB-page system; rates at the largest sizes may not transfer to such a system.
Full tables
GFLOP/s per shape and library, with the Eigen ÷ library ratio: Eigen’s median over its three passes against the library’s rate from the same binary.
AXPY float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 1.3 | 0.5 | 2.78 | 0.1 | 9.30 | 0.8 | 1.50 |
| 3 | 1.9 | 0.7 | 2.70 | 0.2 | 9.38 | 1.2 | 1.61 |
| 4 | 2.5 | 1.1 | 2.30 | 0.3 | 9.21 | 1.4 | 1.81 |
| 6 | 3.8 | 1.5 | 2.60 | 0.4 | 9.54 | 1.8 | 2.15 |
| 8 | 5.0 | 2.2 | 2.30 | 0.5 | 9.36 | 3.9 | 1.30 |
| 12 | 7.6 | 3.0 | 2.50 | 0.8 | 9.50 | 4.4 | 1.70 |
| 16 | 10.1 | 4.2 | 2.40 | 1.0 | 9.61 | 7.0 | 1.45 |
| 24 | 15.0 | 5.8 | 2.57 | 1.5 | 9.72 | 9.5 | 1.58 |
| 32 | 16.8 | 7.2 | 2.33 | 2.0 | 8.42 | 11.2 | 1.50 |
| 48 | 18.9 | 9.8 | 1.93 | 2.8 | 6.66 | 13.7 | 1.38 |
| 64 | 18.1 | 11.2 | 1.51 | 3.6 | 4.98 | 15.2 | 1.23 |
| 96 | 20.5 | 15.0 | 1.37 | 5.0 | 3.58 | 16.8 | 1.22 |
| 100 | 17.6 | 15.0 | 1.00 | 5.2 | 3.41 | 15.8 | 1.31 |
| 128 | 20.8 | 17.3 | 1.21 | 6.3 | 3.31 | 17.6 | 1.17 |
| 192 | 21.9 | 19.7 | 1.11 | 8.1 | 2.69 | 19.0 | 1.16 |
| 256 | 21.0 | 21.6 | 0.97 | 9.5 | 2.14 | 17.4 | 1.27 |
| 384 | 23.5 | 23.7 | 1.00 | 12.3 | 1.91 | 20.1 | 1.01 |
| 512 | 22.1 | 24.9 | 0.89 | 14.1 | 1.57 | 20.3 | 1.09 |
| 768 | 22.8 | 26.2 | 0.88 | 15.8 | 1.44 | 20.7 | 1.10 |
| 1000 | 23.6 | 26.8 | 0.88 | 18.0 | 1.31 | 21.0 | 1.12 |
| 1001 | 23.5 | 26.7 | 0.88 | 17.9 | 1.31 | 21.0 | 1.12 |
| 1024 | 23.6 | 26.8 | 0.88 | 18.1 | 1.30 | 20.9 | 1.13 |
| 1536 | 23.6 | 27.6 | 0.86 | 19.2 | 1.23 | 20.9 | 1.13 |
| 2048 | 24.0 | 27.3 | 0.88 | 20.4 | 1.17 | 21.3 | 1.13 |
| 3072 | 24.4 | 27.9 | 0.88 | 21.8 | 1.12 | 21.2 | 1.15 |
| 4096 | 24.6 | 28.1 | 0.88 | 22.5 | 1.09 | 21.2 | 1.16 |
| 6144 | 24.8 | 27.6 | 0.90 | 23.4 | 1.06 | 19.6 | 1.26 |
| 8192 | 24.7 | 27.5 | 0.90 | 23.7 | 1.04 | 20.3 | 1.21 |
| 10000 | 23.7 | 24.5 | 0.97 | 23.2 | 1.03 | 18.1 | 1.31 |
| 12288 | 23.4 | 23.0 | 1.02 | 23.2 | 1.03 | 18.9 | 1.24 |
| 16384 | 20.3 | 20.0 | 1.02 | 19.8 | 1.02 | 16.4 | 1.24 |
| 32768 | 20.3 | 20.1 | 0.99 | 20.2 | 1.01 | 16.5 | 1.23 |
| 65536 | 19.7 | 17.7 | 1.01 | 19.9 | 1.01 | 16.5 | 1.20 |
| 100000 | 17.5 | 17.8 | 1.03 | 17.3 | 1.02 | 15.8 | 1.10 |
| 131072 | 19.0 | 19.1 | 1.02 | 18.7 | 0.99 | 16.3 | 1.16 |
| 262144 | 19.3 | 19.1 | 1.01 | 19.1 | 1.01 | 16.4 | 1.16 |
| 524288 | 16.4 | 16.4 | 0.99 | 16.3 | 1.01 | 16.2 | 1.01 |
| 1000000 | 15.0 | 15.1 | 0.99 | 15.8 | 0.98 | 14.3 | 1.01 |
| 1048576 | 15.8 | 15.8 | 1.00 | 15.5 | 1.02 | 16.0 | 0.98 |
| 2097152 | 15.5 | 15.2 | 1.02 | 12.1 | 1.00 | 14.9 | 1.04 |
| 4194304 | 14.5 | 14.4 | 1.01 | 14.2 | 1.00 | 14.5 | 1.00 |
| 8388608 | 12.5 | 12.2 | 1.02 | 12.4 | 1.00 | 12.3 | 1.02 |
| 16777216 | 9.0 | 9.0 | 1.00 | 9.1 | 0.99 | 9.0 | 1.01 |
AXPY double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 1.3 | 0.5 | 2.40 | 0.1 | 9.30 | 0.9 | 1.38 |
| 3 | 1.9 | 0.7 | 2.60 | 0.2 | 9.41 | 1.2 | 1.51 |
| 4 | 2.5 | 1.1 | 2.40 | 0.3 | 9.35 | 1.5 | 1.74 |
| 6 | 3.8 | 1.5 | 2.60 | 0.4 | 9.44 | 2.1 | 1.80 |
| 8 | 5.0 | 2.1 | 2.40 | 0.5 | 9.60 | 2.5 | 2.00 |
| 12 | 7.5 | 2.8 | 2.67 | 0.8 | 9.67 | 3.2 | 2.37 |
| 16 | 8.9 | 3.7 | 2.38 | 1.0 | 8.83 | 3.6 | 2.52 |
| 24 | 10.0 | 4.9 | 2.05 | 1.4 | 6.93 | 4.1 | 2.45 |
| 32 | 9.2 | 5.6 | 1.63 | 1.8 | 4.98 | 9.4 | 1.01 |
| 48 | 10.2 | 6.8 | 1.34 | 2.5 | 4.04 | 8.1 | 1.27 |
| 64 | 10.2 | 8.4 | 1.20 | 3.2 | 2.94 | 11.7 | 0.88 |
| 96 | 11.1 | 9.9 | 1.12 | 4.3 | 2.24 | 12.5 | 0.89 |
| 100 | 11.1 | 10.0 | 1.11 | 3.9 | 2.47 | 12.2 | 0.91 |
| 128 | 9.6 | 11.0 | 1.04 | 5.2 | 1.85 | 13.2 | 0.73 |
| 192 | 11.7 | 12.1 | 0.96 | 6.5 | 1.80 | 13.6 | 0.86 |
| 256 | 10.9 | 12.8 | 0.86 | 7.4 | 1.49 | 14.0 | 0.77 |
| 384 | 11.4 | 13.4 | 0.86 | 8.0 | 1.43 | 14.4 | 0.80 |
| 512 | 11.8 | 13.8 | 0.86 | 9.3 | 1.27 | 14.5 | 0.81 |
| 768 | 11.8 | 13.9 | 0.85 | 9.8 | 1.21 | 14.7 | 0.80 |
| 1000 | 12.0 | 14.5 | 0.83 | 10.3 | 1.16 | 14.7 | 0.82 |
| 1001 | 12.0 | 14.4 | 0.83 | 10.3 | 1.16 | 14.6 | 0.82 |
| 1024 | 12.0 | 14.4 | 0.83 | 10.4 | 1.16 | 14.8 | 0.81 |
| 1536 | 12.2 | 14.5 | 0.84 | 11.0 | 1.11 | 14.9 | 0.82 |
| 2048 | 12.3 | 14.4 | 0.86 | 11.3 | 1.08 | 14.9 | 0.83 |
| 3072 | 12.4 | 13.9 | 0.90 | 11.7 | 1.06 | 12.3 | 1.01 |
| 4096 | 12.3 | 13.8 | 0.89 | 11.9 | 1.04 | 11.9 | 1.04 |
| 6144 | 11.6 | 11.5 | 0.97 | 11.6 | 1.04 | 10.6 | 1.10 |
| 8192 | 10.2 | 10.0 | 1.02 | 9.9 | 1.02 | 9.2 | 1.11 |
| 10000 | 10.9 | 10.7 | 1.01 | 10.7 | 1.01 | 10.2 | 1.07 |
| 12288 | 10.2 | 10.1 | 1.01 | 10.1 | 1.01 | 9.1 | 1.12 |
| 16384 | 10.2 | 10.1 | 0.99 | 10.1 | 1.01 | 9.1 | 1.12 |
| 32768 | 9.7 | 9.1 | 0.92 | 10.0 | 1.01 | 9.0 | 1.08 |
| 65536 | 9.5 | 9.7 | 0.97 | 9.3 | 1.01 | 8.9 | 1.08 |
| 100000 | 9.8 | 9.8 | 1.01 | 9.8 | 0.98 | 8.8 | 1.12 |
| 131072 | 9.7 | 9.7 | 1.01 | 9.7 | 1.00 | 8.9 | 1.09 |
| 262144 | 8.2 | 8.2 | 1.00 | 8.2 | 1.00 | 7.3 | 1.12 |
| 524288 | 7.9 | 7.9 | 1.00 | 7.9 | 1.00 | 6.7 | 1.17 |
| 1000000 | 6.6 | 6.4 | 1.01 | 7.1 | 0.98 | 6.0 | 1.09 |
| 1048576 | 7.7 | 7.7 | 1.00 | 6.9 | 1.07 | 6.4 | 1.20 |
| 2097152 | 6.8 | 7.0 | 0.97 | 7.1 | 0.83 | 6.1 | 1.17 |
| 4194304 | 6.3 | 6.3 | 0.99 | 6.2 | 0.99 | 6.4 | 0.99 |
| 8388608 | 4.6 | 4.6 | 0.99 | 4.5 | 1.02 | 4.4 | 1.04 |
| 16777216 | 3.6 | 3.6 | 1.00 | 3.6 | 1.00 | 3.4 | 1.05 |
DOT float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 4.9 | 0.7 | 7.60 | 0.1 | 35.05 | 0.9 | 5.20 |
| 3 | 5.8 | 1.0 | 6.31 | 0.2 | 28.43 | 1.4 | 3.11 |
| 4 | 11.3 | 1.5 | 7.64 | 0.3 | 41.41 | 1.9 | 5.82 |
| 6 | 10.5 | 2.0 | 5.37 | 0.4 | 26.00 | 2.7 | 3.90 |
| 8 | 16.8 | 2.8 | 6.01 | 0.5 | 30.58 | 3.6 | 4.67 |
| 12 | 21.1 | 4.0 | 5.31 | 0.8 | 25.68 | 5.0 | 4.18 |
| 16 | 21.1 | 5.3 | 3.93 | 1.1 | 19.68 | 6.3 | 3.37 |
| 24 | 23.5 | 7.4 | 3.20 | 1.6 | 14.85 | 8.4 | 2.79 |
| 32 | 24.6 | 9.5 | 2.60 | 2.1 | 10.61 | 10.3 | 2.38 |
| 48 | 26.1 | 12.6 | 2.07 | 3.0 | 8.74 | 13.5 | 1.93 |
| 64 | 27.6 | 15.1 | 1.82 | 3.8 | 7.42 | 15.5 | 1.77 |
| 96 | 29.4 | 18.5 | 1.59 | 5.2 | 5.78 | 18.9 | 1.54 |
| 100 | 29.4 | 19.1 | 1.53 | 5.3 | 5.58 | 19.1 | 1.54 |
| 128 | 31.6 | 21.0 | 1.46 | 6.3 | 5.05 | 21.2 | 1.49 |
| 192 | 32.9 | 23.4 | 1.43 | 7.7 | 4.25 | 22.2 | 1.42 |
| 256 | 33.8 | 24.0 | 1.41 | 8.6 | 3.90 | 23.3 | 1.46 |
| 384 | 33.0 | 25.6 | 1.29 | 9.6 | 3.43 | 24.6 | 1.35 |
| 512 | 34.9 | 26.2 | 1.31 | 10.2 | 3.42 | 25.4 | 1.37 |
| 768 | 35.4 | 26.1 | 1.35 | 10.9 | 3.25 | 25.8 | 1.39 |
| 1000 | 36.2 | 26.0 | 1.38 | 11.3 | 3.22 | 25.5 | 1.42 |
| 1001 | 36.8 | 25.9 | 1.43 | 11.2 | 3.28 | 25.5 | 1.44 |
| 1024 | 35.4 | 25.9 | 1.36 | 11.3 | 3.12 | 25.5 | 1.39 |
| 1536 | 36.3 | 25.7 | 1.42 | 11.7 | 3.10 | 25.5 | 1.43 |
| 2048 | 35.8 | 25.4 | 1.41 | 11.9 | 3.00 | 25.5 | 1.44 |
| 3072 | 37.1 | 25.4 | 1.46 | 12.1 | 3.06 | 25.3 | 1.46 |
| 4096 | 33.1 | 25.5 | 1.30 | 12.2 | 2.81 | 25.3 | 1.30 |
| 6144 | 29.6 | 25.2 | 1.17 | 12.4 | 2.47 | 24.7 | 1.20 |
| 8192 | 28.9 | 25.1 | 1.14 | 12.4 | 2.50 | 24.4 | 1.18 |
| 10000 | 26.1 | 24.9 | 1.04 | 12.4 | 2.10 | 25.0 | 1.05 |
| 12288 | 25.1 | 24.9 | 1.02 | 12.5 | 2.00 | 24.7 | 1.02 |
| 16384 | 22.7 | 22.6 | 1.00 | 12.5 | 1.81 | 22.5 | 1.01 |
| 32768 | 23.5 | 23.5 | 1.00 | 12.6 | 1.87 | 23.2 | 1.01 |
| 65536 | 23.3 | 23.1 | 1.02 | 12.6 | 1.85 | 18.7 | 1.03 |
| 100000 | 20.0 | 19.4 | 1.03 | 12.4 | 1.69 | 18.8 | 1.02 |
| 131072 | 21.5 | 21.1 | 0.99 | 12.5 | 1.72 | 21.4 | 1.02 |
| 262144 | 18.8 | 18.6 | 1.01 | 12.6 | 1.49 | 18.6 | 0.99 |
| 524288 | 16.8 | 16.8 | 1.00 | 12.6 | 1.34 | 16.8 | 1.00 |
| 1000000 | 16.1 | 16.1 | 1.00 | 12.5 | 1.26 | 16.2 | 1.00 |
| 1048576 | 16.1 | 16.2 | 1.00 | 12.5 | 1.29 | 16.1 | 1.00 |
| 2097152 | 15.8 | 15.7 | 1.00 | 12.6 | 1.26 | 15.8 | 1.00 |
| 4194304 | 15.3 | 15.3 | 1.00 | 12.3 | 1.25 | 15.2 | 1.00 |
| 8388608 | 12.2 | 12.3 | 1.01 | 8.5 | 1.42 | 12.2 | 1.00 |
| 16777216 | 9.7 | 9.7 | 1.00 | 9.5 | 1.03 | 9.7 | 1.00 |
DOT double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 4.2 | 0.6 | 6.68 | 0.1 | 30.36 | 1.0 | 4.33 |
| 3 | 6.3 | 0.9 | 7.00 | 0.2 | 30.63 | 1.3 | 4.67 |
| 4 | 8.4 | 1.3 | 6.34 | 0.3 | 31.04 | 1.8 | 4.67 |
| 6 | 9.5 | 1.7 | 5.50 | 0.4 | 23.42 | 2.5 | 4.34 |
| 8 | 10.1 | 2.7 | 3.80 | 0.5 | 18.82 | 3.2 | 3.20 |
| 12 | 12.2 | 3.3 | 3.81 | 0.8 | 15.08 | 4.3 | 2.82 |
| 16 | 13.0 | 4.8 | 2.74 | 1.0 | 11.11 | 5.3 | 2.45 |
| 24 | 13.7 | 6.6 | 2.08 | 1.5 | 9.25 | 6.8 | 1.99 |
| 32 | 13.8 | 7.4 | 1.83 | 1.9 | 7.38 | 7.9 | 1.74 |
| 48 | 14.5 | 8.6 | 1.69 | 2.6 | 5.69 | 9.4 | 1.51 |
| 64 | 16.0 | 9.6 | 1.60 | 3.2 | 4.95 | 10.6 | 1.52 |
| 96 | 16.7 | 11.7 | 1.43 | 3.9 | 4.24 | 11.5 | 1.37 |
| 100 | 17.0 | 11.5 | 1.48 | 4.0 | 4.25 | 11.5 | 1.48 |
| 128 | 17.1 | 11.7 | 1.49 | 4.3 | 3.90 | 11.9 | 1.44 |
| 192 | 16.5 | 12.2 | 1.36 | 4.8 | 3.40 | 12.6 | 1.31 |
| 256 | 17.9 | 12.8 | 1.32 | 5.1 | 3.49 | 12.9 | 1.39 |
| 384 | 17.4 | 13.3 | 1.30 | 5.5 | 3.16 | 13.2 | 1.37 |
| 512 | 18.4 | 13.9 | 1.33 | 5.7 | 3.21 | 13.0 | 1.42 |
| 768 | 18.1 | 14.3 | 1.27 | 5.9 | 3.07 | 12.8 | 1.45 |
| 1000 | 18.5 | 14.5 | 1.28 | 6.0 | 3.10 | 12.7 | 1.45 |
| 1001 | 18.6 | 14.6 | 1.28 | 5.9 | 3.13 | 12.7 | 1.45 |
| 1024 | 18.4 | 14.5 | 1.28 | 6.0 | 3.08 | 12.7 | 1.45 |
| 1536 | 18.6 | 14.7 | 1.27 | 6.1 | 3.05 | 12.7 | 1.47 |
| 2048 | 16.3 | 13.6 | 1.20 | 6.1 | 2.66 | 12.6 | 1.29 |
| 3072 | 14.7 | 12.6 | 1.17 | 6.2 | 2.44 | 12.6 | 1.17 |
| 4096 | 14.6 | 11.8 | 1.23 | 6.2 | 2.45 | 12.2 | 1.20 |
| 6144 | 12.5 | 11.8 | 1.07 | 6.2 | 2.00 | 12.4 | 1.02 |
| 8192 | 11.3 | 9.6 | 1.18 | 6.3 | 1.80 | 11.3 | 1.01 |
| 10000 | 11.9 | 10.8 | 1.10 | 6.3 | 1.90 | 11.9 | 1.00 |
| 12288 | 11.7 | 10.0 | 1.17 | 6.3 | 1.87 | 11.6 | 1.01 |
| 16384 | 11.7 | 10.0 | 1.18 | 6.3 | 1.87 | 11.6 | 1.01 |
| 32768 | 11.7 | 10.0 | 1.17 | 6.3 | 1.85 | 9.5 | 1.04 |
| 65536 | 10.9 | 9.9 | 1.09 | 6.3 | 1.77 | 11.0 | 0.98 |
| 100000 | 10.7 | 9.7 | 1.07 | 6.3 | 1.75 | 10.6 | 1.01 |
| 131072 | 9.3 | 9.8 | 0.98 | 6.3 | 1.46 | 9.1 | 1.02 |
| 262144 | 8.4 | 8.1 | 1.04 | 6.3 | 1.34 | 8.3 | 1.00 |
| 524288 | 8.1 | 7.7 | 1.05 | 6.3 | 1.29 | 8.0 | 1.01 |
| 1000000 | 7.8 | 7.5 | 1.04 | 6.2 | 1.26 | 7.8 | 0.99 |
| 1048576 | 7.9 | 7.4 | 1.05 | 6.3 | 1.26 | 7.9 | 1.00 |
| 2097152 | 7.6 | 7.0 | 1.06 | 6.1 | 1.26 | 7.6 | 1.00 |
| 4194304 | 6.1 | 6.2 | 0.99 | 4.3 | 1.39 | 6.1 | 1.00 |
| 8388608 | 4.8 | 4.8 | 1.01 | 4.8 | 1.02 | 4.9 | 1.00 |
| 16777216 | 3.7 | 3.5 | 1.05 | 3.7 | 0.99 | 3.7 | 1.00 |
GEMV float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 1.5 | 0.2 | 6.15 | 0.1 | 11.20 | 0.6 | 2.52 |
| 3x3 | 2.5 | 0.5 | 4.60 | 0.3 | 8.80 | 1.4 | 1.79 |
| 4x4 | 5.3 | 0.9 | 5.68 | 0.5 | 10.90 | 2.3 | 2.23 |
| 6x6 | 7.8 | 2.0 | 3.93 | 1.0 | 8.11 | 4.6 | 1.53 |
| 8x8 | 15.6 | 3.4 | 4.54 | 2.2 | 7.17 | 7.1 | 2.20 |
| 12x12 | 26.1 | 5.7 | 4.59 | 3.7 | 7.05 | 13.4 | 1.94 |
| 16x16 | 34.2 | 8.7 | 3.92 | 7.2 | 4.75 | 16.6 | 2.05 |
| 24x24 | 33.3 | 15.7 | 2.14 | 12.8 | 2.59 | 24.2 | 1.37 |
| 32x32 | 50.4 | 21.2 | 2.38 | 17.5 | 2.88 | 26.9 | 1.86 |
| 48x48 | 51.3 | 29.6 | 1.74 | 23.9 | 2.15 | 31.8 | 1.61 |
| 64x64 | 55.9 | 32.5 | 1.72 | 28.3 | 1.97 | 32.7 | 1.71 |
| 96x96 | 55.7 | 36.1 | 1.55 | 31.3 | 1.73 | 35.0 | 1.59 |
| 100x100 | 48.6 | 38.6 | 1.24 | 32.5 | 1.51 | 30.3 | 1.60 |
| 128x128 | 49.4 | 36.3 | 1.36 | 32.8 | 1.52 | 35.4 | 1.40 |
| 192x192 | 38.0 | 31.6 | 1.22 | 31.6 | 1.20 | 31.8 | 1.19 |
| 200x200 | 36.8 | 38.3 | 0.96 | 35.2 | 1.06 | 36.2 | 1.01 |
| 256x256 | 36.1 | 30.8 | 1.17 | 31.1 | 1.16 | 35.6 | 0.99 |
| 257x257 | 28.4 | 25.1 | 1.14 | 24.2 | 1.17 | 30.8 | 0.92 |
| 384x384 | 33.7 | 29.8 | 1.14 | 30.0 | 1.12 | 30.4 | 0.96 |
| 500x500 | 29.8 | 31.4 | 0.95 | 30.3 | 1.01 | 34.4 | 0.82 |
| 512x512 | 29.0 | 26.4 | 1.07 | 26.2 | 1.15 | 33.7 | 0.86 |
| 768x768 | 28.8 | 25.9 | 1.06 | 26.6 | 1.08 | 29.2 | 0.98 |
| 1000x1000 | 28.9 | 29.6 | 0.98 | 28.3 | 1.02 | 34.5 | 0.84 |
| 1001x1001 | 26.1 | 27.6 | 0.95 | 26.2 | 1.00 | 30.5 | 0.86 |
| 1024x1024 | 22.5 | 22.7 | 0.97 | 25.7 | 0.87 | 33.1 | 0.69 |
| 1536x1536 | 26.8 | 25.8 | 1.02 | 26.6 | 1.01 | 29.2 | 0.93 |
| 2048x2048 | 19.1 | 21.0 | 0.89 | 24.3 | 0.79 | 29.0 | 0.71 |
| 3072x3072 | 23.2 | 22.5 | 1.03 | 25.6 | 0.92 | 26.0 | 0.87 |
| 4096x4096 | 16.4 | 15.8 | 1.05 | 16.5 | 0.98 | 15.4 | 1.06 |
| 4097x4097 | 14.9 | 10.9 | 1.29 | 14.0 | 1.09 | 17.4 | 0.85 |
| 6144x6144 | 15.4 | 17.4 | 0.89 | 17.8 | 0.87 | 19.5 | 0.79 |
| 8192x8192 | 12.9 | 13.5 | 0.95 | 13.8 | 0.92 | 15.2 | 0.85 |
| 12288x12288 | 11.3 | 11.7 | 0.97 | 12.2 | 0.92 | 12.7 | 0.89 |
| 16384x16384 | 11.2 | 10.5 | 1.06 | 11.4 | 0.98 | 11.9 | 0.94 |
| 8x10000 | 28.9 | 17.5 | 1.65 | 15.7 | 1.85 | 10.7 | 2.68 |
| 100x10000 | 22.1 | 23.6 | 0.94 | 22.2 | 0.99 | 29.1 | 0.76 |
| 1000x10000 | 24.7 | 25.6 | 0.96 | 23.9 | 0.99 | 27.6 | 0.90 |
| 4000x10000 | 17.1 | 17.4 | 0.99 | 17.3 | 0.99 | 19.5 | 0.88 |
| 10000x8 | 37.6 | 36.2 | 1.00 | 37.6 | 1.00 | 29.5 | 1.27 |
| 10000x100 | 14.9 | 32.1 | 0.47 | 32.1 | 0.46 | 32.8 | 0.45 |
| 10000x1000 | 28.1 | 27.1 | 1.01 | 27.2 | 1.03 | 26.8 | 1.05 |
| 10000x4000 | 18.3 | 18.8 | 0.98 | 18.5 | 0.99 | 19.6 | 0.93 |
GEMV double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 1.6 | 0.2 | 6.48 | 0.1 | 11.82 | 0.6 | 2.72 |
| 3x3 | 2.6 | 0.5 | 4.74 | 0.3 | 9.22 | 1.3 | 1.99 |
| 4x4 | 5.0 | 1.0 | 5.32 | 0.5 | 10.68 | 2.1 | 2.37 |
| 6x6 | 9.0 | 2.0 | 4.46 | 1.0 | 9.22 | 4.2 | 2.11 |
| 8x8 | 12.5 | 2.7 | 4.70 | 2.1 | 6.01 | 5.8 | 2.17 |
| 12x12 | 15.2 | 5.3 | 2.89 | 3.4 | 4.49 | 9.9 | 1.54 |
| 16x16 | 22.5 | 7.4 | 3.05 | 6.0 | 3.76 | 11.7 | 1.94 |
| 24x24 | 24.2 | 11.6 | 2.08 | 9.4 | 2.57 | 14.8 | 1.63 |
| 32x32 | 26.7 | 13.8 | 1.94 | 12.0 | 2.23 | 15.5 | 1.72 |
| 48x48 | 27.8 | 16.6 | 1.68 | 15.2 | 1.83 | 17.0 | 1.64 |
| 64x64 | 26.4 | 18.2 | 1.45 | 16.1 | 1.64 | 17.4 | 1.49 |
| 96x96 | 24.0 | 17.4 | 1.38 | 16.6 | 1.45 | 17.9 | 1.31 |
| 100x100 | 21.8 | 19.5 | 1.12 | 17.3 | 1.27 | 18.1 | 1.20 |
| 128x128 | 19.3 | 15.9 | 1.21 | 16.1 | 1.21 | 17.8 | 1.07 |
| 192x192 | 17.1 | 15.4 | 1.14 | 15.5 | 1.09 | 16.9 | 1.01 |
| 200x200 | 17.5 | 18.0 | 0.98 | 17.4 | 1.00 | 17.8 | 0.96 |
| 256x256 | 17.0 | 14.6 | 1.16 | 15.2 | 1.14 | 15.9 | 1.03 |
| 257x257 | 14.7 | 14.8 | 1.00 | 13.5 | 1.09 | 15.0 | 0.91 |
| 384x384 | 15.3 | 13.7 | 1.11 | 13.8 | 1.11 | 14.9 | 1.04 |
| 500x500 | 15.6 | 16.2 | 0.97 | 15.1 | 1.04 | 17.8 | 0.87 |
| 512x512 | 12.1 | 11.8 | 1.02 | 13.6 | 0.89 | 17.1 | 0.70 |
| 768x768 | 14.3 | 13.2 | 1.06 | 13.8 | 1.04 | 14.4 | 0.99 |
| 1000x1000 | 14.3 | 14.7 | 0.97 | 14.1 | 1.01 | 16.0 | 0.89 |
| 1001x1001 | 14.0 | 14.6 | 0.97 | 13.8 | 1.02 | 15.5 | 0.90 |
| 1024x1024 | 9.6 | 10.5 | 0.89 | 12.1 | 0.80 | 15.8 | 0.65 |
| 1536x1536 | 11.8 | 11.5 | 0.99 | 12.7 | 0.93 | 14.1 | 0.85 |
| 2048x2048 | 8.9 | 8.8 | 1.02 | 11.1 | 0.80 | 13.6 | 0.66 |
| 3072x3072 | 9.0 | 10.1 | 0.90 | 9.1 | 0.98 | 7.3 | 1.23 |
| 4096x4096 | 7.8 | 8.0 | 0.98 | 8.7 | 0.89 | 10.5 | 0.75 |
| 4097x4097 | 5.9 | 5.9 | 0.98 | 6.6 | 0.88 | 10.7 | 0.71 |
| 6144x6144 | 6.3 | 6.5 | 0.96 | 6.8 | 0.92 | 7.3 | 0.85 |
| 8192x8192 | 6.0 | 5.9 | 1.01 | 6.1 | 0.98 | 6.4 | 0.92 |
| 12288x12288 | 5.6 | 5.6 | 1.02 | 5.7 | 0.99 | 5.9 | 0.95 |
| 16384x16384 | 5.4 | 4.3 | 1.18 | 4.8 | 1.12 | 5.7 | 0.96 |
| 8x10000 | 17.0 | 13.0 | 1.31 | 10.9 | 1.59 | 10.4 | 1.56 |
| 100x10000 | 11.1 | 12.2 | 0.94 | 12.3 | 0.90 | 15.8 | 0.70 |
| 1000x10000 | 11.9 | 11.1 | 1.06 | 9.7 | 1.22 | 13.6 | 0.88 |
| 4000x10000 | 6.6 | 6.8 | 0.97 | 6.8 | 0.98 | 7.2 | 0.93 |
| 10000x8 | 18.2 | 16.7 | 1.07 | 16.0 | 1.14 | 13.2 | 1.38 |
| 10000x100 | 7.3 | 15.3 | 0.47 | 15.1 | 0.48 | 14.7 | 0.50 |
| 10000x1000 | 11.6 | 13.0 | 0.96 | 13.0 | 0.89 | 11.8 | 0.98 |
| 10000x4000 | 6.6 | 6.8 | 0.97 | 6.9 | 0.96 | 7.2 | 0.93 |
GEMM float
| m×n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2x2 | 1.1 | 0.5 | 2.10 | 0.2 | 4.80 | 0.3 | 3.31 |
| 3x3x3 | 2.0 | 1.0 | 1.87 | 0.7 | 2.86 | 0.9 | 2.20 |
| 4x4x4 | 9.3 | 1.9 | 4.88 | 1.5 | 6.22 | 2.5 | 3.78 |
| 6x6x6 | 6.2 | 3.4 | 1.83 | 4.2 | 1.47 | 5.1 | 1.19 |
| 8x8x8 | 15.4 | 5.7 | 2.71 | 11.0 | 1.41 | 12.5 | 1.23 |
| 12x12x12 | 28.4 | 7.9 | 3.62 | 16.8 | 1.69 | 25.7 | 1.10 |
| 16x16x16 | 39.3 | 15.5 | 2.55 | 32.6 | 1.21 | 39.8 | 0.97 |
| 24x24x24 | 56.6 | 33.5 | 1.69 | 56.2 | 1.01 | 50.9 | 1.10 |
| 32x32x32 | 63.9 | 45.6 | 1.40 | 67.2 | 0.95 | 64.3 | 0.98 |
| 48x48x48 | 72.3 | 62.4 | 1.16 | 79.5 | 0.91 | 73.5 | 0.98 |
| 64x64x64 | 73.9 | 67.3 | 1.10 | 81.9 | 0.90 | 76.4 | 0.96 |
| 96x96x96 | 78.8 | 78.2 | 1.01 | 88.3 | 0.89 | 78.7 | 1.00 |
| 100x100x100 | 78.9 | 76.4 | 1.03 | 83.9 | 0.94 | 75.3 | 1.03 |
| 128x128x128 | 81.0 | 82.4 | 0.98 | 90.7 | 0.89 | 80.1 | 1.00 |
| 160x160x160 | 82.1 | 85.5 | 0.96 | 91.6 | 0.90 | 81.3 | 1.01 |
| 192x192x192 | 83.6 | 87.8 | 0.95 | 93.5 | 0.91 | 81.4 | 1.03 |
| 200x200x200 | 85.2 | 89.1 | 0.96 | 93.6 | 0.91 | 81.5 | 1.04 |
| 224x224x224 | 84.9 | 88.6 | 0.96 | 93.3 | 0.91 | 82.3 | 1.03 |
| 256x256x256 | 83.7 | 88.6 | 0.94 | 91.1 | 0.92 | 82.2 | 1.02 |
| 257x257x257 | 81.1 | 85.9 | 0.95 | 89.2 | 0.90 | 78.7 | 1.03 |
| 288x288x288 | 84.4 | 88.8 | 0.92 | 93.7 | 0.91 | 81.9 | 1.03 |
| 320x320x320 | 83.4 | 89.3 | 0.93 | 93.4 | 0.89 | 82.0 | 1.02 |
| 384x384x384 | 83.6 | 90.3 | 0.93 | 92.7 | 0.90 | 81.5 | 1.02 |
| 448x448x448 | 83.7 | 90.9 | 0.92 | 93.3 | 0.90 | 82.0 | 1.02 |
| 500x500x500 | 84.9 | 91.4 | 0.92 | 94.6 | 0.90 | 81.7 | 1.04 |
| 512x512x512 | 84.4 | 92.1 | 0.92 | 94.1 | 0.89 | 82.4 | 1.02 |
| 768x768x768 | 84.9 | 94.2 | 0.90 | 95.2 | 0.89 | 83.0 | 1.02 |
| 1000x1000x1000 | 85.2 | 94.2 | 0.91 | 96.3 | 0.88 | 83.4 | 1.02 |
| 1001x1001x1001 | 84.4 | 93.5 | 0.91 | 95.6 | 0.88 | 82.7 | 1.02 |
| 1024x1024x1024 | 83.8 | 93.6 | 0.89 | 94.7 | 0.89 | 83.7 | 1.00 |
| 1536x1536x1536 | 84.0 | 94.6 | 0.89 | 96.2 | 0.88 | 83.0 | 1.00 |
| 2048x2048x2048 | 86.1 | 94.7 | 0.90 | 95.9 | 0.90 | 84.0 | 1.03 |
| 3072x3072x3072 | 85.0 | 94.1 | 0.90 | 96.2 | 0.88 | 84.0 | 1.02 |
| 4096x4096x4096 | 85.5 | 92.2 | 0.93 | 95.1 | 0.90 | 83.4 | 1.03 |
| 4097x4097x4097 | 84.0 | 91.4 | 0.93 | 94.9 | 0.88 | 82.9 | 1.01 |
| 64x64x1024 | 75.3 | 76.5 | 0.99 | 72.5 | 1.04 | 76.4 | 0.97 |
| 64x1024x64 | 76.7 | 72.1 | 1.06 | 86.9 | 0.88 | 78.2 | 0.98 |
| 256x256x1024 | 81.4 | 89.4 | 0.91 | 89.6 | 0.91 | 80.9 | 1.01 |
| 1024x64x64 | 76.4 | 23.8 | 3.22 | 79.2 | 0.96 | 78.1 | 0.96 |
| 1024x256x256 | 82.4 | 89.4 | 0.93 | 90.4 | 0.91 | 82.1 | 1.00 |
| 4096x96x96 | 76.0 | 81.1 | 0.94 | 80.6 | 0.95 | 79.4 | 0.95 |
| 4096x128x128 | 78.6 | 83.7 | 0.94 | 84.3 | 0.94 | 80.2 | 0.97 |
| 4096x144x144 | 78.7 | 84.9 | 0.93 | 84.5 | 0.93 | 80.7 | 0.97 |
| 4096x160x160 | 79.6 | 86.0 | 0.93 | 84.9 | 0.94 | 81.1 | 0.97 |
| 4096x176x176 | 80.1 | 86.8 | 0.92 | 86.6 | 0.92 | 81.3 | 0.98 |
| 8192x128x128 | 77.6 | 83.5 | 0.93 | 84.5 | 0.92 | 80.2 | 0.97 |
| 10000x8x8 | 41.5 | 32.5 | 1.28 | 38.8 | 1.07 | 55.1 | 0.71 |
| 10000x100x100 | 79.4 | 81.3 | 0.98 | 87.1 | 0.91 | 78.3 | 1.01 |
| 10000x1000x1000 | 82.5 | 94.0 | 0.88 | 96.3 | 0.86 | 83.8 | 0.97 |
| 10000x4000x4000 | 84.7 | 91.6 | 0.92 | 95.8 | 0.89 | 83.8 | 1.01 |
GEMM double
| m×n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2x2 | 2.3 | 0.5 | 5.13 | 0.2 | 11.15 | 0.3 | 7.14 |
| 3x3x3 | 2.7 | 1.6 | 1.73 | 0.6 | 4.47 | 0.9 | 2.97 |
| 4x4x4 | 5.2 | 2.0 | 2.84 | 1.3 | 3.81 | 2.3 | 2.26 |
| 6x6x6 | 6.4 | 3.0 | 2.23 | 3.8 | 1.55 | 4.9 | 1.29 |
| 8x8x8 | 9.9 | 5.0 | 2.01 | 6.7 | 1.49 | 10.0 | 0.98 |
| 12x12x12 | 17.7 | 7.1 | 2.51 | 11.9 | 1.48 | 18.3 | 0.96 |
| 16x16x16 | 22.7 | 11.4 | 1.99 | 20.3 | 1.12 | 24.4 | 0.91 |
| 24x24x24 | 29.2 | 22.2 | 1.32 | 30.6 | 0.96 | 30.8 | 0.93 |
| 32x32x32 | 31.9 | 24.6 | 1.30 | 34.1 | 0.93 | 33.5 | 0.94 |
| 48x48x48 | 34.8 | 33.6 | 1.04 | 39.1 | 0.89 | 36.3 | 0.94 |
| 64x64x64 | 36.0 | 36.4 | 0.99 | 39.8 | 0.90 | 37.2 | 0.95 |
| 96x96x96 | 38.5 | 40.8 | 0.95 | 43.3 | 0.89 | 38.7 | 0.99 |
| 100x100x100 | 38.5 | 40.1 | 0.97 | 41.1 | 0.94 | 37.8 | 1.02 |
| 128x128x128 | 38.9 | 40.9 | 0.95 | 43.9 | 0.90 | 39.4 | 0.98 |
| 160x160x160 | 40.0 | 42.2 | 0.95 | 43.3 | 0.92 | 39.2 | 1.01 |
| 192x192x192 | 38.7 | 43.1 | 0.90 | 42.9 | 0.91 | 39.0 | 0.99 |
| 200x200x200 | 39.6 | 42.5 | 0.92 | 43.5 | 0.91 | 39.0 | 1.02 |
| 224x224x224 | 38.0 | 42.9 | 0.86 | 43.4 | 0.88 | 38.9 | 1.00 |
| 256x256x256 | 37.6 | 43.4 | 0.87 | 43.5 | 0.87 | 39.4 | 0.95 |
| 257x257x257 | 37.2 | 43.4 | 0.86 | 42.9 | 0.87 | 37.7 | 0.99 |
| 288x288x288 | 37.4 | 44.5 | 0.84 | 44.5 | 0.84 | 38.8 | 0.96 |
| 320x320x320 | 36.6 | 44.0 | 0.83 | 44.4 | 0.83 | 39.3 | 0.92 |
| 384x384x384 | 37.9 | 45.0 | 0.84 | 45.3 | 0.83 | 39.6 | 0.96 |
| 448x448x448 | 34.5 | 44.8 | 0.77 | 45.6 | 0.86 | 39.5 | 0.87 |
| 500x500x500 | 37.5 | 44.3 | 0.85 | 45.4 | 0.82 | 39.5 | 0.95 |
| 512x512x512 | 36.5 | 43.7 | 0.83 | 44.9 | 0.84 | 39.5 | 0.92 |
| 768x768x768 | 36.6 | 45.1 | 0.81 | 45.0 | 0.81 | 39.6 | 0.93 |
| 1000x1000x1000 | 36.1 | 45.4 | 0.87 | 46.2 | 0.78 | 39.9 | 0.90 |
| 1001x1001x1001 | 36.9 | 45.2 | 0.87 | 46.1 | 0.80 | 39.5 | 0.92 |
| 1024x1024x1024 | 35.3 | 44.8 | 0.82 | 44.9 | 0.79 | 39.2 | 0.90 |
| 1536x1536x1536 | 36.7 | 46.0 | 0.80 | 46.2 | 0.79 | 40.1 | 0.93 |
| 2048x2048x2048 | 34.9 | 45.3 | 0.84 | 45.9 | 0.76 | 40.0 | 0.87 |
| 3072x3072x3072 | 37.6 | 44.9 | 0.85 | 45.5 | 0.83 | 40.0 | 0.93 |
| 4096x4096x4096 | 35.7 | 45.0 | 0.77 | 45.4 | 0.87 | 39.8 | 0.90 |
| 4097x4097x4097 | 35.2 | 45.1 | 0.76 | 45.5 | 0.86 | 39.2 | 0.90 |
| 64x64x1024 | 34.0 | 36.8 | 0.90 | 38.3 | 0.90 | 36.8 | 0.92 |
| 64x1024x64 | 37.4 | 38.9 | 0.96 | 39.2 | 0.95 | 37.7 | 0.99 |
| 256x256x1024 | 37.3 | 43.3 | 0.89 | 43.9 | 0.85 | 39.3 | 0.94 |
| 1024x64x64 | 35.0 | 38.4 | 0.91 | 37.9 | 0.93 | 37.4 | 0.92 |
| 1024x256x256 | 37.2 | 44.1 | 0.84 | 44.3 | 0.84 | 39.8 | 0.92 |
| 4096x96x96 | 35.6 | 41.3 | 0.87 | 40.6 | 0.88 | 38.5 | 0.92 |
| 4096x128x128 | 36.6 | 41.2 | 0.89 | 42.0 | 0.87 | 39.1 | 0.93 |
| 4096x144x144 | 37.1 | 42.8 | 0.87 | 42.8 | 0.87 | 38.3 | 0.97 |
| 4096x160x160 | 37.3 | 42.7 | 0.87 | 42.7 | 0.87 | 38.4 | 0.96 |
| 4096x176x176 | 37.1 | 42.6 | 0.88 | 43.3 | 0.86 | 38.7 | 0.96 |
| 8192x128x128 | 35.5 | 41.2 | 0.86 | 41.9 | 0.86 | 39.1 | 0.91 |
| 10000x8x8 | 19.4 | 16.5 | 1.17 | 18.8 | 1.03 | 27.1 | 0.67 |
| 10000x100x100 | 37.2 | 41.9 | 0.89 | 40.8 | 0.91 | 38.0 | 0.97 |
| 10000x1000x1000 | 34.0 | 45.1 | 0.74 | 45.8 | 0.76 | 40.0 | 0.85 |
| 10000x4000x4000 | 36.9 | 45.1 | 0.84 | 45.1 | 0.82 | 39.8 | 0.89 |
TRSM float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.4 | 0.3 | 1.30 | 0.0 | 57.62 | 0.2 | 1.62 |
| 3x3 | 0.9 | 0.7 | 1.35 | 0.0 | 47.89 | 0.4 | 2.10 |
| 4x4 | 3.0 | 1.9 | 1.60 | 0.0 | 73.92 | 1.1 | 2.66 |
| 6x6 | 4.1 | 1.6 | 2.48 | 0.1 | 32.23 | 1.8 | 2.32 |
| 8x8 | 12.6 | 2.0 | 6.38 | 0.3 | 44.80 | 3.1 | 4.14 |
| 12x12 | 17.6 | 4.5 | 3.87 | 0.8 | 22.96 | 5.1 | 3.32 |
| 16x16 | 28.8 | 4.9 | 5.83 | 1.4 | 20.25 | 4.4 | 6.58 |
| 24x24 | 34.0 | 7.8 | 4.37 | 3.7 | 9.24 | 7.3 | 4.60 |
| 32x32 | 41.1 | 8.9 | 4.61 | 5.4 | 7.55 | 8.4 | 4.89 |
| 48x48 | 46.9 | 11.9 | 3.93 | 10.6 | 4.43 | 12.1 | 3.88 |
| 64x64 | 50.3 | 12.6 | 4.00 | 13.4 | 3.77 | 15.3 | 3.28 |
| 96x96 | 53.9 | 29.9 | 1.80 | 21.5 | 2.51 | 21.2 | 2.54 |
| 100x100 | 53.1 | 29.5 | 1.80 | 20.3 | 2.61 | 21.9 | 2.42 |
| 128x128 | 55.4 | 38.1 | 1.45 | 26.6 | 2.10 | 26.0 | 2.13 |
| 192x192 | 62.9 | 50.0 | 1.26 | 36.2 | 1.73 | 33.8 | 1.87 |
| 200x200 | 63.1 | 52.2 | 1.21 | 37.1 | 1.69 | 34.7 | 1.83 |
| 256x256 | 68.1 | 52.5 | 1.30 | 42.5 | 1.60 | 39.5 | 1.73 |
| 257x257 | 64.5 | 53.9 | 1.19 | 41.1 | 1.57 | 38.4 | 1.68 |
| 384x384 | 69.9 | 60.1 | 1.17 | 52.4 | 1.33 | 47.3 | 1.47 |
| 500x500 | 73.3 | 66.6 | 1.10 | 58.4 | 1.26 | 52.4 | 1.40 |
| 512x512 | 72.1 | 62.3 | 1.15 | 59.4 | 1.21 | 53.2 | 1.36 |
| 768x768 | 75.5 | 71.3 | 1.06 | 68.6 | 1.10 | 60.7 | 1.25 |
| 1000x1000 | 78.2 | 77.2 | 1.01 | 73.9 | 1.06 | 64.8 | 1.21 |
| 1001x1001 | 76.1 | 74.0 | 1.03 | 72.9 | 1.04 | 63.8 | 1.20 |
| 1024x1024 | 76.9 | 67.6 | 1.14 | 73.4 | 1.05 | 65.2 | 1.19 |
| 1536x1536 | 79.8 | 78.2 | 1.02 | 80.7 | 0.99 | 70.6 | 1.13 |
| 2048x2048 | 80.7 | 73.6 | 1.10 | 83.6 | 0.96 | 73.9 | 1.10 |
| 3072x3072 | 81.1 | 76.7 | 1.06 | 87.0 | 0.93 | 76.3 | 1.07 |
| 4096x4096 | 81.1 | 78.3 | 1.04 | 88.3 | 0.92 | 77.8 | 1.05 |
| 4097x4097 | 79.0 | 82.4 | 0.96 | 87.9 | 0.90 | 77.0 | 1.03 |
| 64x4096 | 47.2 | 25.7 | 1.84 | 16.0 | 2.96 | 15.4 | 3.07 |
| 256x4096 | 64.8 | 47.6 | 1.36 | 43.8 | 1.50 | 39.2 | 1.65 |
| 1024x8 | 33.1 | 23.4 | 1.41 | 25.5 | 1.28 | 34.9 | 1.05 |
| 1024x64 | 67.6 | 50.0 | 1.35 | 58.9 | 1.14 | 59.8 | 1.16 |
| 1024x256 | 75.5 | 64.7 | 1.16 | 70.0 | 1.08 | 64.0 | 1.19 |
| 1024x4096 | 76.4 | 63.5 | 1.19 | 73.7 | 1.04 | 65.2 | 1.18 |
| 4096x8 | 29.5 | 22.8 | 1.28 | 28.6 | 1.03 | 41.8 | 0.81 |
| 4096x64 | 67.6 | 59.6 | 1.13 | 67.6 | 0.99 | 71.3 | 0.97 |
| 4096x256 | 78.9 | 69.4 | 1.14 | 83.2 | 0.95 | 76.6 | 1.04 |
| 4096x1024 | 81.6 | 78.9 | 1.03 | 87.8 | 0.93 | 77.9 | 1.05 |
TRSM double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.4 | 0.3 | 1.38 | 0.0 | 57.76 | 0.2 | 1.64 |
| 3x3 | 0.9 | 0.6 | 1.48 | 0.0 | 46.00 | 0.4 | 2.04 |
| 4x4 | 2.7 | 2.0 | 1.33 | 0.0 | 62.60 | 1.1 | 2.48 |
| 6x6 | 4.2 | 1.4 | 2.94 | 0.1 | 31.74 | 1.8 | 2.33 |
| 8x8 | 8.6 | 3.5 | 2.43 | 0.3 | 31.87 | 3.1 | 2.64 |
| 12x12 | 11.5 | 4.3 | 2.72 | 0.7 | 15.51 | 5.0 | 2.27 |
| 16x16 | 15.4 | 5.0 | 3.03 | 1.4 | 10.81 | 6.7 | 2.30 |
| 24x24 | 18.7 | 6.2 | 3.04 | 3.3 | 5.61 | 9.6 | 1.95 |
| 32x32 | 20.8 | 6.8 | 3.07 | 4.9 | 4.25 | 11.8 | 1.76 |
| 48x48 | 23.5 | 8.1 | 2.90 | 8.8 | 2.67 | 15.7 | 1.50 |
| 64x64 | 25.0 | 11.4 | 2.19 | 11.4 | 2.20 | 18.5 | 1.35 |
| 96x96 | 26.8 | 20.7 | 1.30 | 16.4 | 1.63 | 22.6 | 1.19 |
| 100x100 | 26.8 | 21.6 | 1.24 | 15.8 | 1.70 | 22.9 | 1.17 |
| 128x128 | 27.1 | 23.1 | 1.16 | 19.5 | 1.40 | 24.9 | 1.09 |
| 192x192 | 30.8 | 26.6 | 1.16 | 24.6 | 1.25 | 28.4 | 1.09 |
| 200x200 | 31.3 | 28.2 | 1.11 | 24.9 | 1.24 | 29.1 | 1.08 |
| 256x256 | 32.0 | 25.9 | 1.24 | 27.0 | 1.18 | 30.3 | 1.07 |
| 257x257 | 31.7 | 25.3 | 1.26 | 26.3 | 1.19 | 29.5 | 1.08 |
| 384x384 | 33.5 | 28.3 | 1.18 | 32.1 | 1.04 | 32.5 | 1.04 |
| 500x500 | 33.7 | 30.8 | 1.09 | 34.2 | 0.99 | 34.0 | 1.00 |
| 512x512 | 34.0 | 29.5 | 1.15 | 34.6 | 0.98 | 34.0 | 1.01 |
| 768x768 | 35.7 | 32.3 | 1.10 | 37.4 | 0.95 | 35.9 | 1.01 |
| 1000x1000 | 37.0 | 34.9 | 1.06 | 39.3 | 0.93 | 37.2 | 1.00 |
| 1001x1001 | 36.3 | 33.6 | 1.07 | 39.3 | 0.92 | 36.6 | 0.99 |
| 1024x1024 | 36.5 | 33.7 | 1.08 | 39.3 | 0.92 | 36.9 | 1.00 |
| 1536x1536 | 37.5 | 37.5 | 1.00 | 41.6 | 0.89 | 38.0 | 0.99 |
| 2048x2048 | 37.1 | 37.9 | 0.98 | 42.1 | 0.88 | 38.2 | 0.98 |
| 3072x3072 | 37.4 | 39.4 | 0.95 | 43.1 | 0.87 | 38.7 | 0.97 |
| 4096x4096 | 37.3 | 39.9 | 0.94 | 43.5 | 0.86 | 39.0 | 0.96 |
| 4097x4097 | 36.6 | 40.1 | 0.91 | 43.4 | 0.84 | 38.5 | 0.96 |
| 64x4096 | 22.7 | 15.3 | 1.48 | 12.5 | 1.81 | 17.2 | 1.32 |
| 256x4096 | 31.0 | 25.5 | 1.21 | 27.3 | 1.13 | 29.9 | 1.04 |
| 1024x8 | 16.5 | 15.5 | 1.06 | 14.8 | 1.11 | 23.5 | 0.74 |
| 1024x64 | 32.6 | 31.3 | 1.04 | 33.3 | 0.97 | 35.1 | 0.95 |
| 1024x256 | 35.7 | 35.5 | 1.01 | 38.2 | 0.93 | 36.6 | 0.99 |
| 1024x4096 | 36.5 | 34.0 | 1.07 | 39.1 | 0.93 | 36.8 | 1.00 |
| 4096x8 | 13.7 | 13.5 | 1.01 | 12.6 | 1.08 | 23.3 | 0.62 |
| 4096x64 | 32.6 | 31.5 | 1.03 | 34.4 | 0.94 | 35.2 | 0.95 |
| 4096x256 | 36.4 | 38.7 | 0.94 | 41.6 | 0.88 | 38.0 | 0.96 |
| 4096x1024 | 36.9 | 39.1 | 0.95 | 43.4 | 0.85 | 38.9 | 0.96 |
SYRK float
| n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.2 | 0.0 | 4.44 | 0.0 | 20.83 | 0.2 | 0.91 |
| 3x3 | 0.4 | 0.1 | 3.74 | 0.0 | 17.07 | 0.4 | 0.90 |
| 4x4 | 1.0 | 0.2 | 4.21 | 0.1 | 19.76 | 1.0 | 0.98 |
| 6x6 | 2.1 | 0.7 | 3.00 | 0.2 | 13.23 | 2.2 | 0.94 |
| 8x8 | 5.0 | 1.5 | 3.33 | 0.4 | 14.17 | 4.6 | 1.09 |
| 12x12 | 8.3 | 3.7 | 2.26 | 1.1 | 7.73 | 8.5 | 0.99 |
| 16x16 | 15.1 | 6.9 | 2.19 | 2.3 | 6.45 | 13.3 | 1.14 |
| 24x24 | 24.6 | 15.4 | 1.60 | 6.8 | 3.63 | 23.8 | 1.04 |
| 32x32 | 33.0 | 23.7 | 1.39 | 13.0 | 2.53 | 32.4 | 1.02 |
| 48x48 | 43.6 | 35.3 | 1.23 | 28.4 | 1.54 | 46.0 | 0.95 |
| 64x64 | 52.4 | 44.6 | 1.17 | 40.8 | 1.28 | 53.6 | 0.98 |
| 96x96 | 59.6 | 58.7 | 1.02 | 59.9 | 1.00 | 63.6 | 0.94 |
| 100x100 | 60.2 | 53.4 | 1.13 | 56.8 | 1.06 | 60.6 | 0.99 |
| 128x128 | 64.7 | 62.9 | 1.03 | 69.1 | 0.94 | 68.3 | 0.94 |
| 192x192 | 72.0 | 73.2 | 0.98 | 79.1 | 0.91 | 73.3 | 0.97 |
| 200x200 | 73.4 | 73.6 | 1.00 | 80.6 | 0.91 | 72.9 | 0.99 |
| 256x256 | 73.7 | 77.7 | 0.96 | 81.7 | 0.90 | 75.5 | 0.97 |
| 257x257 | 69.9 | 75.2 | 0.95 | 77.3 | 0.90 | 71.0 | 0.97 |
| 384x384 | 75.3 | 82.0 | 0.91 | 86.0 | 0.88 | 77.3 | 0.97 |
| 500x500 | 77.0 | 82.3 | 0.94 | 87.7 | 0.88 | 77.5 | 0.99 |
| 512x512 | 75.8 | 80.4 | 0.94 | 88.5 | 0.86 | 78.3 | 0.97 |
| 768x768 | 79.2 | 84.5 | 0.94 | 91.8 | 0.86 | 80.7 | 0.98 |
| 1000x1000 | 82.1 | 86.4 | 0.95 | 93.9 | 0.87 | 81.1 | 1.01 |
| 1001x1001 | 80.5 | 86.0 | 0.94 | 92.0 | 0.88 | 80.0 | 1.00 |
| 1024x1024 | 79.5 | 82.2 | 0.97 | 91.6 | 0.87 | 81.9 | 0.97 |
| 1536x1536 | 83.7 | 86.6 | 0.97 | 94.5 | 0.89 | 82.9 | 1.01 |
| 2048x2048 | 84.0 | 86.6 | 0.97 | 94.4 | 0.89 | 83.1 | 1.01 |
| 3072x3072 | 84.6 | 87.2 | 0.97 | 95.2 | 0.89 | 83.3 | 1.01 |
| 4096x4096 | 84.4 | 87.1 | 0.97 | 94.3 | 0.90 | 83.3 | 1.01 |
| 4097x4097 | 83.8 | 87.4 | 0.96 | 93.8 | 0.89 | 82.5 | 1.02 |
| 64x4096 | 49.4 | 54.4 | 0.91 | 54.5 | 0.91 | 58.5 | 0.85 |
| 256x4096 | 70.0 | 72.8 | 0.96 | 82.0 | 0.85 | 75.0 | 0.94 |
| 1024x4096 | 80.4 | 83.0 | 0.97 | 91.6 | 0.88 | 81.8 | 0.98 |
| 4096x8 | 41.6 | 26.1 | 1.60 | 38.1 | 1.09 | 57.3 | 0.73 |
| 4096x64 | 77.2 | 72.3 | 1.07 | 82.0 | 0.94 | 80.5 | 0.96 |
| 4096x256 | 84.2 | 85.5 | 0.99 | 93.4 | 0.90 | 82.7 | 1.02 |
| 4096x1024 | 83.8 | 87.9 | 0.95 | 95.0 | 0.88 | 83.4 | 1.00 |
SYRK double
| n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 4.13 | 0.0 | 18.53 | 0.2 | 0.79 |
| 3x3 | 0.4 | 0.1 | 3.66 | 0.0 | 15.71 | 0.4 | 0.83 |
| 4x4 | 0.8 | 0.2 | 3.59 | 0.1 | 15.70 | 1.0 | 0.81 |
| 6x6 | 2.0 | 0.7 | 3.03 | 0.2 | 12.35 | 2.2 | 0.93 |
| 8x8 | 3.3 | 1.2 | 2.70 | 0.3 | 9.50 | 3.9 | 0.85 |
| 12x12 | 5.5 | 3.1 | 1.77 | 1.0 | 5.41 | 7.7 | 0.71 |
| 16x16 | 9.2 | 5.7 | 1.63 | 2.2 | 4.19 | 11.5 | 0.80 |
| 24x24 | 12.8 | 11.5 | 1.12 | 6.0 | 2.16 | 17.9 | 0.72 |
| 32x32 | 16.7 | 16.1 | 1.04 | 10.3 | 1.63 | 22.6 | 0.74 |
| 48x48 | 21.3 | 21.9 | 0.97 | 19.6 | 1.09 | 28.2 | 0.75 |
| 64x64 | 24.8 | 25.5 | 0.97 | 25.2 | 0.98 | 30.6 | 0.81 |
| 96x96 | 29.0 | 31.3 | 0.93 | 33.0 | 0.88 | 33.9 | 0.86 |
| 100x100 | 29.4 | 30.2 | 0.97 | 31.7 | 0.93 | 33.3 | 0.88 |
| 128x128 | 31.4 | 33.8 | 0.93 | 35.8 | 0.88 | 35.9 | 0.87 |
| 192x192 | 33.2 | 38.2 | 0.87 | 39.1 | 0.85 | 36.3 | 0.92 |
| 200x200 | 33.2 | 38.2 | 0.87 | 38.9 | 0.84 | 35.7 | 0.93 |
| 256x256 | 33.4 | 38.2 | 0.87 | 39.5 | 0.84 | 37.3 | 0.91 |
| 257x257 | 32.8 | 37.7 | 0.85 | 37.8 | 0.87 | 35.7 | 0.92 |
| 384x384 | 34.3 | 39.7 | 0.87 | 42.2 | 0.81 | 38.0 | 0.90 |
| 500x500 | 37.3 | 40.0 | 0.93 | 42.6 | 0.87 | 37.7 | 0.99 |
| 512x512 | 35.1 | 38.0 | 0.92 | 41.8 | 0.84 | 38.2 | 0.92 |
| 768x768 | 38.7 | 40.2 | 0.96 | 44.4 | 0.87 | 38.9 | 0.99 |
| 1000x1000 | 39.6 | 41.0 | 0.97 | 45.5 | 0.86 | 39.2 | 1.01 |
| 1001x1001 | 39.3 | 40.9 | 0.96 | 44.7 | 0.88 | 38.7 | 1.01 |
| 1024x1024 | 38.8 | 39.8 | 0.98 | 44.5 | 0.86 | 39.3 | 0.99 |
| 1536x1536 | 39.6 | 40.8 | 0.97 | 45.3 | 0.86 | 39.6 | 1.00 |
| 2048x2048 | 39.5 | 40.0 | 0.99 | 45.6 | 0.86 | 39.6 | 1.00 |
| 3072x3072 | 39.5 | 39.2 | 1.01 | 45.3 | 0.87 | 39.7 | 0.99 |
| 4096x4096 | 39.3 | 38.6 | 1.02 | 44.8 | 0.88 | 39.6 | 0.99 |
| 4097x4097 | 39.3 | 40.0 | 0.98 | 44.8 | 0.88 | 39.3 | 1.00 |
| 64x4096 | 24.1 | 27.0 | 0.90 | 29.5 | 0.81 | 30.5 | 0.79 |
| 256x4096 | 33.5 | 36.2 | 0.92 | 39.4 | 0.84 | 37.2 | 0.91 |
| 1024x4096 | 39.0 | 39.4 | 0.99 | 44.4 | 0.88 | 39.2 | 0.99 |
| 4096x8 | 20.6 | 15.0 | 1.37 | 23.2 | 0.89 | 29.3 | 0.70 |
| 4096x64 | 37.1 | 34.9 | 1.06 | 41.3 | 0.90 | 38.9 | 0.95 |
| 4096x256 | 39.8 | 38.8 | 1.02 | 44.8 | 0.89 | 39.8 | 1.00 |
| 4096x1024 | 39.2 | 39.3 | 1.00 | 45.3 | 0.86 | 39.7 | 0.99 |
POTRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.3 | 0.2 | 1.70 | 0.0 | 18.54 | 0.1 | 2.62 |
| 3 | 0.6 | 0.4 | 1.67 | 0.0 | 12.65 | 0.2 | 2.42 |
| 4 | 0.9 | 0.6 | 1.37 | 0.1 | 8.67 | 0.4 | 1.92 |
| 6 | 1.3 | 1.3 | 0.98 | 0.3 | 4.95 | 1.1 | 1.20 |
| 8 | 2.0 | 2.1 | 0.97 | 0.5 | 3.90 | 1.7 | 1.14 |
| 12 | 3.6 | 3.4 | 1.03 | 1.0 | 3.55 | 3.4 | 1.07 |
| 16 | 5.2 | 4.3 | 1.21 | 1.8 | 2.88 | 5.0 | 1.00 |
| 24 | 8.5 | 3.5 | 2.44 | 3.7 | 2.31 | 8.1 | 1.04 |
| 32 | 7.3 | 4.9 | 1.50 | 5.6 | 1.29 | 10.0 | 0.73 |
| 48 | 11.2 | 7.6 | 1.47 | 9.0 | 1.23 | 10.9 | 1.02 |
| 64 | 14.4 | 10.9 | 1.32 | 11.8 | 1.21 | 15.1 | 0.96 |
| 96 | 19.7 | 17.4 | 1.13 | 15.0 | 1.30 | 22.0 | 0.90 |
| 100 | 19.6 | 16.0 | 1.23 | 11.4 | 1.70 | 21.1 | 0.93 |
| 128 | 30.1 | 23.7 | 1.27 | 16.2 | 1.86 | 27.7 | 1.10 |
| 192 | 37.4 | 32.5 | 1.15 | 24.6 | 1.52 | 34.7 | 1.08 |
| 200 | 38.3 | 33.9 | 1.13 | 23.2 | 1.64 | 33.5 | 1.15 |
| 256 | 47.1 | 37.8 | 1.25 | 28.2 | 1.63 | 40.7 | 1.16 |
| 257 | 44.4 | 37.1 | 1.21 | 28.5 | 1.54 | 39.7 | 1.12 |
| 384 | 56.4 | 45.1 | 1.26 | 38.2 | 1.47 | 50.2 | 1.12 |
| 500 | 59.8 | 52.8 | 1.13 | 43.2 | 1.37 | 50.4 | 1.19 |
| 512 | 58.5 | 49.5 | 1.19 | 43.0 | 1.34 | 54.5 | 1.07 |
| 768 | 65.9 | 53.0 | 1.24 | 53.7 | 1.22 | 61.3 | 1.08 |
| 1000 | 71.0 | 55.7 | 1.28 | 60.3 | 1.17 | 63.6 | 1.12 |
| 1001 | 67.7 | 52.8 | 1.28 | 58.9 | 1.14 | 62.7 | 1.08 |
| 1024 | 65.8 | 54.4 | 1.21 | 59.1 | 1.11 | 65.6 | 1.01 |
| 1536 | 73.6 | 63.5 | 1.16 | 69.3 | 1.06 | 71.7 | 1.03 |
| 2048 | 74.7 | 65.3 | 1.15 | 73.2 | 1.01 | 74.5 | 1.00 |
| 3072 | 77.2 | 69.4 | 1.11 | 79.0 | 0.98 | 77.2 | 1.00 |
| 4096 | 76.6 | 66.7 | 1.15 | 80.1 | 0.96 | 78.0 | 0.99 |
| 4097 | 74.7 | 72.3 | 1.03 | 79.8 | 0.93 | 77.7 | 0.96 |
POTRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.3 | 0.2 | 1.42 | 0.0 | 18.49 | 0.1 | 2.76 |
| 3 | 0.5 | 0.4 | 1.23 | 0.0 | 10.48 | 0.2 | 2.07 |
| 4 | 0.7 | 0.6 | 1.20 | 0.1 | 7.01 | 0.4 | 1.59 |
| 6 | 1.1 | 1.2 | 0.94 | 0.3 | 3.84 | 0.9 | 1.14 |
| 8 | 1.6 | 1.4 | 1.17 | 0.5 | 3.02 | 1.6 | 1.03 |
| 12 | 3.0 | 2.8 | 1.11 | 1.1 | 2.74 | 3.0 | 1.02 |
| 16 | 4.5 | 3.6 | 1.24 | 1.9 | 2.33 | 4.3 | 1.03 |
| 24 | 6.4 | 3.1 | 2.05 | 3.7 | 1.75 | 6.3 | 1.02 |
| 32 | 5.2 | 4.6 | 1.13 | 5.2 | 0.99 | 7.8 | 0.67 |
| 48 | 7.3 | 6.4 | 1.15 | 7.4 | 0.99 | 9.4 | 0.78 |
| 64 | 8.9 | 8.1 | 1.10 | 8.5 | 1.05 | 12.4 | 0.72 |
| 96 | 11.5 | 11.9 | 0.97 | 9.7 | 1.19 | 16.8 | 0.69 |
| 100 | 11.6 | 10.8 | 1.07 | 8.4 | 1.38 | 16.3 | 0.71 |
| 128 | 16.4 | 14.6 | 1.12 | 10.9 | 1.50 | 19.8 | 0.83 |
| 192 | 19.5 | 18.3 | 1.06 | 16.1 | 1.21 | 23.3 | 0.84 |
| 200 | 19.9 | 19.0 | 1.05 | 15.2 | 1.31 | 23.1 | 0.86 |
| 256 | 23.8 | 19.8 | 1.20 | 17.9 | 1.31 | 25.2 | 0.95 |
| 257 | 23.3 | 19.6 | 1.20 | 18.6 | 1.23 | 25.1 | 0.93 |
| 384 | 27.1 | 24.5 | 1.10 | 22.6 | 1.20 | 28.3 | 0.96 |
| 500 | 28.8 | 26.4 | 1.09 | 25.7 | 1.12 | 29.2 | 0.99 |
| 512 | 28.1 | 24.7 | 1.14 | 24.7 | 1.13 | 30.0 | 0.95 |
| 768 | 31.9 | 30.3 | 1.05 | 30.5 | 1.05 | 33.4 | 0.96 |
| 1000 | 34.1 | 32.9 | 1.04 | 33.6 | 1.01 | 34.9 | 0.98 |
| 1001 | 33.4 | 31.9 | 1.04 | 33.2 | 1.01 | 34.6 | 0.97 |
| 1024 | 32.3 | 29.0 | 1.11 | 32.9 | 0.97 | 34.8 | 0.93 |
| 1536 | 35.1 | 33.6 | 1.05 | 36.5 | 0.96 | 36.6 | 0.96 |
| 2048 | 35.6 | 33.8 | 1.06 | 38.1 | 0.93 | 37.3 | 0.96 |
| 3072 | 37.0 | 34.2 | 1.08 | 39.4 | 0.94 | 37.7 | 0.98 |
| 4096 | 37.1 | 33.5 | 1.10 | 39.8 | 0.93 | 37.6 | 0.99 |
| 4097 | 36.8 | 36.2 | 1.02 | 40.7 | 0.90 | 37.8 | 0.97 |
GETRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.2 | 0.2 | 1.41 | 0.0 | 11.46 | 0.1 | 2.35 |
| 3 | 0.5 | 0.3 | 1.42 | 0.1 | 8.44 | 0.2 | 2.31 |
| 4 | 0.8 | 0.6 | 1.40 | 0.1 | 6.82 | 0.4 | 2.05 |
| 6 | 1.4 | 1.2 | 1.22 | 0.3 | 4.63 | 0.7 | 2.04 |
| 8 | 2.0 | 2.0 | 1.02 | 0.5 | 3.78 | 1.0 | 2.07 |
| 12 | 3.4 | 3.2 | 1.07 | 1.0 | 3.25 | 1.5 | 2.20 |
| 16 | 4.7 | 4.0 | 1.22 | 0.6 | 7.51 | 2.0 | 2.34 |
| 24 | 6.6 | 6.4 | 1.03 | 1.7 | 3.98 | 3.7 | 1.77 |
| 32 | 9.0 | 6.7 | 1.34 | 2.1 | 4.37 | 4.7 | 1.93 |
| 48 | 13.8 | 9.9 | 1.39 | 4.2 | 3.31 | 8.0 | 1.73 |
| 64 | 17.6 | 13.0 | 1.36 | 5.4 | 3.25 | 9.8 | 1.79 |
| 96 | 23.4 | 17.0 | 1.38 | 10.2 | 2.29 | 16.0 | 1.47 |
| 100 | 24.0 | 18.5 | 1.30 | 9.9 | 2.40 | 16.5 | 1.45 |
| 128 | 30.0 | 21.3 | 1.41 | 13.7 | 2.16 | 19.6 | 1.53 |
| 192 | 36.2 | 18.4 | 1.98 | 21.6 | 1.66 | 28.0 | 1.29 |
| 200 | 37.6 | 19.3 | 1.95 | 22.6 | 1.63 | 28.5 | 1.32 |
| 256 | 43.7 | 26.3 | 1.66 | 27.3 | 1.59 | 33.5 | 1.31 |
| 257 | 42.2 | 31.2 | 1.35 | 27.4 | 1.53 | 32.6 | 1.31 |
| 384 | 51.3 | 26.7 | 1.94 | 37.5 | 1.36 | 42.2 | 1.22 |
| 500 | 54.3 | 34.1 | 1.60 | 43.3 | 1.25 | 46.9 | 1.16 |
| 512 | 54.1 | 28.4 | 1.91 | 42.9 | 1.26 | 47.2 | 1.15 |
| 768 | 60.1 | 39.1 | 1.54 | 52.1 | 1.15 | 55.6 | 1.08 |
| 1000 | 64.5 | 46.9 | 1.38 | 59.8 | 1.08 | 60.8 | 1.06 |
| 1001 | 62.9 | 43.1 | 1.46 | 59.1 | 1.06 | 59.9 | 1.05 |
| 1024 | 64.6 | 37.0 | 1.75 | 58.6 | 1.10 | 61.0 | 1.06 |
| 1536 | 69.9 | 55.8 | 1.26 | 68.1 | 1.02 | 67.5 | 1.04 |
| 2048 | 72.6 | 56.3 | 1.31 | 69.0 | 1.05 | 71.0 | 1.02 |
| 3072 | 77.0 | 64.0 | 1.21 | 78.9 | 0.98 | 74.6 | 1.03 |
| 4096 | 77.1 | 66.1 | 1.17 | 78.5 | 0.98 | 75.8 | 1.02 |
| 4097 | 75.2 | 72.8 | 1.04 | 79.1 | 0.95 | 75.2 | 1.00 |
GETRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.2 | 0.2 | 1.27 | 0.0 | 11.85 | 0.1 | 2.22 |
| 3 | 0.5 | 0.4 | 1.21 | 0.1 | 8.51 | 0.2 | 2.11 |
| 4 | 0.7 | 0.7 | 1.05 | 0.1 | 6.22 | 0.4 | 1.86 |
| 6 | 1.4 | 1.5 | 0.96 | 0.3 | 4.61 | 0.7 | 1.88 |
| 8 | 2.0 | 2.2 | 0.90 | 0.5 | 3.67 | 1.0 | 1.96 |
| 12 | 3.1 | 3.3 | 0.90 | 1.1 | 2.89 | 1.6 | 1.96 |
| 16 | 3.8 | 4.3 | 0.89 | 0.6 | 5.90 | 2.0 | 1.91 |
| 24 | 5.1 | 4.2 | 1.22 | 1.6 | 3.12 | 3.6 | 1.41 |
| 32 | 6.6 | 5.7 | 1.17 | 2.0 | 3.27 | 4.8 | 1.39 |
| 48 | 9.1 | 6.7 | 1.39 | 3.8 | 2.38 | 8.0 | 1.10 |
| 64 | 11.0 | 8.8 | 1.26 | 5.0 | 2.18 | 10.2 | 1.06 |
| 96 | 13.6 | 9.6 | 1.44 | 8.6 | 1.58 | 14.6 | 0.92 |
| 100 | 13.9 | 8.7 | 1.61 | 8.5 | 1.63 | 15.0 | 0.91 |
| 128 | 16.4 | 8.9 | 1.86 | 11.0 | 1.49 | 17.6 | 0.93 |
| 192 | 19.2 | 9.3 | 2.07 | 16.1 | 1.20 | 22.2 | 0.86 |
| 200 | 19.9 | 9.8 | 2.04 | 16.6 | 1.19 | 22.4 | 0.88 |
| 256 | 22.9 | 13.1 | 1.76 | 19.0 | 1.20 | 24.7 | 0.92 |
| 257 | 22.6 | 13.6 | 1.66 | 19.1 | 1.18 | 24.0 | 0.93 |
| 384 | 25.4 | 14.4 | 1.76 | 23.3 | 1.09 | 27.5 | 0.91 |
| 500 | 26.9 | 18.1 | 1.49 | 26.0 | 1.03 | 29.6 | 0.90 |
| 512 | 26.8 | 16.1 | 1.67 | 24.2 | 1.11 | 29.6 | 0.90 |
| 768 | 29.5 | 22.9 | 1.29 | 30.2 | 0.98 | 32.6 | 0.90 |
| 1000 | 31.5 | 26.0 | 1.21 | 33.4 | 0.94 | 34.1 | 0.91 |
| 1001 | 30.9 | 25.8 | 1.20 | 33.2 | 0.93 | 33.7 | 0.91 |
| 1024 | 31.1 | 24.3 | 1.28 | 30.8 | 1.01 | 34.0 | 0.91 |
| 1536 | 33.2 | 28.2 | 1.19 | 35.1 | 0.95 | 35.8 | 0.93 |
| 2048 | 33.2 | 30.8 | 1.08 | 36.1 | 0.92 | 36.6 | 0.90 |
| 3072 | 34.5 | 35.0 | 0.99 | 38.9 | 0.89 | 37.4 | 0.92 |
| 4096 | 34.7 | 36.4 | 0.96 | 39.9 | 0.87 | 37.5 | 0.92 |
| 4097 | 34.2 | 38.6 | 0.88 | 40.8 | 0.84 | 37.1 | 0.92 |
GEQRF float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.2 | 0.52 | 0.1 | 1.24 | 0.1 | 1.21 |
| 3x3 | 0.2 | 0.3 | 0.59 | 0.2 | 0.91 | 0.2 | 1.13 |
| 4x4 | 0.3 | 0.5 | 0.60 | 0.4 | 0.83 | 0.3 | 1.17 |
| 6x6 | 0.7 | 1.0 | 0.63 | 0.8 | 0.79 | 0.5 | 1.25 |
| 8x8 | 1.1 | 1.6 | 0.63 | 1.4 | 0.79 | 0.8 | 1.30 |
| 12x12 | 2.2 | 3.0 | 0.69 | 2.6 | 0.83 | 1.6 | 1.36 |
| 16x16 | 3.4 | 4.4 | 0.76 | 3.9 | 0.87 | 2.4 | 1.45 |
| 24x24 | 6.0 | 7.1 | 0.83 | 6.6 | 0.90 | 4.3 | 1.40 |
| 32x32 | 8.0 | 9.4 | 0.85 | 9.0 | 0.90 | 6.2 | 1.32 |
| 48x48 | 12.4 | 13.0 | 0.95 | 13.3 | 0.92 | 9.4 | 1.31 |
| 64x64 | 9.6 | 15.2 | 0.63 | 16.4 | 0.59 | 11.9 | 0.81 |
| 96x96 | 18.1 | 17.4 | 1.04 | 20.8 | 0.87 | 15.1 | 1.20 |
| 100x100 | 16.1 | 17.6 | 0.91 | 21.5 | 0.75 | 15.6 | 1.03 |
| 128x128 | 22.3 | 18.2 | 1.23 | 23.7 | 0.94 | 16.5 | 1.35 |
| 192x192 | 32.2 | 17.8 | 1.81 | 33.6 | 0.96 | 26.3 | 1.23 |
| 200x200 | 32.7 | 18.0 | 1.81 | 34.6 | 0.94 | 31.7 | 1.03 |
| 256x256 | 37.9 | 16.8 | 2.24 | 39.4 | 0.96 | 32.0 | 1.18 |
| 257x257 | 36.8 | 17.8 | 2.07 | 39.6 | 0.93 | 37.3 | 0.99 |
| 384x384 | 47.3 | 35.0 | 1.35 | 48.4 | 0.98 | 42.9 | 1.10 |
| 500x500 | 52.6 | 48.5 | 1.09 | 54.2 | 0.97 | 51.2 | 1.03 |
| 512x512 | 50.9 | 45.0 | 1.13 | 51.3 | 0.99 | 47.1 | 1.08 |
| 768x768 | 58.4 | 47.2 | 1.24 | 57.8 | 1.01 | 54.3 | 1.07 |
| 1000x1000 | 62.8 | 54.4 | 1.15 | 66.0 | 0.95 | 60.7 | 1.03 |
| 1001x1001 | 61.4 | 54.4 | 1.13 | 64.7 | 0.95 | 59.1 | 1.04 |
| 1024x1024 | 61.2 | 49.5 | 1.23 | 60.1 | 1.02 | 55.7 | 1.10 |
| 1536x1536 | 66.9 | 58.5 | 1.14 | 69.5 | 0.96 | 62.3 | 1.08 |
| 2048x2048 | 68.6 | 60.5 | 1.13 | 70.8 | 0.97 | 60.7 | 1.13 |
| 3072x3072 | 71.9 | 68.5 | 1.05 | 77.1 | 0.93 | 65.3 | 1.10 |
| 4096x4096 | 71.2 | 68.9 | 1.03 | 77.7 | 0.92 | 63.0 | 1.13 |
| 4097x4097 | 68.8 | 70.6 | 0.97 | 78.9 | 0.87 | 63.6 | 1.09 |
| 4096x8 | 15.5 | 12.2 | 1.25 | 11.9 | 1.30 | 8.2 | 1.90 |
| 4096x64 | 16.7 | 14.7 | 1.14 | 22.8 | 0.72 | 15.9 | 1.07 |
| 4096x256 | 37.2 | 15.0 | 2.48 | 42.2 | 0.88 | 32.1 | 1.16 |
| 4096x1024 | 59.9 | 45.0 | 1.31 | 63.5 | 0.94 | 55.6 | 1.08 |
| 10000x8 | 15.4 | 11.6 | 1.32 | 11.8 | 1.31 | 8.2 | 1.88 |
| 10000x100 | 26.1 | 14.4 | 1.82 | 29.7 | 0.88 | 16.4 | 1.59 |
| 10000x1000 | 64.9 | 52.4 | 1.24 | 68.8 | 0.95 | 60.1 | 1.08 |
| 10000x4000 | 72.7 | 72.9 | 1.00 | 83.5 | 0.87 | 67.4 | 1.08 |
| 100000x8 | 13.2 | 10.1 | 1.30 | 10.3 | 1.28 | 7.6 | 1.72 |
| 100000x64 | 19.8 | 13.1 | 1.51 | 24.5 | 0.81 | 14.6 | 1.35 |
| 100000x256 | 38.6 | 9.9 | 3.93 | 44.3 | 0.86 | 28.4 | 1.36 |
GEQRF double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.2 | 0.44 | 0.1 | 1.09 | 0.1 | 1.13 |
| 3x3 | 0.2 | 0.4 | 0.48 | 0.2 | 0.85 | 0.2 | 1.10 |
| 4x4 | 0.3 | 0.6 | 0.49 | 0.4 | 0.79 | 0.3 | 1.11 |
| 6x6 | 0.6 | 1.0 | 0.54 | 0.8 | 0.77 | 0.5 | 1.18 |
| 8x8 | 1.0 | 1.6 | 0.58 | 1.3 | 0.78 | 0.8 | 1.22 |
| 12x12 | 1.9 | 2.8 | 0.66 | 2.4 | 0.80 | 1.5 | 1.34 |
| 16x16 | 3.0 | 4.0 | 0.72 | 3.6 | 0.84 | 2.1 | 1.40 |
| 24x24 | 4.9 | 6.0 | 0.79 | 5.5 | 0.88 | 3.3 | 1.47 |
| 32x32 | 6.3 | 7.4 | 0.83 | 7.1 | 0.89 | 4.3 | 1.47 |
| 48x48 | 8.6 | 9.3 | 0.90 | 10.2 | 0.84 | 6.9 | 1.25 |
| 64x64 | 7.1 | 10.2 | 0.69 | 11.8 | 0.60 | 8.2 | 0.86 |
| 96x96 | 11.6 | 11.1 | 1.04 | 12.3 | 0.94 | 10.1 | 1.16 |
| 100x100 | 10.7 | 11.1 | 0.96 | 11.2 | 0.96 | 10.3 | 1.05 |
| 128x128 | 13.4 | 10.3 | 1.30 | 15.4 | 0.87 | 10.0 | 1.34 |
| 192x192 | 17.6 | 10.2 | 1.71 | 20.4 | 0.86 | 16.2 | 1.09 |
| 200x200 | 17.9 | 10.3 | 1.75 | 20.6 | 0.86 | 19.3 | 0.94 |
| 256x256 | 19.0 | 18.8 | 1.01 | 22.3 | 0.85 | 19.3 | 0.99 |
| 257x257 | 19.1 | 20.1 | 0.94 | 22.2 | 0.86 | 21.6 | 0.89 |
| 384x384 | 22.8 | 23.0 | 0.98 | 26.0 | 0.88 | 24.2 | 0.94 |
| 500x500 | 25.3 | 26.0 | 0.97 | 28.7 | 0.88 | 27.5 | 0.93 |
| 512x512 | 24.5 | 24.2 | 1.00 | 26.9 | 0.91 | 25.5 | 0.96 |
| 768x768 | 27.7 | 28.9 | 0.96 | 31.2 | 0.89 | 29.4 | 0.94 |
| 1000x1000 | 29.4 | 31.5 | 0.93 | 34.1 | 0.87 | 31.3 | 0.94 |
| 1001x1001 | 29.1 | 31.4 | 0.92 | 33.7 | 0.87 | 30.8 | 0.95 |
| 1024x1024 | 28.7 | 29.6 | 0.97 | 32.2 | 0.89 | 29.8 | 0.96 |
| 1536x1536 | 30.8 | 33.3 | 0.92 | 35.3 | 0.88 | 31.9 | 0.97 |
| 2048x2048 | 30.9 | 34.1 | 0.90 | 36.0 | 0.86 | 32.5 | 0.96 |
| 3072x3072 | 32.6 | 36.1 | 0.90 | 38.3 | 0.87 | 32.9 | 0.99 |
| 4096x4096 | 32.5 | 36.0 | 0.90 | 38.7 | 0.85 | 32.5 | 1.00 |
| 4097x4097 | 32.3 | 36.1 | 0.89 | 39.3 | 0.83 | 32.2 | 1.00 |
| 4096x8 | 6.8 | 7.3 | 0.92 | 7.4 | 0.92 | 6.1 | 1.11 |
| 4096x64 | 8.2 | 9.3 | 0.88 | 14.2 | 0.57 | 9.3 | 0.89 |
| 4096x256 | 17.9 | 18.7 | 0.95 | 23.5 | 0.76 | 17.9 | 1.01 |
| 4096x1024 | 28.0 | 29.9 | 0.93 | 34.1 | 0.82 | 30.2 | 0.93 |
| 10000x8 | 6.6 | 6.7 | 0.99 | 8.8 | 0.75 | 5.9 | 1.13 |
| 10000x100 | 12.5 | 9.1 | 1.37 | 19.3 | 0.65 | 9.5 | 1.32 |
| 10000x1000 | 29.5 | 31.3 | 0.94 | 35.3 | 0.84 | 30.2 | 0.98 |
| 10000x4000 | 32.6 | 35.2 | 0.93 | 39.7 | 0.83 | 31.8 | 1.03 |
| 100000x8 | 5.8 | 5.8 | 1.01 | 7.5 | 0.78 | 5.4 | 1.08 |
| 100000x64 | 9.4 | 7.2 | 1.29 | 16.6 | 0.57 | 8.1 | 1.16 |
| 100000x256 | 17.2 | 16.4 | 1.05 | 23.0 | 0.75 | 14.9 | 1.16 |
SYEV float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.6 | 0.4 | 1.52 | 0.4 | 1.66 | 0.4 | 1.59 |
| 3 | 0.7 | 0.3 | 2.13 | 0.3 | 2.38 | 0.4 | 1.60 |
| 4 | 1.0 | 0.4 | 2.50 | 0.4 | 2.30 | 0.6 | 1.77 |
| 6 | 1.4 | 0.7 | 2.03 | 0.7 | 2.16 | 1.0 | 1.48 |
| 8 | 2.0 | 1.0 | 2.10 | 1.0 | 2.10 | 1.3 | 1.61 |
| 12 | 3.3 | 1.6 | 2.05 | 1.7 | 1.98 | 2.0 | 1.62 |
| 16 | 4.4 | 2.3 | 1.88 | 2.4 | 1.87 | 2.8 | 1.57 |
| 24 | 6.9 | 3.6 | 1.90 | 3.7 | 1.87 | 4.1 | 1.68 |
| 32 | 9.0 | 4.8 | 1.88 | 4.7 | 1.89 | 5.2 | 1.72 |
| 48 | 12.3 | 6.5 | 1.89 | 5.8 | 2.11 | 6.7 | 1.84 |
| 64 | 15.0 | 7.6 | 1.99 | 7.3 | 2.01 | 7.8 | 1.94 |
| 96 | 18.5 | 9.1 | 2.04 | 8.7 | 2.09 | 9.2 | 2.01 |
| 100 | 18.9 | 9.3 | 2.03 | 8.9 | 2.12 | 9.4 | 2.01 |
| 128 | 21.0 | 9.8 | 2.14 | 9.8 | 2.16 | 9.8 | 2.15 |
| 192 | 25.0 | 11.0 | 2.26 | 11.1 | 2.25 | 11.4 | 2.18 |
| 200 | 25.4 | 11.0 | 2.32 | 11.3 | 2.25 | 11.4 | 2.23 |
| 256 | 27.0 | 11.3 | 2.38 | 12.0 | 2.24 | 12.0 | 2.25 |
| 257 | 28.4 | 11.4 | 2.48 | 12.1 | 2.35 | 12.1 | 2.34 |
| 384 | 30.2 | 12.0 | 2.50 | 13.0 | 2.32 | 12.9 | 2.33 |
| 500 | 31.4 | 12.4 | 2.53 | 13.6 | 2.32 | 13.4 | 2.33 |
| 512 | 30.4 | 12.1 | 2.51 | 13.6 | 2.26 | 13.3 | 2.28 |
| 768 | 31.7 | 12.5 | 2.53 | 14.2 | 2.25 | 13.8 | 2.29 |
| 1000 | 33.5 | 12.9 | 2.59 | 14.5 | 2.32 | 14.2 | 2.36 |
| 1001 | 35.8 | 13.0 | 2.76 | 14.5 | 2.47 | 14.1 | 2.53 |
| 1024 | 32.9 | 12.6 | 2.61 | 14.4 | 2.27 | 14.1 | 2.34 |
| 1536 | 34.1 | 13.1 | 2.60 | 14.8 | 2.31 | 14.4 | 2.36 |
| 2048 | 33.7 | 12.1 | 2.80 | 14.9 | 2.26 | 14.5 | 2.33 |
SYEV double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 0.6 | 0.4 | 1.58 | 0.3 | 1.89 | 0.4 | 1.60 |
| 3 | 0.5 | 0.3 | 1.86 | 0.3 | 1.80 | 0.4 | 1.43 |
| 4 | 0.7 | 0.4 | 1.91 | 0.4 | 1.94 | 0.5 | 1.48 |
| 6 | 1.1 | 0.6 | 1.87 | 0.6 | 1.76 | 0.7 | 1.44 |
| 8 | 1.4 | 0.8 | 1.66 | 0.9 | 1.74 | 1.1 | 1.31 |
| 12 | 2.3 | 1.4 | 1.63 | 1.4 | 1.60 | 1.7 | 1.37 |
| 16 | 3.1 | 1.9 | 1.61 | 2.0 | 1.55 | 2.2 | 1.41 |
| 24 | 4.4 | 2.9 | 1.49 | 3.0 | 1.46 | 3.1 | 1.40 |
| 32 | 5.4 | 3.7 | 1.47 | 3.8 | 1.43 | 3.8 | 1.43 |
| 48 | 7.1 | 5.1 | 1.38 | 4.6 | 1.56 | 5.1 | 1.38 |
| 64 | 8.4 | 5.9 | 1.42 | 5.7 | 1.49 | 5.9 | 1.42 |
| 96 | 9.7 | 7.0 | 1.40 | 6.8 | 1.44 | 7.0 | 1.40 |
| 100 | 10.0 | 7.1 | 1.40 | 6.9 | 1.46 | 7.1 | 1.40 |
| 128 | 10.8 | 7.5 | 1.44 | 7.5 | 1.44 | 7.5 | 1.43 |
| 192 | 12.3 | 8.2 | 1.49 | 8.6 | 1.44 | 8.7 | 1.41 |
| 200 | 12.5 | 8.2 | 1.52 | 8.9 | 1.42 | 8.8 | 1.43 |
| 256 | 13.0 | 8.5 | 1.54 | 9.2 | 1.41 | 9.3 | 1.40 |
| 257 | 14.2 | 8.6 | 1.65 | 9.3 | 1.52 | 9.2 | 1.53 |
| 384 | 13.6 | 8.8 | 1.55 | 10.1 | 1.35 | 9.9 | 1.37 |
| 500 | 14.4 | 9.0 | 1.59 | 10.6 | 1.36 | 10.4 | 1.38 |
| 512 | 14.2 | 8.9 | 1.60 | 10.6 | 1.35 | 10.4 | 1.37 |
| 768 | 14.9 | 9.4 | 1.59 | 11.2 | 1.33 | 10.8 | 1.38 |
| 1000 | 15.4 | 9.8 | 1.58 | 11.3 | 1.37 | 11.1 | 1.39 |
| 1001 | 17.1 | 9.9 | 1.73 | 11.6 | 1.48 | 11.1 | 1.53 |
| 1024 | 14.9 | 9.2 | 1.62 | 11.5 | 1.30 | 10.9 | 1.36 |
| 1536 | 15.6 | 9.8 | 1.60 | 11.9 | 1.32 | 11.3 | 1.33 |
| 2048 | 13.8 | 8.3 | 1.66 | 11.0 | 1.22 | 11.0 | 1.26 |
GESDD float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 1.8 | 0.2 | 8.09 | 0.2 | 9.86 | 0.2 | 7.74 |
| 3x3 | 1.3 | 0.4 | 3.63 | 0.3 | 4.02 | 0.5 | 2.93 |
| 4x4 | 1.4 | 0.5 | 2.64 | 0.5 | 2.76 | 0.7 | 2.07 |
| 6x6 | 1.5 | 1.0 | 1.52 | 1.0 | 1.57 | 1.3 | 1.19 |
| 8x8 | 1.8 | 1.5 | 1.15 | 1.5 | 1.21 | 1.9 | 0.93 |
| 12x12 | 2.2 | 2.6 | 0.84 | 2.7 | 0.79 | 3.2 | 0.69 |
| 16x16 | 3.8 | 3.6 | 1.05 | 3.7 | 1.04 | 4.3 | 0.87 |
| 24x24 | 5.6 | 5.6 | 0.99 | 5.6 | 1.00 | 6.4 | 0.87 |
| 32x32 | 7.8 | 8.9 | 0.87 | 8.5 | 0.91 | 10.0 | 0.78 |
| 48x48 | 12.7 | 14.1 | 0.90 | 11.8 | 1.09 | 15.0 | 0.85 |
| 64x64 | 17.1 | 20.9 | 0.81 | 17.5 | 0.98 | 21.9 | 0.78 |
| 96x96 | 27.1 | 29.7 | 0.91 | 26.7 | 1.01 | 31.1 | 0.87 |
| 100x100 | 28.1 | 30.9 | 0.91 | 27.5 | 1.02 | 32.6 | 0.86 |
| 128x128 | 34.8 | 37.5 | 0.92 | 35.5 | 0.99 | 40.2 | 0.86 |
| 192x192 | 50.3 | 44.2 | 1.14 | 46.3 | 1.09 | 50.1 | 1.00 |
| 200x200 | 52.6 | 46.5 | 1.13 | 48.0 | 1.10 | 53.3 | 0.99 |
| 256x256 | 59.0 | 46.8 | 1.26 | 53.6 | 1.11 | 54.1 | 1.09 |
| 257x257 | 61.0 | 47.3 | 1.29 | 56.2 | 1.09 | 62.4 | 0.98 |
| 384x384 | 75.9 | 52.9 | 1.44 | 68.1 | 1.11 | 68.3 | 1.11 |
| 500x500 | 86.7 | 59.6 | 1.46 | 81.7 | 1.06 | 85.8 | 1.01 |
| 512x512 | 83.2 | 55.1 | 1.51 | 76.1 | 1.09 | 76.2 | 1.09 |
| 768x768 | 95.7 | 58.0 | 1.65 | 88.5 | 1.08 | 86.9 | 1.10 |
| 1000x1000 | 105.9 | 63.3 | 1.68 | 101.9 | 1.04 | 102.9 | 1.03 |
| 1001x1001 | 106.0 | 60.2 | 1.76 | 101.2 | 1.05 | 102.2 | 1.04 |
| 1024x1024 | 97.0 | 55.4 | 1.75 | 90.8 | 1.07 | 88.3 | 1.10 |
| 1536x1536 | 111.1 | 64.3 | 1.73 | 107.1 | 1.04 | 104.6 | 1.06 |
| 2048x2048 | 103.7 | 56.0 | 1.86 | 104.1 | 1.00 | 103.9 | 1.00 |
| 4096x64 | 59.4 | 40.0 | 1.47 | 50.3 | 1.18 | 45.2 | 1.32 |
| 4096x256 | 102.0 | 43.1 | 2.36 | 89.2 | 1.14 | 82.0 | 1.25 |
| 4096x1024 | 115.4 | 50.3 | 2.30 | 110.5 | 1.04 | 104.0 | 1.11 |
| 10000x8 | 20.3 | 23.0 | 0.90 | 23.5 | 0.85 | 19.8 | 1.02 |
| 10000x100 | 86.4 | 49.2 | 1.75 | 64.7 | 1.34 | 49.1 | 1.77 |
| 10000x1000 | 143.2 | 70.8 | 2.02 | 143.4 | 1.00 | 132.9 | 1.08 |
GESDD double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2x2 | 1.6 | 0.2 | 7.63 | 0.2 | 9.16 | 0.2 | 7.02 |
| 3x3 | 0.9 | 0.3 | 2.79 | 0.3 | 3.04 | 0.4 | 2.33 |
| 4x4 | 1.0 | 0.5 | 2.06 | 0.5 | 2.03 | 0.6 | 1.68 |
| 6x6 | 1.0 | 0.9 | 1.15 | 0.8 | 1.26 | 1.1 | 0.95 |
| 8x8 | 1.2 | 1.3 | 0.92 | 1.2 | 1.00 | 1.5 | 0.77 |
| 12x12 | 1.3 | 2.2 | 0.63 | 2.1 | 0.62 | 2.4 | 0.55 |
| 16x16 | 2.3 | 3.0 | 0.77 | 2.9 | 0.83 | 3.2 | 0.71 |
| 24x24 | 3.2 | 4.4 | 0.73 | 4.3 | 0.75 | 4.4 | 0.73 |
| 32x32 | 4.4 | 6.7 | 0.66 | 6.5 | 0.66 | 7.0 | 0.63 |
| 48x48 | 6.5 | 10.2 | 0.64 | 8.7 | 0.75 | 10.4 | 0.63 |
| 64x64 | 8.5 | 14.0 | 0.61 | 12.6 | 0.66 | 14.6 | 0.58 |
| 96x96 | 12.5 | 18.5 | 0.67 | 18.0 | 0.70 | 20.2 | 0.62 |
| 100x100 | 13.1 | 19.2 | 0.68 | 18.3 | 0.71 | 21.1 | 0.61 |
| 128x128 | 15.9 | 20.9 | 0.76 | 22.0 | 0.70 | 24.7 | 0.65 |
| 192x192 | 22.3 | 24.8 | 0.89 | 28.4 | 0.79 | 30.3 | 0.74 |
| 200x200 | 23.5 | 26.6 | 0.89 | 29.9 | 0.79 | 32.6 | 0.71 |
| 256x256 | 26.7 | 26.8 | 1.00 | 32.7 | 0.82 | 33.9 | 0.79 |
| 257x257 | 27.4 | 27.4 | 0.99 | 33.6 | 0.81 | 36.8 | 0.75 |
| 384x384 | 33.8 | 29.2 | 1.16 | 40.0 | 0.85 | 40.5 | 0.84 |
| 500x500 | 39.3 | 32.0 | 1.23 | 45.9 | 0.86 | 47.7 | 0.82 |
| 512x512 | 37.0 | 28.8 | 1.29 | 41.7 | 0.88 | 41.6 | 0.90 |
| 768x768 | 44.2 | 32.6 | 1.36 | 50.3 | 0.88 | 49.5 | 0.89 |
| 1000x1000 | 49.1 | 34.8 | 1.41 | 56.0 | 0.88 | 56.4 | 0.87 |
| 1001x1001 | 49.1 | 35.0 | 1.40 | 56.0 | 0.88 | 56.1 | 0.88 |
| 1024x1024 | 43.5 | 29.5 | 1.48 | 51.2 | 0.85 | 50.1 | 0.87 |
| 1536x1536 | 50.8 | 32.1 | 1.58 | 57.0 | 0.89 | 56.1 | 0.91 |
| 2048x2048 | 46.8 | 25.6 | 1.83 | 56.3 | 0.83 | 57.1 | 0.82 |
| 4096x64 | 29.4 | 24.5 | 1.22 | 29.9 | 0.98 | 26.8 | 1.10 |
| 4096x256 | 48.7 | 30.6 | 1.59 | 49.7 | 0.98 | 46.1 | 1.05 |
| 4096x1024 | 53.4 | 27.1 | 1.97 | 59.5 | 0.89 | 56.3 | 0.95 |
| 10000x8 | 8.6 | 15.1 | 0.57 | 16.6 | 0.50 | 14.8 | 0.59 |
| 10000x100 | 41.9 | 29.0 | 1.45 | 37.1 | 1.13 | 28.5 | 1.46 |
| 10000x1000 | 65.6 | 35.3 | 1.86 | 73.3 | 0.89 | 67.3 | 0.98 |
GEEV float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 2.0 | 0.3 | 7.66 | 0.2 | 12.34 | 0.3 | 7.90 |
| 3 | 1.0 | 0.3 | 3.08 | 0.2 | 4.04 | 0.4 | 2.56 |
| 4 | 1.4 | 0.5 | 2.99 | 0.4 | 3.70 | 0.6 | 2.26 |
| 6 | 1.9 | 0.9 | 2.24 | 0.7 | 2.85 | 1.0 | 2.04 |
| 8 | 2.8 | 1.3 | 2.13 | 1.0 | 2.84 | 1.5 | 1.92 |
| 12 | 4.2 | 2.2 | 1.96 | 1.7 | 2.51 | 2.3 | 1.96 |
| 16 | 5.4 | 3.0 | 1.80 | 2.1 | 2.58 | 3.1 | 1.77 |
| 24 | 7.3 | 5.3 | 1.40 | 3.3 | 2.24 | 4.5 | 1.65 |
| 32 | 8.5 | 7.2 | 1.18 | 4.1 | 2.06 | 5.6 | 1.57 |
| 48 | 10.6 | 10.9 | 0.98 | 5.8 | 1.78 | 7.6 | 1.40 |
| 64 | 11.5 | 13.5 | 0.84 | 7.0 | 1.64 | 8.9 | 1.30 |
| 96 | 13.5 | 10.5 | 1.29 | 8.7 | 1.54 | 10.3 | 1.30 |
| 100 | 13.6 | 11.1 | 1.22 | 9.1 | 1.49 | 10.8 | 1.25 |
| 128 | 14.3 | 13.0 | 1.09 | 10.9 | 1.31 | 12.9 | 1.13 |
| 192 | 15.5 | 22.9 | 0.68 | 18.6 | 0.82 | 21.5 | 0.72 |
| 200 | 16.1 | 24.8 | 0.65 | 19.7 | 0.81 | 23.3 | 0.70 |
| 256 | 16.5 | 28.2 | 0.59 | 24.0 | 0.68 | 27.8 | 0.60 |
| 257 | 16.2 | 28.4 | 0.57 | 24.3 | 0.67 | 27.8 | 0.58 |
| 384 | 14.3 | 36.2 | 0.40 | 34.6 | 0.41 | 38.7 | 0.37 |
| 500 | 17.1 | 42.6 | 0.40 | 43.4 | 0.39 | 47.9 | 0.36 |
| 512 | 17.3 | 31.4 | 0.56 | 33.0 | 0.52 | 36.0 | 0.48 |
| 768 | 17.8 | 43.5 | 0.41 | 47.5 | 0.37 | 52.8 | 0.34 |
| 1000 | 18.5 | 55.2 | 0.33 | 66.1 | 0.29 | 70.5 | 0.26 |
| 1001 | 17.8 | 54.2 | 0.33 | 66.3 | 0.27 | 69.7 | 0.26 |
| 1024 | 16.6 | 49.4 | 0.34 | 60.1 | 0.28 | 62.6 | 0.27 |
GEEV double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | NVPL GFLOP/s | Eigen ÷ NVPL | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|---|---|
| 2 | 1.9 | 0.2 | 7.77 | 0.2 | 12.18 | 0.2 | 8.03 |
| 3 | 1.0 | 0.4 | 2.78 | 0.2 | 4.28 | 0.3 | 2.62 |
| 4 | 1.2 | 0.5 | 2.44 | 0.4 | 3.54 | 0.5 | 2.40 |
| 6 | 1.7 | 0.9 | 1.98 | 0.6 | 2.91 | 0.9 | 1.94 |
| 8 | 2.1 | 1.2 | 1.65 | 0.8 | 2.47 | 1.2 | 1.80 |
| 12 | 3.0 | 2.0 | 1.46 | 1.3 | 2.19 | 1.8 | 1.69 |
| 16 | 3.7 | 2.8 | 1.32 | 1.8 | 2.04 | 2.5 | 1.54 |
| 24 | 4.6 | 4.2 | 1.08 | 2.6 | 1.72 | 3.5 | 1.39 |
| 32 | 5.3 | 5.5 | 0.92 | 3.4 | 1.55 | 4.4 | 1.25 |
| 48 | 6.4 | 7.6 | 0.85 | 4.6 | 1.37 | 5.7 | 1.13 |
| 64 | 7.0 | 8.9 | 0.79 | 5.5 | 1.25 | 6.8 | 1.03 |
| 96 | 7.6 | 7.3 | 1.07 | 6.3 | 1.22 | 7.1 | 1.07 |
| 100 | 7.8 | 7.5 | 1.03 | 6.5 | 1.20 | 7.5 | 1.04 |
| 128 | 8.0 | 7.8 | 1.02 | 7.2 | 1.10 | 8.0 | 1.01 |
| 192 | 7.6 | 11.6 | 0.66 | 11.3 | 0.68 | 12.7 | 0.60 |
| 200 | 8.5 | 12.5 | 0.68 | 11.9 | 0.71 | 13.4 | 0.63 |
| 256 | 8.4 | 14.0 | 0.61 | 13.7 | 0.61 | 15.1 | 0.55 |
| 257 | 8.2 | 14.5 | 0.57 | 14.3 | 0.57 | 15.7 | 0.54 |
| 384 | 7.9 | 19.2 | 0.41 | 19.3 | 0.41 | 20.8 | 0.38 |
| 500 | 8.3 | 22.4 | 0.37 | 23.6 | 0.35 | 25.0 | 0.33 |
| 512 | 7.9 | 16.7 | 0.47 | 18.1 | 0.44 | 18.1 | 0.43 |
| 768 | 8.1 | 22.7 | 0.36 | 26.6 | 0.31 | 27.1 | 0.30 |
| 1000 | 8.3 | 28.0 | 0.29 | 35.0 | 0.24 | 35.3 | 0.24 |
| 1001 | 8.2 | 27.9 | 0.30 | 34.9 | 0.24 | 35.2 | 0.23 |
| 1024 | 7.4 | 23.9 | 0.31 | 30.5 | 0.24 | 31.2 | 0.24 |