Eigen vs. BLAS/LAPACK libraries, Raspberry Pi 5 (October 2026)
Eigen’s dense kernels measured head-to-head against two BLAS/LAPACK libraries on a Raspberry Pi 5, one thread, in 64-bit mode: the operations and shapes of the Zen 5 page, with Eigen built for the Armv8-A NEON baseline, against OpenBLAS and Arm Performance Libraries. This is the first measurement of a Raspberry Pi on this site. The same cells in 32-bit mode, against OpenBLAS, are on the 32-bit page.
Conditions
| CPU | Raspberry Pi 5 Model B Rev 1.0 (Broadcom BCM2712): four Arm Cortex-A76 cores (lscpu: Cortex-A76, r4p1) at 2.4 GHz, L1d 64 KiB and L2 512 KiB per core, L3 2 MiB shared; 8 GiB LPDDR4X; Armv8.2-A with NEON, no SVE |
| OS | Raspberry Pi OS 64-bit (Debian GNU/Linux 12, bookworm), Linux 6.12.109+rpt-rpi-v8, 4 KiB pages |
| Compiler | GCC 12.2.0 (Debian 12.2.0-14+deb12u1), -O3 -DNDEBUG for the default aarch64 target, C++17 |
| Eigen | master 674e4a4e5 (5.0.1-dev), default configuration, no external BLAS. The measured tree, 3a00e9407, is that master plus the comparison harness; the library code under Eigen/ is master’s. Every Eigen kernel is the NEON code |
| OpenBLAS | 0.3.34, built from source on the board with TARGET=CORTEXA76 and without OpenMP (library reports CORTEXA76 MAX_THREADS=4); no Fortran compiler was installed, so its LAPACK is the C translation of the reference LAPACK that OpenBLAS builds in that case (NOFORTRAN=1) |
| Arm Performance Libraries | 26.07 (reports 26.7.0 release), GCC build, the sequential LP64 library libarmpl_lp64 |
| Threads | 1 for every arm: OPENBLAS_NUM_THREADS, ARMPL_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 core 3 with taskset, the performance cpufreq governor (2.4 GHz), an active cooler |
| Date | 2026-10-25 14:25 to 2026-10-26 04:12 (UTC−7): 34 runs, one per operation and library, about 12.7 hours of measurement |
| Harness | benchmarks/comparison/run.py from Eigen merge request !2903 and the commits that add the five new operations, machine profile raspberry-pi5 |
GEMM at n = 1024 ran at 16.0 GFLOP/s in double and 33.1 in float in Eigen, against 17.0 and 32.8 for OpenBLAS, and 15.9 and 32.8 for Arm Performance Libraries.
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 two binaries, one per library, also measured every Eigen cell, so Eigen was measured twice: the Eigen line on each chart is the median of the two passes and the shaded band is their spread, the run-to-run noise on this board: within 3 % for 92 % of the cells and above 10 % for 1 %. 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, under an exclusive benchmark lock that keeps other
timing jobs off the board. It started only after an idle gate (no compilers, one-minute load below 0.5,
less than 0.2 of a core busy, SoC temperature below 70 °C) and was discarded and repeated if the whole
machine reached 1.8 busy cores in any 4 s sample, or if the firmware’s throttle flags
(vcgencmd get_throttled) changed during the run: 2 of 36 attempts were discarded, one for a
disturbance (AXPY against OpenBLAS) and one for another (SYEV against Arm Performance Libraries). The
flags read 0x0, no under-voltage and no throttling, before and after every accepted run. The SoC
temperature peaked at 71.6 °C during the session.
The dotted vertical lines on the charts mark the sizes at which the operands of the call, inputs and outputs together, fill a core’s L1 data cache (64 KiB), its L2 cache (512 KiB) and the shared L3 cache (2 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: 1.98 ns per call for Eigen against 8.3 ns for OpenBLAS and 19.2 ns for Arm Performance Libraries. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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).

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.

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.

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.

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 29.3 s in double.

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.

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 11.1 s in double.

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 | 5.09 | 2.09 | 0.97 | 0.88 | 1.06 |
| AXPY | float | OpenBLAS | 2.59 | 1.55 | 1.20 | 1.12 | 1.09 |
| AXPY | double | Arm Performance Libraries | 3.62 | 1.31 | 0.77 | 0.88 | 1.05 |
| AXPY | double | OpenBLAS | 2.24 | 1.09 | 0.90 | 0.94 | 1.06 |
| DOT | float | Arm Performance Libraries | 6.49 | 2.53 | 1.46 | 1.03 | 1.00 |
| DOT | float | OpenBLAS | 3.49 | 1.71 | 1.27 | 1.04 | 1.00 |
| DOT | double | Arm Performance Libraries | 5.79 | 1.92 | 1.48 | 1.10 | 1.12 |
| DOT | double | OpenBLAS | 2.81 | 2.13 | 2.39 | 1.54 | 1.16 |
| GEMV | float | Arm Performance Libraries | 4.56 | 1.79 | 0.77 | 0.70 | – |
| GEMV | float | OpenBLAS | 2.98 | 3.02 | 0.85 | 0.34 | – |
| GEMV | double | Arm Performance Libraries | 4.63 | 1.59 | 1.02 | 0.54 | – |
| GEMV | double | OpenBLAS | 2.79 | 2.53 | 0.67 | 0.31 | – |
| GEMM | float | Arm Performance Libraries | 4.01 | 1.08 | 0.97 | 1.03 | – |
| GEMM | float | OpenBLAS | 1.39 | 0.96 | 0.97 | 1.01 | – |
| GEMM | double | Arm Performance Libraries | 2.74 | 0.96 | 0.94 | 1.05 | – |
| GEMM | double | OpenBLAS | 1.71 | 1.10 | 0.94 | 0.97 | – |
| TRSM | float | Arm Performance Libraries | 3.22 | 2.64 | 1.26 | 1.27 | – |
| TRSM | float | OpenBLAS | 2.95 | 3.18 | 1.40 | 0.98 | – |
| TRSM | double | Arm Performance Libraries | 2.63 | 1.58 | 1.07 | 1.10 | – |
| TRSM | double | OpenBLAS | 2.13 | 1.51 | 0.98 | 0.84 | – |
| TRMM | float | Arm Performance Libraries | 3.85 | 1.05 | 0.88 | 0.88 | – |
| TRMM | float | OpenBLAS | 0.70 | 0.90 | 0.93 | 0.86 | – |
| TRMM | double | Arm Performance Libraries | 3.51 | 0.86 | 0.83 | 0.80 | – |
| TRMM | double | OpenBLAS | 0.78 | 0.96 | 0.84 | 0.75 | – |
| SYMM | float | Arm Performance Libraries | 2.29 | 1.14 | 0.95 | 0.92 | – |
| SYMM | float | OpenBLAS | 0.86 | 0.99 | 0.95 | 0.92 | – |
| SYMM | double | Arm Performance Libraries | 2.04 | 1.02 | 0.88 | 0.82 | – |
| SYMM | double | OpenBLAS | 0.95 | 1.09 | 0.87 | 0.78 | – |
| SYRK | float | Arm Performance Libraries | 2.58 | 1.20 | 0.97 | 1.01 | – |
| SYRK | float | OpenBLAS | 0.71 | 0.91 | 0.97 | 1.01 | – |
| SYRK | double | Arm Performance Libraries | 2.07 | 1.00 | 0.96 | 1.03 | – |
| SYRK | double | OpenBLAS | 0.60 | 0.94 | 0.90 | 0.94 | – |
| POTRF | float | Arm Performance Libraries | 1.09 | 1.61 | 1.17 | 1.22 | – |
| POTRF | float | OpenBLAS | 1.47 | 1.53 | 1.09 | 1.02 | – |
| POTRF | double | Arm Performance Libraries | 1.07 | 1.28 | 1.07 | 1.12 | – |
| POTRF | double | OpenBLAS | 1.36 | 1.22 | 0.92 | 0.94 | – |
| PSTRF | float | Arm Performance Libraries | 2.49 | 1.95 | 1.38 | 1.73 | – |
| PSTRF | float | OpenBLAS | 1.60 | 1.75 | 1.36 | 1.51 | – |
| PSTRF | double | Arm Performance Libraries | 2.42 | 1.56 | 1.13 | 1.33 | – |
| PSTRF | double | OpenBLAS | 1.60 | 1.47 | 1.21 | 1.34 | – |
| SYTRF | float | Arm Performance Libraries | 3.72 | 1.87 | 1.14 | 1.08 | – |
| SYTRF | float | OpenBLAS | 1.58 | 1.64 | 1.51 | 1.02 | – |
| SYTRF | double | Arm Performance Libraries | 3.31 | 1.50 | 0.96 | 0.96 | – |
| SYTRF | double | OpenBLAS | 1.64 | 1.43 | 1.31 | 1.00 | – |
| GETRF | float | Arm Performance Libraries | 1.03 | 1.29 | 1.28 | 1.68 | – |
| GETRF | float | OpenBLAS | 1.76 | 1.50 | 1.12 | 0.95 | – |
| GETRF | double | Arm Performance Libraries | 0.96 | 0.99 | 1.02 | 1.38 | – |
| GETRF | double | OpenBLAS | 1.68 | 1.06 | 0.87 | 0.86 | – |
| GEQRF | float | Arm Performance Libraries | 0.64 | 1.22 | 1.23 | 1.17 | – |
| GEQRF | float | OpenBLAS | 1.33 | 1.57 | 1.15 | 1.17 | – |
| GEQRF | double | Arm Performance Libraries | 0.66 | 1.14 | 1.03 | 1.02 | – |
| GEQRF | double | OpenBLAS | 1.30 | 1.44 | 1.05 | 1.07 | – |
| GELS | float | Arm Performance Libraries | 1.94 | 1.96 | 1.63 | 1.28 | – |
| GELS | float | OpenBLAS | 1.50 | 1.73 | 1.35 | 1.21 | – |
| GELS | double | Arm Performance Libraries | 1.82 | 1.74 | 1.26 | 1.08 | – |
| GELS | double | OpenBLAS | 1.44 | 1.56 | 1.16 | 1.07 | – |
| SYEV | float | Arm Performance Libraries | 2.71 | 2.09 | 2.37 | 1.50 | – |
| SYEV | float | OpenBLAS | 3.01 | 3.20 | 2.66 | 1.28 | – |
| SYEV | double | Arm Performance Libraries | 2.13 | 1.50 | 1.28 | 0.87 | – |
| SYEV | double | OpenBLAS | 2.65 | 2.39 | 1.49 | 0.74 | – |
| GESDD | float | Arm Performance Libraries | 2.75 | 0.94 | 0.96 | 1.32 | – |
| GESDD | float | OpenBLAS | 2.45 | 1.09 | 1.08 | 0.98 | – |
| GESDD | double | Arm Performance Libraries | 1.86 | 0.65 | 0.81 | 1.07 | – |
| GESDD | double | OpenBLAS | 2.05 | 0.77 | 0.80 | 0.79 | – |
| GEEV | float | Arm Performance Libraries | 4.43 | 1.40 | 0.46 | – | – |
| GEEV | float | OpenBLAS | 3.40 | 1.84 | 0.50 | – | – |
| GEEV | double | Arm Performance Libraries | 3.69 | 1.23 | 0.45 | – | – |
| GEEV | double | OpenBLAS | 3.06 | 1.54 | 0.45 | – | – |
Observations
- Level with both libraries on the large level-3 products. GEMM is 0.94 to 1.05 times OpenBLAS and Arm Performance Libraries in double from n = 192, TRSM 0.84 to 1.10 and POTRF 0.92 to 1.12. Against OpenBLAS, GETRF is 0.86 to 0.87 above n = 192; against Arm Performance Libraries it is 1.02 to 1.38.
- Eigen leads at the small end. Up to n = 128 it is 1.1 to 5.8 times faster on AXPY and DOT and 1.5 to 4.6 times on GEMV and TRSM.
- GEMV falls behind once the matrix leaves the L2 cache. Eigen’s rate drops from 6.1 GFLOP/s at n = 256 (0.5 MiB) to 2.8 at 512 and 1.1 at 1536, while OpenBLAS holds 4.7 and then 3.6 to 3.3 up to n = 4096: ratios of 0.61 at n = 512 and about 0.3 from n = 768. Arm Performance Libraries sits between the two (1.5 to 2.5 GFLOP/s from n = 1536).
- TRMM and SYMM are 0.75 to 0.88 times both libraries above n = 192.
- The new factorizations are ahead of OpenBLAS’s C LAPACK and level with or ahead of Arm Performance Libraries: PSTRF 1.1 to 1.6, SYTRF 0.96 to 1.5 and GELS 1.1 to 1.7 in double.
- SYEV, GESDD and GEEV trail both libraries at the larger sizes: SYEV 0.74 (OpenBLAS) and 0.87 (Arm Performance Libraries) above n = 1536, GESDD 0.77 to 0.80 against OpenBLAS from n = 24 and 0.65 to 0.81 against Arm Performance Libraries to n = 1024, and GEEV 0.45 at n = 192 to 1024.
Caveats
- The Raspberry Pi 5 has 4 KiB pages and a small shared last-level cache (2 MiB), so rates at sizes beyond a few megabytes are largely set by the memory system; compare arms measured in the same session.
- OpenBLAS was built without a Fortran compiler, so its LAPACK routines are the C translation of the reference LAPACK rather than the Fortran one the other pages’ OpenBLAS builds use; BLAS kernels are unaffected. LAPACK ratios against OpenBLAS therefore compare Eigen with that translation.
- The board runs the
performancegovernor at 2.4 GHz with an active cooler; its SoC peaked at 71.6 °C and the firmware reported no throttling or under-voltage during any accepted run. - 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 | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 1.0 | 0.2 | 6.20 | 0.4 | 2.84 |
| 3 | 1.4 | 0.2 | 5.57 | 0.5 | 2.73 |
| 4 | 2.0 | 0.4 | 5.38 | 0.6 | 3.16 |
| 6 | 2.4 | 0.5 | 4.92 | 0.8 | 2.83 |
| 8 | 3.5 | 0.8 | 4.64 | 1.7 | 1.97 |
| 12 | 5.3 | 1.1 | 5.00 | 1.9 | 2.79 |
| 16 | 6.1 | 1.5 | 4.16 | 3.0 | 2.08 |
| 24 | 7.2 | 2.1 | 3.44 | 3.8 | 1.88 |
| 32 | 7.9 | 2.6 | 3.04 | 4.5 | 1.74 |
| 48 | 8.7 | 3.6 | 2.38 | 5.5 | 1.58 |
| 64 | 9.2 | 4.6 | 2.00 | 6.1 | 1.49 |
| 96 | 9.7 | 6.1 | 1.59 | 7.0 | 1.39 |
| 100 | 9.7 | 6.1 | 1.60 | 6.6 | 1.48 |
| 128 | 10.0 | 7.3 | 1.37 | 7.5 | 1.33 |
| 192 | 10.3 | 8.7 | 1.18 | 8.1 | 1.27 |
| 256 | 10.5 | 9.7 | 1.07 | 8.4 | 1.24 |
| 384 | 10.6 | 11.0 | 0.97 | 8.8 | 1.21 |
| 512 | 10.7 | 10.8 | 0.99 | 9.0 | 1.19 |
| 768 | 10.8 | 11.8 | 0.91 | 9.2 | 1.18 |
| 1000 | 10.8 | 12.1 | 0.89 | 9.3 | 1.17 |
| 1001 | 10.8 | 11.9 | 0.90 | 9.2 | 1.17 |
| 1024 | 10.8 | 12.3 | 0.88 | 9.3 | 1.17 |
| 1536 | 10.7 | 13.0 | 0.82 | 9.4 | 1.14 |
| 2048 | 10.7 | 12.9 | 0.83 | 9.4 | 1.14 |
| 3072 | 10.8 | 13.0 | 0.83 | 9.4 | 1.15 |
| 4096 | 10.8 | 13.4 | 0.81 | 9.4 | 1.15 |
| 6144 | 10.9 | 12.6 | 0.87 | 9.5 | 1.15 |
| 8192 | 10.8 | 12.1 | 0.89 | 9.3 | 1.15 |
| 10000 | 8.8 | 9.3 | 0.95 | 8.3 | 1.06 |
| 12288 | 8.3 | 8.3 | 0.99 | 7.8 | 1.05 |
| 16384 | 8.5 | 8.4 | 1.00 | 8.0 | 1.06 |
| 32768 | 8.5 | 8.4 | 1.00 | 8.0 | 1.06 |
| 65536 | 8.1 | 8.2 | 1.00 | 7.8 | 1.04 |
| 100000 | 7.7 | 7.6 | 1.01 | 7.5 | 1.03 |
| 131072 | 7.5 | 7.5 | 1.00 | 7.4 | 1.02 |
| 262144 | 7.1 | 7.1 | 1.01 | 6.7 | 1.07 |
| 524288 | 4.0 | 2.4 | 1.65 | 2.3 | 1.72 |
| 1000000 | 1.8 | 1.7 | 1.10 | 1.7 | 1.12 |
| 1048576 | 1.8 | 1.6 | 1.08 | 1.7 | 1.07 |
| 2097152 | 1.5 | 1.5 | 1.01 | 1.4 | 1.02 |
| 4194304 | 1.4 | 1.3 | 1.05 | 1.4 | 1.02 |
| 8388608 | 1.4 | 1.4 | 0.99 | 1.4 | 1.01 |
| 16777216 | 1.4 | 1.4 | 0.99 | 1.3 | 1.01 |
AXPY double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 1.0 | 0.2 | 5.47 | 0.4 | 2.74 |
| 3 | 1.3 | 0.3 | 5.03 | 0.5 | 2.46 |
| 4 | 1.8 | 0.4 | 4.89 | 0.6 | 2.87 |
| 6 | 2.4 | 0.5 | 4.58 | 0.8 | 2.83 |
| 8 | 1.9 | 0.7 | 1.56 | 1.5 | 1.86 |
| 12 | 3.2 | 1.0 | 3.11 | 1.7 | 1.89 |
| 16 | 3.5 | 1.3 | 2.73 | 2.4 | 1.45 |
| 24 | 3.8 | 1.8 | 2.13 | 3.0 | 1.30 |
| 32 | 4.0 | 2.3 | 1.79 | 3.3 | 1.21 |
| 48 | 4.3 | 3.0 | 1.41 | 3.8 | 1.11 |
| 64 | 4.4 | 3.6 | 1.21 | 4.1 | 1.06 |
| 96 | 4.5 | 4.4 | 1.04 | 4.5 | 1.00 |
| 100 | 4.5 | 4.4 | 1.04 | 4.4 | 1.03 |
| 128 | 4.6 | 4.9 | 0.94 | 4.7 | 0.97 |
| 192 | 4.7 | 5.5 | 0.85 | 5.0 | 0.94 |
| 256 | 4.7 | 5.4 | 0.87 | 5.1 | 0.92 |
| 384 | 4.7 | 5.9 | 0.80 | 5.2 | 0.91 |
| 512 | 4.7 | 6.2 | 0.77 | 5.3 | 0.90 |
| 768 | 4.7 | 6.5 | 0.72 | 5.3 | 0.88 |
| 1000 | 4.7 | 6.7 | 0.70 | 5.4 | 0.87 |
| 1001 | 4.7 | 6.5 | 0.73 | 5.4 | 0.87 |
| 1024 | 4.7 | 6.6 | 0.71 | 5.4 | 0.87 |
| 1536 | 4.7 | 6.5 | 0.73 | 5.4 | 0.88 |
| 2048 | 4.8 | 6.5 | 0.73 | 5.4 | 0.88 |
| 3072 | 4.8 | 6.3 | 0.76 | 5.4 | 0.88 |
| 4096 | 4.8 | 6.1 | 0.79 | 5.3 | 0.90 |
| 6144 | 4.1 | 4.2 | 0.99 | 4.3 | 0.96 |
| 8192 | 4.2 | 4.2 | 1.00 | 4.3 | 0.98 |
| 10000 | 4.2 | 4.1 | 1.01 | 4.2 | 0.99 |
| 12288 | 4.2 | 4.2 | 1.00 | 4.3 | 0.98 |
| 16384 | 4.2 | 4.2 | 1.00 | 4.3 | 0.98 |
| 32768 | 4.1 | 4.1 | 1.00 | 4.1 | 1.00 |
| 65536 | 3.7 | 3.7 | 1.00 | 3.7 | 1.00 |
| 100000 | 3.6 | 3.6 | 1.01 | 3.6 | 1.01 |
| 131072 | 3.6 | 3.5 | 1.03 | 3.4 | 1.04 |
| 262144 | 2.0 | 1.2 | 1.63 | 1.2 | 1.67 |
| 524288 | 0.9 | 0.8 | 1.08 | 0.8 | 1.06 |
| 1000000 | 0.8 | 0.8 | 1.02 | 0.8 | 1.03 |
| 1048576 | 0.7 | 0.7 | 1.02 | 0.7 | 1.03 |
| 2097152 | 0.7 | 0.7 | 1.00 | 0.7 | 1.01 |
| 4194304 | 0.7 | 0.7 | 0.99 | 0.7 | 1.02 |
| 8388608 | 0.7 | 0.7 | 0.99 | 0.7 | 1.01 |
| 16777216 | 0.6 | 0.7 | 0.97 | 0.6 | 0.97 |
DOT float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 1.9 | 0.2 | 8.37 | 0.4 | 4.58 |
| 3 | 2.6 | 0.3 | 7.97 | 0.6 | 4.36 |
| 4 | 4.3 | 0.5 | 8.89 | 1.0 | 4.44 |
| 6 | 2.9 | 0.6 | 4.70 | 1.2 | 2.40 |
| 8 | 6.2 | 0.9 | 6.74 | 1.6 | 3.86 |
| 12 | 7.7 | 1.3 | 6.12 | 2.3 | 3.32 |
| 16 | 7.7 | 1.8 | 4.20 | 3.3 | 2.32 |
| 24 | 8.8 | 2.4 | 3.69 | 4.1 | 2.13 |
| 32 | 10.7 | 3.3 | 3.20 | 5.5 | 1.96 |
| 48 | 12.3 | 4.5 | 2.75 | 7.2 | 1.70 |
| 64 | 13.5 | 5.5 | 2.47 | 8.2 | 1.66 |
| 96 | 14.3 | 6.9 | 1.99 | 9.6 | 1.55 |
| 100 | 15.2 | 7.0 | 2.16 | 9.7 | 1.57 |
| 128 | 15.6 | 8.0 | 1.94 | 10.7 | 1.46 |
| 192 | 16.7 | 9.6 | 1.75 | 11.9 | 1.40 |
| 256 | 17.1 | 10.6 | 1.62 | 12.7 | 1.33 |
| 384 | 17.7 | 11.8 | 1.52 | 13.7 | 1.29 |
| 512 | 17.8 | 12.5 | 1.43 | 14.2 | 1.25 |
| 768 | 18.2 | 13.3 | 1.37 | 14.6 | 1.25 |
| 1000 | 18.3 | 13.6 | 1.34 | 14.9 | 1.23 |
| 1001 | 18.2 | 13.5 | 1.35 | 15.0 | 1.22 |
| 1024 | 18.4 | 13.8 | 1.34 | 15.0 | 1.23 |
| 1536 | 18.5 | 14.3 | 1.30 | 15.3 | 1.22 |
| 2048 | 16.3 | 14.5 | 1.15 | 14.9 | 1.06 |
| 3072 | 14.8 | 14.8 | 1.01 | 14.6 | 1.01 |
| 4096 | 14.8 | 14.9 | 0.99 | 14.9 | 0.99 |
| 6144 | 14.8 | 14.9 | 0.99 | 14.5 | 1.02 |
| 8192 | 14.0 | 13.8 | 1.01 | 13.7 | 1.03 |
| 10000 | 11.5 | 11.7 | 0.97 | 11.3 | 1.03 |
| 12288 | 10.8 | 11.3 | 0.96 | 10.7 | 1.02 |
| 16384 | 10.9 | 11.2 | 0.98 | 10.9 | 1.00 |
| 32768 | 10.9 | 11.3 | 0.97 | 11.0 | 1.00 |
| 65536 | 10.4 | 10.6 | 0.99 | 10.3 | 1.00 |
| 100000 | 9.9 | 9.9 | 1.00 | 9.8 | 1.00 |
| 131072 | 9.3 | 9.3 | 1.01 | 9.3 | 1.01 |
| 262144 | 7.9 | 7.9 | 1.01 | 7.8 | 1.01 |
| 524288 | 5.2 | 5.1 | 1.06 | 5.1 | 1.01 |
| 1000000 | 3.9 | 3.8 | 1.06 | 3.9 | 1.00 |
| 1048576 | 3.5 | 3.5 | 1.02 | 3.5 | 0.99 |
| 2097152 | 3.1 | 3.1 | 1.01 | 3.0 | 0.99 |
| 4194304 | 2.9 | 2.9 | 1.00 | 2.9 | 0.99 |
| 8388608 | 3.2 | 3.3 | 0.97 | 3.2 | 0.99 |
| 16777216 | 3.2 | 3.3 | 0.96 | 3.2 | 0.99 |
DOT double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 2.0 | 0.2 | 9.20 | 0.5 | 4.44 |
| 3 | 2.4 | 0.3 | 8.00 | 0.7 | 3.67 |
| 4 | 3.2 | 0.4 | 7.50 | 1.1 | 2.88 |
| 6 | 3.8 | 0.6 | 6.93 | 1.4 | 2.80 |
| 8 | 3.8 | 0.9 | 4.50 | 1.6 | 2.40 |
| 12 | 4.4 | 1.1 | 3.92 | 2.1 | 2.08 |
| 16 | 5.4 | 1.7 | 3.22 | 2.6 | 2.10 |
| 24 | 6.1 | 2.2 | 2.77 | 3.1 | 1.98 |
| 32 | 6.6 | 2.9 | 2.28 | 3.4 | 1.95 |
| 48 | 7.1 | 3.8 | 1.81 | 3.7 | 2.00 |
| 64 | 7.9 | 4.4 | 1.80 | 3.6 | 2.19 |
| 96 | 8.3 | 4.9 | 1.69 | 3.7 | 2.23 |
| 100 | 8.2 | 4.8 | 1.65 | 3.7 | 2.30 |
| 128 | 8.6 | 5.2 | 1.65 | 3.8 | 2.27 |
| 192 | 8.9 | 5.6 | 1.60 | 3.7 | 2.39 |
| 256 | 8.9 | 5.7 | 1.56 | 3.8 | 2.34 |
| 384 | 9.1 | 5.9 | 1.53 | 3.8 | 2.41 |
| 512 | 9.2 | 6.1 | 1.52 | 3.8 | 2.43 |
| 768 | 9.3 | 6.2 | 1.50 | 3.8 | 2.47 |
| 1000 | 8.8 | 6.2 | 1.34 | 3.8 | 2.43 |
| 1001 | 9.3 | 6.2 | 1.51 | 3.8 | 2.49 |
| 1024 | 8.3 | 6.2 | 1.32 | 3.8 | 2.20 |
| 1536 | 7.4 | 6.3 | 1.17 | 4.1 | 1.80 |
| 2048 | 7.4 | 6.4 | 1.16 | 3.8 | 1.95 |
| 3072 | 7.3 | 6.4 | 1.16 | 4.0 | 1.83 |
| 4096 | 7.0 | 6.1 | 1.13 | 3.9 | 1.82 |
| 6144 | 5.4 | 5.3 | 1.02 | 4.1 | 1.33 |
| 8192 | 5.5 | 5.0 | 1.10 | 4.1 | 1.34 |
| 10000 | 5.4 | 5.3 | 1.01 | 4.1 | 1.32 |
| 12288 | 5.5 | 5.1 | 1.07 | 4.1 | 1.34 |
| 16384 | 5.5 | 5.2 | 1.05 | 4.1 | 1.34 |
| 32768 | 5.2 | 5.1 | 1.04 | 4.0 | 1.28 |
| 65536 | 4.7 | 4.5 | 1.05 | 4.1 | 1.14 |
| 100000 | 4.4 | 4.3 | 1.01 | 4.1 | 1.06 |
| 131072 | 3.9 | 3.8 | 1.03 | 3.7 | 1.06 |
| 262144 | 2.6 | 2.4 | 1.08 | 2.4 | 1.07 |
| 524288 | 1.7 | 1.5 | 1.13 | 1.5 | 1.16 |
| 1000000 | 1.8 | 1.4 | 1.27 | 1.5 | 1.22 |
| 1048576 | 1.5 | 1.3 | 1.17 | 1.3 | 1.18 |
| 2097152 | 1.4 | 1.2 | 1.16 | 1.2 | 1.18 |
| 4194304 | 1.6 | 1.3 | 1.20 | 1.3 | 1.20 |
| 8388608 | 1.6 | 1.3 | 1.20 | 1.3 | 1.21 |
| 16777216 | 1.6 | 1.3 | 1.19 | 1.3 | 1.21 |
GEMV float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.6 | 0.1 | 5.53 | 0.2 | 2.58 |
| 3x3 | 1.0 | 0.2 | 4.17 | 0.4 | 2.67 |
| 4x4 | 2.1 | 0.4 | 5.14 | 0.8 | 2.60 |
| 6x6 | 3.1 | 0.9 | 3.53 | 1.1 | 2.70 |
| 8x8 | 6.2 | 1.4 | 4.56 | 2.0 | 3.03 |
| 12x12 | 10.8 | 2.0 | 5.44 | 3.0 | 3.61 |
| 16x16 | 15.1 | 3.8 | 3.95 | 3.9 | 3.91 |
| 24x24 | 15.5 | 6.8 | 2.29 | 5.1 | 3.04 |
| 32x32 | 23.3 | 9.2 | 2.55 | 6.3 | 3.68 |
| 48x48 | 24.4 | 12.2 | 1.99 | 7.1 | 3.43 |
| 64x64 | 24.9 | 14.1 | 1.78 | 7.9 | 3.15 |
| 96x96 | 25.1 | 16.0 | 1.57 | 8.4 | 3.00 |
| 100x100 | 23.1 | 17.4 | 1.33 | 8.5 | 2.72 |
| 128x128 | 20.2 | 14.8 | 1.38 | 8.7 | 2.31 |
| 192x192 | 15.4 | 12.6 | 1.22 | 9.0 | 1.72 |
| 200x200 | 14.3 | 17.0 | 0.84 | 9.0 | 1.59 |
| 256x256 | 15.3 | 12.9 | 1.18 | 9.1 | 1.69 |
| 257x257 | 11.6 | 11.8 | 0.97 | 8.9 | 1.33 |
| 384x384 | 12.7 | 12.9 | 0.99 | 9.3 | 1.38 |
| 500x500 | 8.9 | 12.2 | 0.73 | 9.3 | 0.96 |
| 512x512 | 9.9 | 12.2 | 0.82 | 9.3 | 1.06 |
| 768x768 | 6.6 | 8.8 | 0.79 | 9.3 | 0.67 |
| 1000x1000 | 3.0 | 6.2 | 0.48 | 9.2 | 0.32 |
| 1001x1001 | 2.5 | 6.0 | 0.42 | 8.9 | 0.28 |
| 1024x1024 | 3.1 | 6.3 | 0.50 | 9.2 | 0.33 |
| 1536x1536 | 2.5 | 1.2 | 1.86 | 8.4 | 0.32 |
| 2048x2048 | 2.4 | 4.8 | 0.49 | 7.5 | 0.34 |
| 3072x3072 | 2.5 | 5.0 | 0.50 | 6.5 | 0.39 |
| 4096x4096 | 2.4 | 4.0 | 0.61 | 6.5 | 0.36 |
| 4097x4097 | 1.9 | 3.1 | 0.61 | 6.4 | 0.29 |
| 8x10000 | 11.3 | 9.8 | 1.15 | 2.9 | 3.92 |
| 100x10000 | 6.0 | 6.5 | 0.92 | 8.3 | 0.72 |
| 1000x10000 | 2.2 | 4.5 | 0.48 | 7.1 | 0.31 |
| 4000x10000 | 2.2 | 4.6 | 0.48 | 6.5 | 0.34 |
| 10000x8 | 14.9 | 14.5 | 1.03 | 8.5 | 1.75 |
| 10000x100 | 2.7 | 7.3 | 0.34 | 7.9 | 0.37 |
| 10000x1000 | 2.5 | 5.3 | 0.47 | 6.7 | 0.37 |
| 10000x4000 | 2.5 | 5.3 | 0.47 | 6.5 | 0.38 |
GEMV double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.6 | 0.1 | 5.68 | 0.2 | 2.60 |
| 3x3 | 1.0 | 0.2 | 4.39 | 0.4 | 2.63 |
| 4x4 | 2.0 | 0.4 | 5.03 | 0.8 | 2.49 |
| 6x6 | 3.8 | 0.8 | 4.49 | 1.1 | 3.32 |
| 8x8 | 5.4 | 0.9 | 6.13 | 1.9 | 2.78 |
| 12x12 | 6.6 | 1.6 | 4.22 | 2.5 | 2.59 |
| 16x16 | 9.9 | 3.2 | 3.14 | 3.1 | 3.25 |
| 24x24 | 11.0 | 4.7 | 2.37 | 3.6 | 3.05 |
| 32x32 | 12.3 | 6.1 | 2.01 | 3.8 | 3.22 |
| 48x48 | 12.3 | 7.4 | 1.65 | 4.2 | 3.00 |
| 64x64 | 12.6 | 8.0 | 1.55 | 4.3 | 2.95 |
| 96x96 | 9.5 | 6.7 | 1.42 | 4.5 | 2.14 |
| 100x100 | 9.6 | 7.7 | 1.25 | 4.5 | 2.13 |
| 128x128 | 7.6 | 6.3 | 1.20 | 4.5 | 1.70 |
| 192x192 | 7.5 | 6.4 | 1.17 | 4.6 | 1.60 |
| 200x200 | 7.3 | 7.7 | 0.94 | 4.6 | 1.59 |
| 256x256 | 6.1 | 6.6 | 0.92 | 4.7 | 1.32 |
| 257x257 | 5.0 | 6.9 | 0.72 | 4.6 | 1.08 |
| 384x384 | 5.1 | 6.1 | 0.83 | 4.7 | 1.09 |
| 500x500 | 3.2 | 1.4 | 2.27 | 4.7 | 0.68 |
| 512x512 | 2.8 | 4.5 | 0.60 | 4.7 | 0.61 |
| 768x768 | 1.5 | 3.0 | 0.52 | 4.6 | 0.32 |
| 1000x1000 | 1.2 | 0.9 | 1.17 | 4.3 | 0.32 |
| 1001x1001 | 1.0 | 0.8 | 1.23 | 4.1 | 0.24 |
| 1024x1024 | 1.3 | 0.7 | 1.99 | 4.2 | 0.31 |
| 1536x1536 | 1.1 | 2.5 | 0.42 | 3.6 | 0.34 |
| 2048x2048 | 1.2 | 2.0 | 0.61 | 3.5 | 0.33 |
| 3072x3072 | 1.3 | 2.6 | 0.51 | 3.4 | 0.38 |
| 4096x4096 | 0.9 | 1.5 | 0.65 | 3.3 | 0.28 |
| 4097x4097 | 0.8 | 1.5 | 0.55 | 3.3 | 0.24 |
| 8x10000 | 7.7 | 4.9 | 1.56 | 2.9 | 2.63 |
| 100x10000 | 2.5 | 1.0 | 2.47 | 4.3 | 0.60 |
| 1000x10000 | 1.3 | 2.5 | 0.51 | 3.4 | 0.38 |
| 4000x10000 | 1.0 | 2.0 | 0.51 | 3.4 | 0.30 |
| 10000x8 | 6.7 | 6.3 | 1.04 | 4.1 | 1.66 |
| 10000x100 | 1.1 | 0.8 | 1.22 | 3.6 | 0.34 |
| 10000x1000 | 2.8 | 3.0 | 0.94 | 3.2 | 0.86 |
| 10000x4000 | 2.9 | 3.1 | 0.95 | 3.2 | 0.88 |
GEMM float
| m×n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2x2 | 0.5 | 0.2 | 2.44 | 0.2 | 2.97 |
| 3x3x3 | 0.9 | 0.4 | 2.03 | 0.5 | 1.73 |
| 4x4x4 | 4.1 | 0.7 | 6.15 | 1.4 | 2.96 |
| 6x6x6 | 2.7 | 0.7 | 4.09 | 2.9 | 0.93 |
| 8x8x8 | 6.2 | 1.5 | 3.96 | 6.9 | 0.92 |
| 12x12x12 | 12.1 | 2.6 | 4.50 | 13.9 | 0.90 |
| 16x16x16 | 16.0 | 2.1 | 7.48 | 19.1 | 0.86 |
| 24x24x24 | 22.3 | 15.8 | 1.38 | 24.4 | 0.94 |
| 32x32x32 | 25.1 | 20.2 | 1.22 | 28.2 | 0.91 |
| 48x48x48 | 28.5 | 26.8 | 1.05 | 31.4 | 0.92 |
| 64x64x64 | 29.6 | 28.9 | 1.01 | 32.7 | 0.92 |
| 96x96x96 | 31.3 | 32.1 | 0.97 | 26.0 | 1.21 |
| 100x100x100 | 31.5 | 30.8 | 1.01 | 33.5 | 0.95 |
| 128x128x128 | 32.3 | 33.4 | 0.96 | 34.8 | 0.93 |
| 160x160x160 | 32.6 | 34.0 | 0.95 | 35.2 | 0.93 |
| 192x192x192 | 32.8 | 34.6 | 0.94 | 33.0 | 1.00 |
| 200x200x200 | 33.0 | 34.6 | 0.95 | 35.5 | 0.94 |
| 224x224x224 | 33.0 | 34.8 | 0.95 | 35.6 | 0.93 |
| 256x256x256 | 33.0 | 34.8 | 0.95 | 35.6 | 0.93 |
| 257x257x257 | 32.3 | 33.6 | 0.96 | 34.8 | 0.93 |
| 288x288x288 | 33.3 | 35.3 | 0.94 | 35.7 | 0.94 |
| 320x320x320 | 33.5 | 35.3 | 0.94 | 35.7 | 0.94 |
| 384x384x384 | 33.1 | 35.2 | 0.94 | 34.7 | 0.96 |
| 448x448x448 | 32.8 | 34.5 | 0.95 | 32.6 | 1.01 |
| 500x500x500 | 32.5 | 33.4 | 0.97 | 32.7 | 1.00 |
| 512x512x512 | 32.4 | 32.3 | 1.00 | 31.8 | 1.02 |
| 768x768x768 | 33.2 | 32.8 | 1.01 | 32.9 | 1.01 |
| 1000x1000x1000 | 33.4 | 33.1 | 1.01 | 33.0 | 1.02 |
| 1001x1001x1001 | 33.1 | 32.9 | 1.00 | 33.3 | 1.00 |
| 1024x1024x1024 | 33.1 | 32.8 | 1.01 | 32.8 | 1.01 |
| 1536x1536x1536 | 33.8 | 32.9 | 1.02 | 33.3 | 1.02 |
| 2048x2048x2048 | 34.0 | 33.5 | 1.02 | 33.6 | 1.01 |
| 3072x3072x3072 | 34.3 | 33.3 | 1.03 | 34.1 | 1.00 |
| 4096x4096x4096 | 34.4 | 33.5 | 1.03 | 34.0 | 1.01 |
| 4097x4097x4097 | 34.3 | 33.5 | 1.02 | 33.9 | 1.01 |
| 64x64x1024 | 30.0 | 31.8 | 0.95 | 32.2 | 0.93 |
| 64x1024x64 | 30.8 | 30.1 | 1.01 | 33.2 | 0.94 |
| 256x256x1024 | 32.4 | 32.9 | 0.98 | 31.0 | 1.05 |
| 1024x64x64 | 29.6 | 29.2 | 1.00 | 33.1 | 0.91 |
| 1024x256x256 | 31.7 | 31.7 | 0.99 | 33.5 | 0.96 |
| 4096x96x96 | 27.0 | 25.6 | 1.04 | 27.7 | 0.99 |
| 4096x128x128 | 28.3 | 27.2 | 1.03 | 28.3 | 1.01 |
| 4096x144x144 | 28.7 | 28.7 | 0.99 | 29.1 | 1.00 |
| 4096x160x160 | 28.8 | 27.7 | 1.03 | 29.2 | 1.00 |
| 4096x176x176 | 29.4 | 29.6 | 0.98 | 29.8 | 0.99 |
| 8192x128x128 | 26.5 | 24.9 | 1.05 | 26.7 | 1.01 |
| 10000x8x8 | 16.1 | 12.6 | 1.21 | 21.2 | 0.80 |
| 10000x100x100 | 26.6 | 26.2 | 1.00 | 26.4 | 1.01 |
| 10000x1000x1000 | 33.8 | 33.0 | 1.02 | 34.0 | 1.00 |
| 10000x4000x4000 | 34.6 | 33.8 | 1.02 | 34.5 | 1.00 |
GEMM double
| m×n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2x2 | 1.1 | 0.2 | 4.92 | 0.2 | 6.06 |
| 3x3x3 | 1.2 | 0.5 | 2.65 | 0.5 | 2.54 |
| 4x4x4 | 2.5 | 0.7 | 3.77 | 1.2 | 2.08 |
| 6x6x6 | 3.1 | 0.9 | 3.59 | 2.6 | 1.19 |
| 8x8x8 | 4.2 | 1.6 | 2.63 | 4.9 | 0.88 |
| 12x12x12 | 7.5 | 4.0 | 1.84 | 8.7 | 0.88 |
| 16x16x16 | 9.2 | 6.6 | 1.35 | 6.6 | 1.43 |
| 24x24x24 | 11.6 | 10.6 | 1.07 | 13.5 | 0.88 |
| 32x32x32 | 12.7 | 11.7 | 1.06 | 6.9 | 1.87 |
| 48x48x48 | 13.8 | 14.8 | 0.92 | 14.3 | 0.98 |
| 64x64x64 | 14.6 | 15.3 | 0.94 | 12.4 | 1.19 |
| 96x96x96 | 15.4 | 16.9 | 0.91 | 14.8 | 1.04 |
| 100x100x100 | 15.5 | 16.6 | 0.93 | 16.9 | 0.92 |
| 128x128x128 | 15.5 | 16.8 | 0.92 | 15.0 | 1.04 |
| 160x160x160 | 15.8 | 17.3 | 0.91 | 17.2 | 0.92 |
| 192x192x192 | 16.0 | 17.7 | 0.90 | 16.2 | 0.99 |
| 200x200x200 | 16.0 | 17.4 | 0.91 | 17.5 | 0.92 |
| 224x224x224 | 16.0 | 17.5 | 0.91 | 17.5 | 0.92 |
| 256x256x256 | 15.9 | 17.5 | 0.90 | 17.4 | 0.91 |
| 257x257x257 | 15.6 | 17.4 | 0.89 | 16.9 | 0.93 |
| 288x288x288 | 15.8 | 17.6 | 0.89 | 17.2 | 0.93 |
| 320x320x320 | 15.6 | 17.1 | 0.91 | 17.2 | 0.91 |
| 384x384x384 | 15.4 | 16.7 | 0.92 | 17.1 | 0.91 |
| 448x448x448 | 15.7 | 16.2 | 0.96 | 16.9 | 0.93 |
| 500x500x500 | 15.7 | 16.0 | 0.98 | 16.8 | 0.94 |
| 512x512x512 | 15.5 | 15.8 | 0.97 | 16.8 | 0.93 |
| 768x768x768 | 15.9 | 15.7 | 1.01 | 16.9 | 0.94 |
| 1000x1000x1000 | 16.3 | 16.2 | 1.01 | 17.0 | 0.96 |
| 1001x1001x1001 | 16.2 | 16.1 | 1.01 | 16.9 | 0.96 |
| 1024x1024x1024 | 16.0 | 15.9 | 1.01 | 17.0 | 0.94 |
| 1536x1536x1536 | 16.3 | 16.2 | 1.01 | 17.1 | 0.95 |
| 2048x2048x2048 | 16.3 | 15.5 | 1.05 | 16.8 | 0.97 |
| 3072x3072x3072 | 16.5 | 15.6 | 1.06 | 17.3 | 0.95 |
| 4096x4096x4096 | 16.4 | 15.4 | 1.06 | 16.6 | 0.99 |
| 4097x4097x4097 | 16.4 | 15.5 | 1.06 | 16.7 | 0.99 |
| 64x64x1024 | 14.2 | 15.1 | 0.93 | 16.0 | 0.90 |
| 64x1024x64 | 15.1 | 16.4 | 0.92 | 16.7 | 0.91 |
| 256x256x1024 | 14.7 | 15.4 | 0.94 | 16.8 | 0.88 |
| 1024x64x64 | 14.3 | 15.5 | 0.91 | 16.3 | 0.89 |
| 1024x256x256 | 14.7 | 16.0 | 0.92 | 16.6 | 0.89 |
| 4096x96x96 | 11.7 | 12.5 | 0.91 | 13.7 | 0.86 |
| 4096x128x128 | 13.0 | 13.6 | 0.93 | 14.8 | 0.89 |
| 4096x144x144 | 13.2 | 14.5 | 0.89 | 14.9 | 0.90 |
| 4096x160x160 | 13.0 | 13.9 | 0.91 | 14.8 | 0.90 |
| 4096x176x176 | 13.8 | 14.9 | 0.91 | 15.5 | 0.91 |
| 8192x128x128 | 11.6 | 13.3 | 0.93 | 13.3 | 0.82 |
| 10000x8x8 | 7.7 | 6.5 | 1.14 | 10.5 | 0.76 |
| 10000x100x100 | 13.5 | 14.4 | 0.93 | 15.4 | 0.88 |
| 10000x1000x1000 | 16.3 | 16.3 | 1.00 | 17.3 | 0.94 |
| 10000x4000x4000 | 16.8 | 16.1 | 1.04 | 17.5 | 0.96 |
TRSM float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.2 | 0.1 | 1.72 | 0.1 | 1.41 |
| 3x3 | 0.4 | 0.2 | 1.50 | 0.2 | 1.89 |
| 4x4 | 1.4 | 0.8 | 1.82 | 0.5 | 2.85 |
| 6x6 | 1.9 | 0.8 | 2.48 | 0.8 | 2.32 |
| 8x8 | 5.4 | 0.7 | 7.43 | 1.2 | 4.57 |
| 12x12 | 7.6 | 1.1 | 6.64 | 2.0 | 3.71 |
| 16x16 | 11.3 | 1.8 | 6.31 | 1.7 | 6.48 |
| 24x24 | 13.9 | 1.8 | 7.54 | 2.9 | 4.81 |
| 32x32 | 16.0 | 3.9 | 4.16 | 3.3 | 4.82 |
| 48x48 | 18.1 | 6.4 | 2.83 | 4.8 | 3.78 |
| 64x64 | 19.3 | 8.3 | 2.33 | 6.1 | 3.16 |
| 96x96 | 20.4 | 11.8 | 1.73 | 7.8 | 2.62 |
| 100x100 | 20.0 | 12.0 | 1.68 | 8.8 | 2.28 |
| 128x128 | 20.8 | 14.2 | 1.47 | 10.4 | 1.99 |
| 192x192 | 24.2 | 18.2 | 1.33 | 13.2 | 1.84 |
| 200x200 | 24.1 | 18.8 | 1.29 | 14.0 | 1.72 |
| 256x256 | 26.5 | 20.0 | 1.32 | 15.7 | 1.68 |
| 257x257 | 25.5 | 19.5 | 1.31 | 15.8 | 1.62 |
| 384x384 | 27.6 | 23.3 | 1.18 | 19.6 | 1.40 |
| 500x500 | 28.4 | 25.0 | 1.14 | 20.4 | 1.39 |
| 512x512 | 27.4 | 21.8 | 1.26 | 20.5 | 1.34 |
| 768x768 | 28.3 | 23.5 | 1.20 | 23.2 | 1.22 |
| 1000x1000 | 28.9 | 25.8 | 1.12 | 24.9 | 1.16 |
| 1001x1001 | 28.6 | 25.5 | 1.12 | 24.7 | 1.16 |
| 1024x1024 | 27.2 | 16.6 | 1.63 | 24.7 | 1.10 |
| 1536x1536 | 28.9 | 20.1 | 1.44 | 27.2 | 1.06 |
| 2048x2048 | 28.8 | 20.3 | 1.43 | 28.5 | 1.00 |
| 3072x3072 | 29.7 | 23.3 | 1.28 | 30.3 | 0.97 |
| 4096x4096 | 28.8 | 22.7 | 1.27 | 31.1 | 0.92 |
| 4097x4097 | 28.6 | 28.4 | 1.01 | 30.8 | 0.93 |
| 64x4096 | 19.0 | 9.3 | 2.06 | 6.1 | 3.12 |
| 256x4096 | 23.7 | 8.9 | 2.69 | 14.5 | 1.63 |
| 1024x8 | 11.8 | 10.2 | 1.12 | 8.1 | 1.51 |
| 1024x64 | 25.2 | 22.9 | 1.08 | 20.3 | 1.26 |
| 1024x256 | 28.2 | 24.2 | 1.16 | 24.1 | 1.18 |
| 1024x4096 | 26.7 | 15.8 | 1.69 | 24.8 | 1.07 |
| 4096x8 | 7.8 | 8.5 | 0.93 | 6.7 | 1.15 |
| 4096x64 | 22.9 | 24.4 | 0.94 | 20.7 | 1.11 |
| 4096x256 | 28.7 | 29.5 | 0.97 | 28.0 | 1.02 |
| 4096x1024 | 30.0 | 23.7 | 1.27 | 30.6 | 0.98 |
TRSM double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.2 | 0.1 | 1.85 | 0.1 | 1.47 |
| 3x3 | 0.4 | 0.2 | 1.65 | 0.2 | 1.73 |
| 4x4 | 1.2 | 0.8 | 1.61 | 0.5 | 2.32 |
| 6x6 | 2.0 | 0.7 | 3.08 | 0.9 | 2.28 |
| 8x8 | 3.5 | 0.8 | 4.20 | 1.3 | 2.75 |
| 12x12 | 4.9 | 1.3 | 3.84 | 2.2 | 2.27 |
| 16x16 | 6.2 | 1.7 | 3.56 | 2.6 | 2.38 |
| 24x24 | 7.6 | 2.6 | 2.91 | 3.8 | 2.01 |
| 32x32 | 8.5 | 3.6 | 2.38 | 3.3 | 2.55 |
| 48x48 | 9.4 | 5.6 | 1.69 | 6.2 | 1.51 |
| 64x64 | 9.8 | 6.7 | 1.47 | 6.1 | 1.61 |
| 96x96 | 10.3 | 8.7 | 1.17 | 8.3 | 1.25 |
| 100x100 | 10.2 | 8.8 | 1.15 | 9.4 | 1.10 |
| 128x128 | 10.0 | 9.5 | 1.06 | 9.5 | 1.06 |
| 192x192 | 12.1 | 11.0 | 1.09 | 10.7 | 1.13 |
| 200x200 | 12.2 | 11.4 | 1.07 | 12.0 | 1.02 |
| 256x256 | 12.5 | 11.2 | 1.11 | 12.8 | 0.98 |
| 257x257 | 12.8 | 12.0 | 1.07 | 12.6 | 1.01 |
| 384x384 | 13.4 | 12.9 | 1.04 | 13.4 | 1.00 |
| 500x500 | 12.5 | 13.6 | 0.90 | 13.8 | 0.93 |
| 512x512 | 12.5 | 10.7 | 1.16 | 13.4 | 0.94 |
| 768x768 | 13.5 | 12.7 | 1.05 | 14.4 | 0.95 |
| 1000x1000 | 14.1 | 13.9 | 1.01 | 14.8 | 0.96 |
| 1001x1001 | 13.9 | 13.8 | 1.00 | 14.8 | 0.94 |
| 1024x1024 | 13.1 | 10.1 | 1.27 | 14.6 | 0.92 |
| 1536x1536 | 13.6 | 11.6 | 1.17 | 15.3 | 0.89 |
| 2048x2048 | 13.2 | 10.8 | 1.24 | 15.3 | 0.86 |
| 3072x3072 | 13.7 | 12.5 | 1.10 | 16.2 | 0.85 |
| 4096x4096 | 12.7 | 11.4 | 1.11 | 15.8 | 0.80 |
| 4097x4097 | 13.1 | 14.0 | 0.94 | 15.9 | 0.82 |
| 64x4096 | 8.9 | 5.0 | 1.79 | 6.1 | 1.46 |
| 256x4096 | 10.3 | 5.3 | 1.91 | 10.0 | 1.04 |
| 1024x8 | 5.0 | 4.8 | 1.02 | 7.4 | 0.69 |
| 1024x64 | 11.9 | 12.5 | 0.94 | 14.0 | 0.86 |
| 1024x256 | 13.5 | 13.4 | 1.00 | 15.1 | 0.90 |
| 1024x4096 | 12.5 | 9.1 | 1.37 | 14.1 | 0.89 |
| 4096x8 | 3.2 | 3.0 | 1.06 | 5.5 | 0.58 |
| 4096x64 | 10.5 | 11.0 | 0.94 | 13.3 | 0.79 |
| 4096x256 | 13.7 | 14.0 | 0.98 | 15.5 | 0.88 |
| 4096x1024 | 13.4 | 11.8 | 1.14 | 15.8 | 0.84 |
TRMM float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 5.61 | 0.1 | 0.62 |
| 3x3 | 0.2 | 0.0 | 4.64 | 0.3 | 0.66 |
| 4x4 | 0.5 | 0.1 | 5.22 | 0.8 | 0.62 |
| 6x6 | 1.1 | 0.3 | 3.59 | 1.6 | 0.67 |
| 8x8 | 2.5 | 0.6 | 3.93 | 3.3 | 0.74 |
| 12x12 | 5.0 | 1.7 | 2.98 | 6.6 | 0.76 |
| 16x16 | 7.1 | 3.2 | 2.20 | 8.0 | 0.88 |
| 24x24 | 10.4 | 7.2 | 1.44 | 12.5 | 0.83 |
| 32x32 | 13.1 | 10.4 | 1.26 | 14.4 | 0.91 |
| 48x48 | 16.7 | 16.0 | 1.04 | 19.5 | 0.85 |
| 64x64 | 18.9 | 18.9 | 1.00 | 21.9 | 0.86 |
| 96x96 | 21.5 | 23.8 | 0.90 | 17.7 | 1.21 |
| 100x100 | 21.7 | 23.2 | 0.93 | 25.3 | 0.86 |
| 128x128 | 22.9 | 26.3 | 0.87 | 27.5 | 0.83 |
| 192x192 | 24.7 | 29.2 | 0.84 | 25.1 | 0.99 |
| 200x200 | 24.8 | 29.5 | 0.84 | 28.2 | 0.88 |
| 256x256 | 26.8 | 30.2 | 0.89 | 27.8 | 0.96 |
| 257x257 | 25.9 | 29.3 | 0.88 | 28.5 | 0.91 |
| 384x384 | 27.7 | 32.3 | 0.86 | 31.2 | 0.89 |
| 500x500 | 28.2 | 31.6 | 0.89 | 29.1 | 0.97 |
| 512x512 | 27.9 | 31.4 | 0.89 | 29.4 | 0.95 |
| 768x768 | 28.1 | 31.8 | 0.88 | 30.7 | 0.92 |
| 1000x1000 | 28.9 | 31.5 | 0.92 | 30.7 | 0.94 |
| 1001x1001 | 28.4 | 31.2 | 0.91 | 30.4 | 0.93 |
| 1024x1024 | 26.7 | 31.1 | 0.87 | 30.5 | 0.87 |
| 1536x1536 | 28.1 | 30.7 | 0.92 | 31.5 | 0.89 |
| 2048x2048 | 27.7 | 31.5 | 0.89 | 31.9 | 0.86 |
| 3072x3072 | 28.9 | 31.9 | 0.91 | 32.7 | 0.88 |
| 4096x4096 | 27.3 | 32.5 | 0.84 | 33.0 | 0.83 |
| 4097x4097 | 28.1 | 32.8 | 0.86 | 32.3 | 0.87 |
| 64x4096 | 14.8 | 20.1 | 0.74 | 21.9 | 0.68 |
| 256x4096 | 18.1 | 26.7 | 0.68 | 24.6 | 0.73 |
| 1024x8 | 11.6 | 8.0 | 1.41 | 8.6 | 1.38 |
| 1024x64 | 25.6 | 21.8 | 1.16 | 23.7 | 1.09 |
| 1024x256 | 28.8 | 29.4 | 0.98 | 29.1 | 0.99 |
| 1024x4096 | 25.1 | 31.6 | 0.81 | 30.5 | 0.81 |
| 4096x8 | 7.8 | 6.7 | 1.19 | 6.9 | 1.13 |
| 4096x64 | 23.0 | 22.6 | 1.02 | 22.3 | 1.03 |
| 4096x256 | 29.0 | 30.5 | 0.95 | 29.8 | 0.97 |
| 4096x1024 | 28.9 | 32.0 | 0.90 | 32.5 | 0.90 |
TRMM double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 6.14 | 0.1 | 0.69 |
| 3x3 | 0.2 | 0.0 | 4.98 | 0.3 | 0.69 |
| 4x4 | 0.5 | 0.1 | 5.15 | 0.8 | 0.65 |
| 6x6 | 1.1 | 0.3 | 3.86 | 1.5 | 0.75 |
| 8x8 | 1.9 | 0.6 | 3.15 | 2.3 | 0.79 |
| 12x12 | 3.4 | 1.6 | 2.21 | 4.4 | 0.77 |
| 16x16 | 4.4 | 2.8 | 1.56 | 3.5 | 1.25 |
| 24x24 | 6.0 | 5.6 | 1.08 | 8.1 | 0.74 |
| 32x32 | 7.2 | 7.0 | 1.03 | 4.3 | 1.67 |
| 48x48 | 8.5 | 10.1 | 0.84 | 9.9 | 0.85 |
| 64x64 | 9.3 | 11.3 | 0.82 | 8.4 | 1.10 |
| 96x96 | 10.3 | 13.5 | 0.76 | 11.1 | 0.93 |
| 100x100 | 10.5 | 13.3 | 0.79 | 13.5 | 0.78 |
| 128x128 | 10.6 | 14.0 | 0.75 | 11.8 | 0.90 |
| 192x192 | 12.1 | 15.5 | 0.78 | 12.4 | 0.98 |
| 200x200 | 12.3 | 15.3 | 0.80 | 14.4 | 0.85 |
| 256x256 | 12.4 | 15.5 | 0.80 | 14.9 | 0.84 |
| 257x257 | 12.2 | 15.4 | 0.79 | 14.4 | 0.85 |
| 384x384 | 12.7 | 14.8 | 0.86 | 15.0 | 0.84 |
| 500x500 | 12.7 | 14.8 | 0.86 | 15.1 | 0.84 |
| 512x512 | 12.0 | 14.8 | 0.81 | 14.9 | 0.81 |
| 768x768 | 13.0 | 14.2 | 0.91 | 15.6 | 0.83 |
| 1000x1000 | 13.6 | 15.0 | 0.89 | 15.7 | 0.87 |
| 1001x1001 | 13.3 | 15.3 | 0.87 | 15.7 | 0.84 |
| 1024x1024 | 11.6 | 14.9 | 0.78 | 15.8 | 0.72 |
| 1536x1536 | 12.6 | 15.1 | 0.83 | 16.1 | 0.78 |
| 2048x2048 | 11.6 | 14.8 | 0.78 | 16.1 | 0.72 |
| 3072x3072 | 13.2 | 15.6 | 0.84 | 16.8 | 0.79 |
| 4096x4096 | 11.1 | 15.1 | 0.73 | 16.3 | 0.69 |
| 4097x4097 | 12.3 | 15.3 | 0.80 | 16.0 | 0.77 |
| 64x4096 | 4.1 | 10.5 | 0.39 | 9.2 | 0.45 |
| 256x4096 | 7.0 | 14.2 | 0.51 | 12.2 | 0.56 |
| 1024x8 | 4.9 | 3.5 | 1.32 | 6.7 | 0.77 |
| 1024x64 | 12.0 | 11.2 | 1.07 | 14.3 | 0.84 |
| 1024x256 | 13.4 | 14.4 | 0.93 | 15.8 | 0.85 |
| 1024x4096 | 10.6 | 14.9 | 0.72 | 15.3 | 0.69 |
| 4096x8 | 3.2 | 2.8 | 1.16 | 5.3 | 0.60 |
| 4096x64 | 10.4 | 10.6 | 0.98 | 13.4 | 0.78 |
| 4096x256 | 13.5 | 14.3 | 0.94 | 15.8 | 0.86 |
| 4096x1024 | 12.0 | 15.0 | 0.79 | 16.3 | 0.74 |
SYMM float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.2 | 0.2 | 1.09 | 0.2 | 0.96 |
| 3x3 | 0.4 | 0.3 | 1.14 | 0.5 | 0.78 |
| 4x4 | 1.2 | 0.5 | 2.61 | 1.3 | 0.91 |
| 6x6 | 2.0 | 0.6 | 3.24 | 2.6 | 0.78 |
| 8x8 | 5.1 | 1.0 | 5.07 | 5.9 | 0.86 |
| 12x12 | 9.7 | 3.3 | 2.96 | 11.3 | 0.86 |
| 16x16 | 13.3 | 6.3 | 2.12 | 15.3 | 0.87 |
| 24x24 | 19.5 | 12.1 | 1.61 | 20.4 | 0.95 |
| 32x32 | 22.8 | 16.7 | 1.36 | 24.1 | 0.95 |
| 48x48 | 27.0 | 23.9 | 1.13 | 28.0 | 0.96 |
| 64x64 | 27.2 | 26.8 | 1.01 | 29.8 | 0.91 |
| 96x96 | 30.9 | 30.6 | 1.01 | 24.8 | 1.25 |
| 100x100 | 31.1 | 30.0 | 1.04 | 31.7 | 0.98 |
| 128x128 | 30.7 | 32.3 | 0.95 | 33.1 | 0.93 |
| 192x192 | 32.9 | 33.9 | 0.97 | 32.3 | 1.02 |
| 200x200 | 32.3 | 34.1 | 0.95 | 34.6 | 0.93 |
| 256x256 | 32.5 | 34.3 | 0.94 | 35.1 | 0.93 |
| 257x257 | 31.6 | 33.2 | 0.95 | 34.1 | 0.93 |
| 384x384 | 30.5 | 35.0 | 0.87 | 35.1 | 0.87 |
| 500x500 | 32.5 | 33.5 | 0.97 | 32.3 | 1.01 |
| 512x512 | 32.3 | 33.0 | 0.98 | 32.7 | 0.99 |
| 768x768 | 30.9 | 33.1 | 0.94 | 33.8 | 0.91 |
| 1000x1000 | 31.9 | 33.1 | 0.96 | 33.1 | 0.97 |
| 1001x1001 | 31.6 | 32.9 | 0.96 | 32.6 | 0.97 |
| 1024x1024 | 31.8 | 33.1 | 0.96 | 32.9 | 0.97 |
| 1536x1536 | 31.7 | 33.1 | 0.96 | 33.3 | 0.95 |
| 2048x2048 | 31.2 | 33.1 | 0.95 | 33.4 | 0.93 |
| 3072x3072 | 31.1 | 33.6 | 0.93 | 33.7 | 0.92 |
| 4096x4096 | 29.9 | 33.4 | 0.90 | 33.6 | 0.89 |
| 4097x4097 | 30.0 | 33.6 | 0.89 | 33.4 | 0.89 |
| 64x4096 | 28.6 | 28.8 | 1.00 | 32.0 | 0.89 |
| 256x4096 | 30.9 | 31.7 | 0.96 | 35.5 | 0.88 |
| 1024x8 | 11.5 | 13.0 | 0.87 | 9.8 | 1.20 |
| 1024x64 | 26.9 | 28.5 | 0.94 | 25.5 | 1.06 |
| 1024x256 | 31.1 | 32.4 | 0.96 | 31.0 | 1.00 |
| 1024x4096 | 30.9 | 33.9 | 0.91 | 33.5 | 0.92 |
| 4096x8 | 6.3 | 7.4 | 0.87 | 5.1 | 1.21 |
| 4096x64 | 22.0 | 24.3 | 0.91 | 19.5 | 1.12 |
| 4096x256 | 30.1 | 31.9 | 0.94 | 28.5 | 1.05 |
| 4096x1024 | 31.3 | 33.2 | 0.95 | 32.4 | 0.96 |
SYMM double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.2 | 0.2 | 1.17 | 0.2 | 1.02 |
| 3x3 | 0.4 | 0.3 | 1.17 | 0.5 | 0.79 |
| 4x4 | 1.1 | 0.4 | 2.43 | 1.2 | 0.92 |
| 6x6 | 2.5 | 0.6 | 3.93 | 2.4 | 1.02 |
| 8x8 | 3.7 | 1.1 | 3.25 | 4.6 | 0.81 |
| 12x12 | 6.8 | 3.0 | 2.23 | 7.9 | 0.86 |
| 16x16 | 8.5 | 5.3 | 1.58 | 6.2 | 1.36 |
| 24x24 | 11.0 | 8.6 | 1.28 | 12.6 | 0.88 |
| 32x32 | 12.3 | 10.6 | 1.16 | 6.7 | 1.83 |
| 48x48 | 13.7 | 13.7 | 1.00 | 13.8 | 0.99 |
| 64x64 | 14.5 | 14.7 | 0.98 | 12.1 | 1.19 |
| 96x96 | 15.4 | 16.5 | 0.93 | 14.5 | 1.06 |
| 100x100 | 14.8 | 16.3 | 0.91 | 16.6 | 0.89 |
| 128x128 | 15.1 | 16.5 | 0.91 | 14.8 | 1.02 |
| 192x192 | 15.6 | 17.5 | 0.89 | 16.0 | 0.98 |
| 200x200 | 15.7 | 17.3 | 0.91 | 17.3 | 0.91 |
| 256x256 | 14.2 | 17.4 | 0.81 | 17.1 | 0.83 |
| 257x257 | 15.8 | 17.4 | 0.91 | 16.7 | 0.95 |
| 384x384 | 14.1 | 16.6 | 0.85 | 17.1 | 0.83 |
| 500x500 | 15.0 | 16.0 | 0.94 | 16.7 | 0.90 |
| 512x512 | 13.7 | 15.9 | 0.86 | 16.7 | 0.82 |
| 768x768 | 14.6 | 15.8 | 0.93 | 16.9 | 0.87 |
| 1000x1000 | 14.3 | 16.3 | 0.88 | 17.0 | 0.85 |
| 1001x1001 | 14.1 | 16.2 | 0.87 | 16.8 | 0.85 |
| 1024x1024 | 13.7 | 16.0 | 0.86 | 16.9 | 0.81 |
| 1536x1536 | 13.8 | 16.1 | 0.86 | 17.1 | 0.80 |
| 2048x2048 | 13.3 | 15.9 | 0.84 | 16.8 | 0.79 |
| 3072x3072 | 13.5 | 16.1 | 0.83 | 17.2 | 0.79 |
| 4096x4096 | 12.2 | 15.8 | 0.77 | 16.6 | 0.74 |
| 4097x4097 | 12.6 | 15.9 | 0.79 | 16.5 | 0.77 |
| 64x4096 | 12.8 | 14.4 | 0.90 | 14.8 | 0.86 |
| 256x4096 | 14.0 | 16.4 | 0.87 | 16.0 | 0.86 |
| 1024x8 | 4.5 | 5.0 | 0.88 | 6.1 | 0.76 |
| 1024x64 | 12.2 | 13.4 | 0.91 | 14.2 | 0.86 |
| 1024x256 | 14.8 | 15.6 | 0.95 | 16.4 | 0.90 |
| 1024x4096 | 13.2 | 16.1 | 0.83 | 17.0 | 0.77 |
| 4096x8 | 3.1 | 3.6 | 0.89 | 3.6 | 0.85 |
| 4096x64 | 10.7 | 12.0 | 0.90 | 11.5 | 0.93 |
| 4096x256 | 14.3 | 15.0 | 0.96 | 15.0 | 0.95 |
| 4096x1024 | 12.6 | 15.7 | 0.80 | 16.5 | 0.77 |
SYRK float
| n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 3.06 | 0.1 | 0.63 |
| 3x3 | 0.1 | 0.1 | 2.67 | 0.2 | 0.61 |
| 4x4 | 0.4 | 0.1 | 3.04 | 0.5 | 0.68 |
| 6x6 | 0.8 | 0.3 | 2.41 | 1.2 | 0.68 |
| 8x8 | 2.0 | 0.7 | 2.69 | 2.8 | 0.73 |
| 12x12 | 3.4 | 1.4 | 2.33 | 4.5 | 0.75 |
| 16x16 | 6.5 | 3.2 | 2.02 | 7.2 | 0.90 |
| 24x24 | 10.1 | 7.0 | 1.44 | 12.6 | 0.80 |
| 32x32 | 13.4 | 9.3 | 1.43 | 14.9 | 0.90 |
| 48x48 | 17.6 | 14.7 | 1.20 | 21.2 | 0.83 |
| 64x64 | 21.1 | 18.1 | 1.17 | 24.2 | 0.87 |
| 96x96 | 24.0 | 23.1 | 1.03 | 18.8 | 1.28 |
| 100x100 | 24.3 | 21.2 | 1.15 | 27.7 | 0.88 |
| 128x128 | 26.3 | 25.6 | 1.02 | 30.3 | 0.87 |
| 192x192 | 28.5 | 28.9 | 0.99 | 28.2 | 1.01 |
| 200x200 | 28.8 | 28.7 | 1.00 | 32.2 | 0.89 |
| 256x256 | 29.1 | 30.0 | 0.97 | 32.5 | 0.90 |
| 257x257 | 28.3 | 29.1 | 0.97 | 31.5 | 0.90 |
| 384x384 | 29.9 | 31.9 | 0.94 | 32.8 | 0.91 |
| 500x500 | 28.7 | 31.6 | 0.92 | 29.4 | 0.97 |
| 512x512 | 29.3 | 30.8 | 0.96 | 28.6 | 1.02 |
| 768x768 | 30.8 | 31.3 | 0.98 | 30.8 | 1.00 |
| 1000x1000 | 31.3 | 31.8 | 0.99 | 29.8 | 1.05 |
| 1001x1001 | 30.3 | 31.6 | 0.96 | 29.4 | 1.03 |
| 1024x1024 | 30.9 | 30.2 | 1.02 | 29.3 | 1.05 |
| 1536x1536 | 31.7 | 31.3 | 1.01 | 30.8 | 1.03 |
| 2048x2048 | 31.7 | 31.5 | 1.01 | 31.3 | 1.01 |
| 3072x3072 | 32.7 | 32.3 | 1.01 | 32.3 | 1.01 |
| 4096x4096 | 32.9 | 32.3 | 1.02 | 32.5 | 1.01 |
| 4097x4097 | 33.1 | 32.9 | 1.01 | 32.8 | 1.01 |
| 64x4096 | 20.4 | 19.6 | 1.04 | 24.9 | 0.82 |
| 256x4096 | 26.2 | 26.1 | 1.01 | 28.7 | 0.91 |
| 1024x4096 | 30.7 | 30.6 | 1.00 | 29.3 | 1.05 |
| 4096x8 | 8.1 | 3.6 | 2.26 | 5.6 | 1.43 |
| 4096x64 | 30.4 | 18.7 | 1.64 | 29.8 | 1.01 |
| 4096x256 | 32.6 | 28.6 | 1.14 | 33.9 | 0.96 |
| 4096x1024 | 32.7 | 32.0 | 1.02 | 32.5 | 1.00 |
SYRK double
| n×k | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.0 | 0.0 | 2.47 | 0.1 | 0.47 |
| 3x3 | 0.1 | 0.1 | 2.29 | 0.2 | 0.52 |
| 4x4 | 0.3 | 0.1 | 2.42 | 0.5 | 0.52 |
| 6x6 | 0.7 | 0.3 | 2.23 | 1.2 | 0.63 |
| 8x8 | 1.3 | 0.5 | 2.63 | 2.2 | 0.60 |
| 12x12 | 2.2 | 1.5 | 1.43 | 4.2 | 0.52 |
| 16x16 | 3.8 | 2.7 | 1.40 | 3.5 | 1.09 |
| 24x24 | 5.3 | 4.7 | 1.12 | 8.7 | 0.61 |
| 32x32 | 6.9 | 6.3 | 1.11 | 4.2 | 1.66 |
| 48x48 | 8.7 | 9.2 | 0.94 | 10.9 | 0.80 |
| 64x64 | 10.2 | 10.1 | 1.00 | 8.9 | 1.15 |
| 96x96 | 11.7 | 12.6 | 0.93 | 12.1 | 0.97 |
| 100x100 | 11.9 | 12.2 | 0.97 | 15.4 | 0.77 |
| 128x128 | 12.7 | 13.5 | 0.94 | 13.8 | 0.92 |
| 192x192 | 13.6 | 14.9 | 0.91 | 14.7 | 0.93 |
| 200x200 | 13.8 | 14.9 | 0.92 | 16.2 | 0.85 |
| 256x256 | 14.0 | 15.1 | 0.93 | 16.3 | 0.86 |
| 257x257 | 13.7 | 15.3 | 0.90 | 15.9 | 0.85 |
| 384x384 | 13.8 | 15.2 | 0.91 | 16.5 | 0.84 |
| 500x500 | 13.7 | 14.6 | 0.94 | 15.6 | 0.88 |
| 512x512 | 13.9 | 13.8 | 1.01 | 15.4 | 0.90 |
| 768x768 | 14.8 | 14.4 | 1.03 | 15.7 | 0.95 |
| 1000x1000 | 15.1 | 15.3 | 0.99 | 15.9 | 0.95 |
| 1001x1001 | 14.7 | 15.0 | 0.98 | 15.8 | 0.93 |
| 1024x1024 | 14.6 | 14.5 | 1.01 | 15.8 | 0.93 |
| 1536x1536 | 15.0 | 15.1 | 0.99 | 16.3 | 0.92 |
| 2048x2048 | 15.4 | 14.9 | 1.03 | 16.3 | 0.94 |
| 3072x3072 | 15.6 | 15.1 | 1.03 | 17.0 | 0.92 |
| 4096x4096 | 15.8 | 15.0 | 1.06 | 16.4 | 0.97 |
| 4097x4097 | 15.9 | 15.2 | 1.04 | 16.4 | 0.97 |
| 64x4096 | 9.4 | 9.0 | 1.05 | 13.2 | 0.71 |
| 256x4096 | 12.7 | 12.9 | 0.99 | 15.7 | 0.81 |
| 1024x4096 | 14.8 | 14.4 | 1.02 | 15.8 | 0.94 |
| 4096x8 | 3.2 | 2.2 | 1.45 | 1.9 | 1.63 |
| 4096x64 | 14.6 | 11.3 | 1.31 | 13.5 | 1.07 |
| 4096x256 | 15.6 | 14.9 | 1.05 | 16.3 | 0.95 |
| 4096x1024 | 15.7 | 15.1 | 1.04 | 16.3 | 0.96 |
POTRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.1 | 1.43 | 0.1 | 1.81 |
| 3 | 0.2 | 0.2 | 1.21 | 0.1 | 1.65 |
| 4 | 0.3 | 0.4 | 0.90 | 0.3 | 1.27 |
| 6 | 0.6 | 0.7 | 0.87 | 0.5 | 1.24 |
| 8 | 0.9 | 1.0 | 0.96 | 0.7 | 1.35 |
| 12 | 1.6 | 1.4 | 1.10 | 1.1 | 1.48 |
| 16 | 2.2 | 1.8 | 1.27 | 1.4 | 1.61 |
| 24 | 3.5 | 2.3 | 1.51 | 2.0 | 1.80 |
| 32 | 4.6 | 2.8 | 1.64 | 2.5 | 1.89 |
| 48 | 6.8 | 3.6 | 1.89 | 4.5 | 1.51 |
| 64 | 8.0 | 3.8 | 2.11 | 4.4 | 1.81 |
| 96 | 10.6 | 6.9 | 1.54 | 8.0 | 1.32 |
| 100 | 10.7 | 7.0 | 1.52 | 8.3 | 1.29 |
| 128 | 12.8 | 10.3 | 1.24 | 10.3 | 1.24 |
| 192 | 15.8 | 13.7 | 1.15 | 13.7 | 1.16 |
| 200 | 16.2 | 14.2 | 1.14 | 14.6 | 1.11 |
| 256 | 19.8 | 16.8 | 1.18 | 15.9 | 1.25 |
| 257 | 18.6 | 16.1 | 1.16 | 17.2 | 1.08 |
| 384 | 23.5 | 20.3 | 1.15 | 20.4 | 1.15 |
| 500 | 24.7 | 22.6 | 1.09 | 22.5 | 1.10 |
| 512 | 24.6 | 20.3 | 1.21 | 22.6 | 1.09 |
| 768 | 26.2 | 22.4 | 1.17 | 24.9 | 1.05 |
| 1000 | 26.8 | 24.0 | 1.12 | 25.7 | 1.04 |
| 1001 | 26.0 | 22.5 | 1.16 | 25.3 | 1.03 |
| 1024 | 25.7 | 19.4 | 1.33 | 25.9 | 0.99 |
| 1536 | 28.2 | 22.2 | 1.27 | 27.3 | 1.03 |
| 2048 | 29.0 | 23.6 | 1.23 | 27.9 | 1.04 |
| 3072 | 30.0 | 24.7 | 1.22 | 29.2 | 1.03 |
| 4096 | 30.3 | 24.3 | 1.25 | 30.0 | 1.01 |
| 4097 | 29.4 | 26.1 | 1.12 | 30.0 | 0.98 |
POTRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.1 | 1.50 | 0.1 | 1.76 |
| 3 | 0.2 | 0.2 | 1.22 | 0.1 | 1.49 |
| 4 | 0.3 | 0.3 | 1.00 | 0.3 | 1.25 |
| 6 | 0.6 | 0.6 | 0.93 | 0.5 | 1.22 |
| 8 | 0.8 | 0.9 | 0.92 | 0.7 | 1.26 |
| 12 | 1.3 | 1.4 | 0.97 | 1.0 | 1.29 |
| 16 | 1.8 | 1.7 | 1.05 | 1.3 | 1.35 |
| 24 | 2.6 | 2.2 | 1.16 | 1.8 | 1.45 |
| 32 | 3.3 | 2.5 | 1.28 | 2.1 | 1.58 |
| 48 | 4.5 | 3.1 | 1.45 | 2.4 | 1.88 |
| 64 | 4.7 | 3.8 | 1.25 | 4.6 | 1.02 |
| 96 | 6.0 | 4.8 | 1.23 | 6.6 | 0.90 |
| 100 | 6.0 | 4.2 | 1.44 | 6.5 | 0.93 |
| 128 | 6.9 | 5.8 | 1.19 | 6.4 | 1.07 |
| 192 | 8.1 | 8.5 | 0.95 | 9.2 | 0.88 |
| 200 | 8.2 | 8.0 | 1.03 | 10.1 | 0.81 |
| 256 | 10.0 | 9.5 | 1.06 | 10.3 | 0.97 |
| 257 | 9.7 | 8.6 | 1.13 | 11.1 | 0.87 |
| 384 | 11.5 | 11.0 | 1.04 | 12.0 | 0.96 |
| 500 | 11.7 | 11.5 | 1.01 | 12.5 | 0.93 |
| 512 | 11.5 | 10.2 | 1.12 | 12.0 | 0.96 |
| 768 | 12.1 | 11.9 | 1.02 | 12.8 | 0.95 |
| 1000 | 12.8 | 11.6 | 1.10 | 13.4 | 0.95 |
| 1001 | 12.6 | 11.4 | 1.11 | 13.5 | 0.93 |
| 1024 | 12.5 | 10.6 | 1.18 | 13.5 | 0.92 |
| 1536 | 13.7 | 11.8 | 1.17 | 14.6 | 0.94 |
| 2048 | 13.5 | 12.4 | 1.10 | 14.5 | 0.93 |
| 3072 | 14.3 | 12.6 | 1.14 | 15.5 | 0.92 |
| 4096 | 14.5 | 12.6 | 1.14 | 15.2 | 0.95 |
| 4097 | 14.3 | 13.5 | 1.06 | 15.3 | 0.93 |
PSTRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.0 | 1.98 | 0.0 | 1.81 |
| 3 | 0.1 | 0.0 | 2.49 | 0.1 | 1.66 |
| 4 | 0.2 | 0.1 | 2.89 | 0.1 | 1.63 |
| 6 | 0.3 | 0.1 | 2.63 | 0.2 | 1.43 |
| 8 | 0.5 | 0.2 | 2.74 | 0.3 | 1.53 |
| 12 | 0.8 | 0.3 | 2.38 | 0.5 | 1.54 |
| 16 | 1.1 | 0.5 | 2.44 | 0.7 | 1.61 |
| 24 | 1.9 | 0.8 | 2.51 | 1.1 | 1.74 |
| 32 | 2.6 | 1.1 | 2.37 | 1.5 | 1.77 |
| 48 | 3.9 | 1.8 | 2.12 | 2.1 | 1.82 |
| 64 | 5.0 | 2.6 | 1.94 | 2.7 | 1.82 |
| 96 | 6.7 | 4.0 | 1.66 | 3.9 | 1.73 |
| 100 | 7.0 | 4.3 | 1.64 | 4.4 | 1.62 |
| 128 | 8.5 | 5.3 | 1.59 | 4.9 | 1.73 |
| 192 | 11.1 | 7.6 | 1.46 | 7.2 | 1.54 |
| 200 | 11.4 | 8.0 | 1.43 | 7.9 | 1.44 |
| 256 | 12.8 | 8.6 | 1.48 | 8.7 | 1.48 |
| 257 | 12.6 | 9.1 | 1.39 | 9.3 | 1.36 |
| 384 | 15.7 | 11.4 | 1.38 | 11.0 | 1.43 |
| 500 | 17.4 | 13.2 | 1.32 | 13.4 | 1.29 |
| 512 | 17.1 | 11.8 | 1.45 | 11.9 | 1.43 |
| 768 | 18.6 | 14.3 | 1.30 | 14.5 | 1.28 |
| 1000 | 18.4 | 15.1 | 1.22 | 16.2 | 1.14 |
| 1001 | 18.2 | 15.4 | 1.19 | 16.1 | 1.13 |
| 1024 | 16.0 | 9.9 | 1.60 | 10.6 | 1.54 |
| 1536 | 17.8 | 11.9 | 1.49 | 12.3 | 1.45 |
| 2048 | 17.5 | 8.6 | 2.03 | 9.9 | 1.76 |
| 3072 | 20.2 | 11.2 | 1.81 | 13.1 | 1.54 |
| 4096 | 19.2 | 9.6 | 2.01 | 11.7 | 1.64 |
| 4097 | 20.5 | 14.7 | 1.39 | 16.8 | 1.22 |
PSTRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.0 | 2.07 | 0.0 | 1.83 |
| 3 | 0.1 | 0.0 | 2.80 | 0.1 | 1.91 |
| 4 | 0.2 | 0.1 | 2.71 | 0.1 | 1.62 |
| 6 | 0.3 | 0.1 | 2.65 | 0.2 | 1.53 |
| 8 | 0.4 | 0.2 | 2.46 | 0.3 | 1.47 |
| 12 | 0.7 | 0.3 | 2.24 | 0.5 | 1.46 |
| 16 | 1.0 | 0.5 | 2.11 | 0.7 | 1.43 |
| 24 | 1.5 | 0.8 | 1.97 | 1.0 | 1.44 |
| 32 | 2.0 | 1.0 | 1.92 | 1.3 | 1.47 |
| 48 | 2.8 | 1.7 | 1.66 | 1.8 | 1.52 |
| 64 | 3.5 | 2.3 | 1.54 | 2.2 | 1.57 |
| 96 | 4.5 | 3.3 | 1.39 | 3.0 | 1.53 |
| 100 | 4.3 | 3.4 | 1.27 | 3.2 | 1.32 |
| 128 | 4.9 | 3.7 | 1.33 | 3.4 | 1.44 |
| 192 | 6.2 | 5.1 | 1.23 | 4.5 | 1.37 |
| 200 | 6.4 | 5.4 | 1.19 | 5.0 | 1.28 |
| 256 | 7.0 | 5.7 | 1.22 | 5.3 | 1.32 |
| 257 | 7.0 | 6.0 | 1.17 | 5.6 | 1.25 |
| 384 | 8.1 | 7.3 | 1.11 | 6.7 | 1.22 |
| 500 | 8.6 | 8.2 | 1.06 | 7.7 | 1.12 |
| 512 | 8.1 | 7.1 | 1.14 | 6.6 | 1.22 |
| 768 | 8.3 | 7.9 | 1.04 | 7.3 | 1.15 |
| 1000 | 8.2 | 7.9 | 1.04 | 7.3 | 1.12 |
| 1001 | 8.0 | 8.0 | 1.01 | 8.0 | 1.00 |
| 1024 | 7.6 | 5.9 | 1.27 | 5.6 | 1.36 |
| 1536 | 8.9 | 6.6 | 1.33 | 6.5 | 1.38 |
| 2048 | 8.6 | 5.9 | 1.47 | 5.6 | 1.52 |
| 3072 | 9.9 | 7.8 | 1.28 | 7.7 | 1.28 |
| 4096 | 9.0 | 6.1 | 1.47 | 6.2 | 1.45 |
| 4097 | 9.7 | 8.5 | 1.14 | 8.6 | 1.13 |
SYTRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.0 | 6.28 | 0.0 | 1.96 |
| 3 | 0.1 | 0.0 | 4.44 | 0.1 | 1.69 |
| 4 | 0.2 | 0.0 | 4.88 | 0.1 | 1.71 |
| 6 | 0.4 | 0.1 | 3.41 | 0.3 | 1.43 |
| 8 | 0.6 | 0.2 | 3.42 | 0.4 | 1.41 |
| 12 | 1.0 | 0.4 | 2.58 | 0.7 | 1.49 |
| 16 | 1.3 | 0.5 | 2.43 | 0.9 | 1.47 |
| 24 | 2.0 | 1.0 | 2.07 | 1.5 | 1.34 |
| 32 | 2.6 | 1.3 | 2.06 | 1.8 | 1.41 |
| 48 | 3.7 | 2.1 | 1.79 | 2.6 | 1.41 |
| 64 | 4.5 | 2.7 | 1.71 | 3.2 | 1.43 |
| 96 | 7.2 | 3.7 | 1.91 | 3.5 | 2.08 |
| 100 | 7.5 | 4.0 | 1.85 | 3.7 | 2.00 |
| 128 | 8.2 | 4.7 | 1.74 | 4.1 | 2.00 |
| 192 | 11.1 | 7.4 | 1.49 | 5.6 | 1.99 |
| 200 | 11.6 | 7.9 | 1.46 | 6.0 | 1.96 |
| 256 | 11.4 | 9.4 | 1.23 | 6.8 | 1.66 |
| 257 | 12.7 | 9.5 | 1.33 | 7.0 | 1.81 |
| 384 | 14.7 | 12.7 | 1.15 | 8.9 | 1.64 |
| 500 | 16.4 | 15.0 | 1.10 | 10.8 | 1.51 |
| 512 | 14.0 | 13.9 | 1.02 | 10.0 | 1.38 |
| 768 | 17.4 | 17.1 | 1.03 | 13.1 | 1.32 |
| 1000 | 18.5 | 18.2 | 1.02 | 14.6 | 1.26 |
| 1001 | 18.4 | 18.0 | 1.02 | 14.5 | 1.26 |
| 1024 | 13.8 | 15.8 | 0.87 | 12.9 | 1.07 |
| 1536 | 16.9 | 17.4 | 0.98 | 15.8 | 1.07 |
| 2048 | 15.2 | 15.0 | 0.99 | 15.9 | 0.97 |
| 3072 | 19.1 | 16.0 | 1.19 | 18.7 | 1.02 |
| 4096 | 17.8 | 14.9 | 1.20 | 18.2 | 0.97 |
| 4097 | 21.3 | 19.9 | 1.07 | 19.4 | 1.10 |
SYTRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.0 | 4.34 | 0.0 | 2.26 |
| 3 | 0.2 | 0.0 | 4.47 | 0.1 | 1.89 |
| 4 | 0.2 | 0.1 | 3.92 | 0.1 | 1.58 |
| 6 | 0.4 | 0.1 | 4.34 | 0.3 | 1.57 |
| 8 | 0.6 | 0.2 | 2.76 | 0.4 | 1.54 |
| 12 | 0.9 | 0.4 | 2.11 | 0.6 | 1.42 |
| 16 | 1.2 | 0.5 | 2.28 | 0.9 | 1.36 |
| 24 | 1.7 | 0.8 | 2.03 | 1.3 | 1.32 |
| 32 | 2.1 | 1.3 | 1.64 | 1.7 | 1.25 |
| 48 | 2.8 | 2.0 | 1.40 | 2.3 | 1.19 |
| 64 | 3.2 | 2.5 | 1.30 | 2.7 | 1.19 |
| 96 | 4.3 | 3.0 | 1.45 | 2.5 | 1.74 |
| 100 | 4.6 | 3.2 | 1.43 | 2.6 | 1.77 |
| 128 | 4.7 | 3.5 | 1.38 | 2.7 | 1.72 |
| 192 | 5.9 | 5.0 | 1.16 | 3.5 | 1.70 |
| 200 | 6.2 | 5.3 | 1.15 | 3.6 | 1.73 |
| 256 | 5.6 | 5.8 | 0.95 | 3.9 | 1.49 |
| 257 | 6.4 | 6.0 | 1.07 | 4.1 | 1.54 |
| 384 | 7.4 | 7.6 | 0.98 | 5.2 | 1.40 |
| 500 | 8.0 | 8.6 | 0.93 | 6.1 | 1.30 |
| 512 | 6.9 | 8.0 | 0.87 | 5.6 | 1.20 |
| 768 | 8.0 | 9.1 | 0.88 | 6.9 | 1.15 |
| 1000 | 8.5 | 9.4 | 0.90 | 7.8 | 1.09 |
| 1001 | 8.6 | 9.3 | 0.92 | 7.7 | 1.11 |
| 1024 | 7.1 | 8.7 | 0.80 | 7.2 | 1.00 |
| 1536 | 8.4 | 9.2 | 0.92 | 8.3 | 1.02 |
| 2048 | 8.1 | 9.0 | 0.90 | 8.5 | 0.95 |
| 3072 | 9.9 | 10.2 | 0.97 | 9.8 | 1.01 |
| 4096 | 9.1 | 8.9 | 1.02 | 9.3 | 0.97 |
| 4097 | 10.6 | 10.5 | 1.01 | 9.9 | 1.07 |
GETRF float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.1 | 1.19 | 0.1 | 1.73 |
| 3 | 0.2 | 0.2 | 0.96 | 0.1 | 1.54 |
| 4 | 0.3 | 0.3 | 0.95 | 0.2 | 1.58 |
| 6 | 0.6 | 0.6 | 0.88 | 0.4 | 1.56 |
| 8 | 0.9 | 0.9 | 1.01 | 0.5 | 1.82 |
| 12 | 1.6 | 1.5 | 1.08 | 0.8 | 2.01 |
| 16 | 2.2 | 1.9 | 1.16 | 1.0 | 2.14 |
| 24 | 3.2 | 2.8 | 1.13 | 2.0 | 1.56 |
| 32 | 4.2 | 3.4 | 1.23 | 2.4 | 1.78 |
| 48 | 6.2 | 4.6 | 1.34 | 4.2 | 1.47 |
| 64 | 7.7 | 4.9 | 1.53 | 5.0 | 1.58 |
| 96 | 10.1 | 7.7 | 1.27 | 7.7 | 1.35 |
| 100 | 10.3 | 7.7 | 1.32 | 7.9 | 1.34 |
| 128 | 12.4 | 9.7 | 1.27 | 8.6 | 1.46 |
| 192 | 15.0 | 12.2 | 1.21 | 12.1 | 1.26 |
| 200 | 15.3 | 12.8 | 1.18 | 12.9 | 1.20 |
| 256 | 18.4 | 13.5 | 1.35 | 14.6 | 1.27 |
| 257 | 17.5 | 14.4 | 1.20 | 14.3 | 1.23 |
| 384 | 21.3 | 17.3 | 1.22 | 18.0 | 1.19 |
| 500 | 22.7 | 18.7 | 1.21 | 20.4 | 1.12 |
| 512 | 22.5 | 16.0 | 1.40 | 20.3 | 1.11 |
| 768 | 23.4 | 18.0 | 1.29 | 22.4 | 1.05 |
| 1000 | 22.7 | 19.6 | 1.15 | 23.1 | 0.99 |
| 1001 | 22.2 | 19.0 | 1.17 | 22.8 | 0.97 |
| 1024 | 21.8 | 12.3 | 1.77 | 23.0 | 0.95 |
| 1536 | 24.5 | 15.5 | 1.58 | 25.4 | 0.97 |
| 2048 | 25.6 | 11.8 | 2.18 | 26.6 | 0.96 |
| 3072 | 27.5 | 15.9 | 1.72 | 28.7 | 0.96 |
| 4096 | 27.2 | 14.8 | 1.84 | 29.5 | 0.93 |
| 4097 | 27.4 | 22.1 | 1.23 | 29.3 | 0.94 |
GETRF double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.1 | 0.1 | 1.23 | 0.1 | 1.79 |
| 3 | 0.2 | 0.2 | 1.10 | 0.1 | 1.67 |
| 4 | 0.3 | 0.3 | 0.91 | 0.2 | 1.47 |
| 6 | 0.6 | 0.6 | 0.89 | 0.4 | 1.65 |
| 8 | 0.9 | 1.0 | 0.90 | 0.5 | 1.68 |
| 12 | 1.3 | 1.5 | 0.88 | 0.8 | 1.76 |
| 16 | 1.8 | 2.0 | 0.89 | 1.0 | 1.78 |
| 24 | 2.3 | 2.6 | 0.86 | 1.9 | 1.22 |
| 32 | 2.9 | 3.0 | 0.97 | 2.2 | 1.30 |
| 48 | 3.9 | 3.7 | 1.07 | 3.8 | 1.03 |
| 64 | 4.7 | 4.3 | 1.08 | 3.7 | 1.25 |
| 96 | 5.7 | 6.0 | 0.96 | 6.5 | 0.88 |
| 100 | 5.8 | 6.2 | 0.93 | 6.7 | 0.87 |
| 128 | 6.8 | 6.3 | 1.08 | 7.2 | 0.95 |
| 192 | 8.0 | 8.4 | 0.95 | 9.1 | 0.88 |
| 200 | 8.2 | 8.7 | 0.94 | 9.8 | 0.84 |
| 256 | 9.5 | 8.6 | 1.11 | 10.3 | 0.93 |
| 257 | 9.4 | 9.3 | 1.01 | 10.3 | 0.91 |
| 384 | 10.7 | 10.2 | 1.05 | 11.9 | 0.90 |
| 500 | 11.0 | 11.0 | 1.00 | 11.8 | 0.93 |
| 512 | 10.6 | 9.3 | 1.15 | 11.7 | 0.91 |
| 768 | 10.3 | 10.8 | 0.95 | 12.3 | 0.83 |
| 1000 | 10.6 | 11.4 | 0.94 | 12.9 | 0.82 |
| 1001 | 10.6 | 11.5 | 0.92 | 12.9 | 0.82 |
| 1024 | 10.5 | 8.7 | 1.20 | 13.0 | 0.81 |
| 1536 | 12.0 | 9.2 | 1.32 | 14.0 | 0.85 |
| 2048 | 12.3 | 8.0 | 1.54 | 14.3 | 0.85 |
| 3072 | 13.3 | 9.9 | 1.35 | 15.4 | 0.86 |
| 4096 | 13.2 | 8.3 | 1.59 | 15.1 | 0.87 |
| 4097 | 13.4 | 11.6 | 1.15 | 15.2 | 0.88 |
GEQRF float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 0.65 | 0.1 | 1.32 |
| 3x3 | 0.1 | 0.2 | 0.55 | 0.1 | 1.20 |
| 4x4 | 0.2 | 0.3 | 0.52 | 0.1 | 1.24 |
| 6x6 | 0.4 | 0.6 | 0.59 | 0.3 | 1.34 |
| 8x8 | 0.6 | 0.9 | 0.62 | 0.4 | 1.36 |
| 12x12 | 1.1 | 1.5 | 0.73 | 0.8 | 1.41 |
| 16x16 | 1.7 | 2.0 | 0.86 | 1.1 | 1.49 |
| 24x24 | 2.8 | 2.8 | 1.02 | 1.8 | 1.53 |
| 32x32 | 3.9 | 3.6 | 1.08 | 2.5 | 1.53 |
| 48x48 | 5.6 | 5.0 | 1.13 | 3.7 | 1.52 |
| 64x64 | 6.9 | 5.8 | 1.19 | 4.6 | 1.49 |
| 96x96 | 9.5 | 7.1 | 1.35 | 6.0 | 1.58 |
| 100x100 | 9.6 | 7.2 | 1.34 | 6.1 | 1.57 |
| 128x128 | 12.1 | 7.9 | 1.54 | 6.7 | 1.79 |
| 192x192 | 15.9 | 12.9 | 1.24 | 11.0 | 1.44 |
| 200x200 | 16.0 | 13.7 | 1.18 | 13.2 | 1.21 |
| 256x256 | 18.1 | 14.8 | 1.23 | 13.8 | 1.31 |
| 257x257 | 17.5 | 15.1 | 1.16 | 15.8 | 1.10 |
| 384x384 | 21.4 | 18.9 | 1.14 | 18.5 | 1.15 |
| 500x500 | 23.1 | 21.2 | 1.10 | 21.6 | 1.06 |
| 512x512 | 22.9 | 20.2 | 1.14 | 20.2 | 1.13 |
| 768x768 | 24.2 | 16.9 | 1.44 | 22.4 | 1.07 |
| 1000x1000 | 24.3 | 19.0 | 1.29 | 23.1 | 1.04 |
| 1001x1001 | 23.8 | 18.8 | 1.28 | 22.6 | 1.04 |
| 1024x1024 | 23.7 | 17.5 | 1.34 | 20.3 | 1.17 |
| 1536x1536 | 24.9 | 21.5 | 1.17 | 21.7 | 1.14 |
| 2048x2048 | 24.4 | 18.6 | 1.33 | 19.4 | 1.24 |
| 3072x3072 | 26.1 | 23.9 | 1.10 | 22.9 | 1.14 |
| 4096x4096 | 23.4 | 19.3 | 1.22 | 18.3 | 1.27 |
| 4097x4097 | 23.6 | 22.4 | 1.06 | 21.5 | 1.10 |
| 4096x8 | 6.1 | 6.5 | 0.94 | 3.9 | 1.56 |
| 4096x64 | 13.2 | 7.9 | 1.67 | 7.3 | 1.79 |
| 4096x256 | 13.9 | 10.5 | 1.34 | 12.7 | 1.09 |
| 4096x1024 | 18.4 | 9.9 | 1.87 | 17.9 | 1.02 |
| 10000x8 | 6.4 | 5.8 | 1.11 | 3.7 | 1.73 |
| 10000x100 | 14.5 | 5.8 | 2.54 | 5.6 | 2.58 |
| 10000x1000 | 23.2 | 11.8 | 1.98 | 22.9 | 1.00 |
| 10000x4000 | 27.1 | 23.3 | 1.17 | 25.3 | 1.07 |
| 100000x8 | 4.3 | 4.1 | 1.06 | 2.9 | 1.46 |
| 100000x64 | 9.0 | 2.8 | 3.29 | 2.7 | 3.30 |
| 100000x256 | 12.6 | 12.1 | 1.04 | 7.0 | 1.80 |
GEQRF double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 0.64 | 0.1 | 1.23 |
| 3x3 | 0.1 | 0.2 | 0.57 | 0.1 | 1.18 |
| 4x4 | 0.2 | 0.3 | 0.54 | 0.1 | 1.20 |
| 6x6 | 0.3 | 0.5 | 0.61 | 0.3 | 1.32 |
| 8x8 | 0.5 | 0.8 | 0.66 | 0.4 | 1.37 |
| 12x12 | 1.0 | 1.3 | 0.78 | 0.7 | 1.39 |
| 16x16 | 1.5 | 1.7 | 0.89 | 1.0 | 1.47 |
| 24x24 | 2.3 | 2.3 | 0.98 | 1.6 | 1.40 |
| 32x32 | 2.9 | 2.9 | 1.01 | 2.2 | 1.34 |
| 48x48 | 3.8 | 3.8 | 0.99 | 3.0 | 1.28 |
| 64x64 | 4.3 | 4.4 | 0.99 | 3.5 | 1.24 |
| 96x96 | 6.0 | 4.9 | 1.21 | 3.9 | 1.53 |
| 100x100 | 6.1 | 4.8 | 1.27 | 4.1 | 1.49 |
| 128x128 | 7.2 | 4.2 | 1.69 | 3.9 | 1.85 |
| 192x192 | 8.8 | 8.5 | 1.04 | 6.3 | 1.40 |
| 200x200 | 8.7 | 8.6 | 1.01 | 7.7 | 1.14 |
| 256x256 | 9.6 | 9.4 | 1.03 | 8.1 | 1.19 |
| 257x257 | 9.6 | 9.8 | 0.98 | 9.3 | 1.03 |
| 384x384 | 10.8 | 10.6 | 1.01 | 10.4 | 1.04 |
| 500x500 | 11.0 | 11.0 | 1.00 | 11.5 | 0.96 |
| 512x512 | 10.8 | 10.4 | 1.04 | 10.8 | 1.00 |
| 768x768 | 10.9 | 10.2 | 1.06 | 11.2 | 0.98 |
| 1000x1000 | 11.4 | 10.7 | 1.07 | 11.7 | 0.98 |
| 1001x1001 | 11.3 | 10.6 | 1.07 | 11.5 | 0.98 |
| 1024x1024 | 10.8 | 10.0 | 1.08 | 10.8 | 0.99 |
| 1536x1536 | 11.8 | 11.4 | 1.03 | 11.5 | 1.03 |
| 2048x2048 | 10.6 | 10.2 | 1.03 | 10.4 | 1.02 |
| 3072x3072 | 12.5 | 12.0 | 1.04 | 12.1 | 1.03 |
| 4096x4096 | 10.3 | 9.9 | 1.04 | 8.5 | 1.22 |
| 4097x4097 | 11.2 | 12.0 | 0.93 | 10.6 | 1.05 |
| 4096x8 | 2.7 | 3.1 | 0.86 | 2.7 | 0.97 |
| 4096x64 | 5.9 | 3.9 | 1.54 | 4.2 | 1.41 |
| 4096x256 | 6.4 | 6.3 | 1.02 | 6.0 | 1.06 |
| 4096x1024 | 8.7 | 8.7 | 1.01 | 9.2 | 0.95 |
| 10000x8 | 2.8 | 2.9 | 0.97 | 2.5 | 1.12 |
| 10000x100 | 6.4 | 2.0 | 3.13 | 2.0 | 3.24 |
| 10000x1000 | 11.5 | 10.7 | 1.07 | 11.7 | 0.98 |
| 10000x4000 | 13.3 | 13.7 | 0.97 | 12.7 | 1.05 |
| 100000x8 | 1.1 | 1.2 | 0.86 | 1.2 | 0.91 |
| 100000x64 | 3.6 | 1.3 | 2.69 | 1.3 | 2.75 |
| 100000x256 | 5.7 | 4.9 | 1.16 | 3.4 | 1.68 |
GELS float
| m×n×nrhs | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2x1 | 0.1 | 0.0 | 2.28 | 0.0 | 1.72 |
| 3x3x1 | 0.1 | 0.1 | 1.93 | 0.1 | 1.37 |
| 4x4x1 | 0.2 | 0.1 | 1.80 | 0.1 | 1.35 |
| 6x6x1 | 0.3 | 0.2 | 1.84 | 0.2 | 1.43 |
| 8x8x1 | 0.5 | 0.3 | 1.83 | 0.3 | 1.47 |
| 12x12x1 | 0.9 | 0.5 | 1.92 | 0.6 | 1.54 |
| 16x16x1 | 1.5 | 0.7 | 1.99 | 0.9 | 1.67 |
| 24x24x1 | 2.4 | 1.2 | 1.98 | 1.4 | 1.69 |
| 32x32x1 | 3.3 | 1.7 | 1.94 | 2.0 | 1.68 |
| 48x48x1 | 4.9 | 2.6 | 1.85 | 3.0 | 1.64 |
| 64x64x1 | 6.0 | 3.4 | 1.77 | 3.8 | 1.59 |
| 96x96x1 | 9.0 | 4.7 | 1.93 | 5.0 | 1.79 |
| 100x100x1 | 9.1 | 4.8 | 1.90 | 5.1 | 1.77 |
| 128x128x1 | 11.6 | 4.8 | 2.40 | 5.8 | 1.98 |
| 192x192x1 | 15.5 | 7.9 | 1.96 | 8.5 | 1.81 |
| 200x200x1 | 15.4 | 8.5 | 1.81 | 9.8 | 1.58 |
| 256x256x1 | 17.6 | 10.1 | 1.74 | 10.9 | 1.62 |
| 257x257x1 | 16.9 | 10.2 | 1.66 | 12.1 | 1.40 |
| 384x384x1 | 21.0 | 12.5 | 1.68 | 15.3 | 1.38 |
| 500x500x1 | 22.8 | 15.2 | 1.50 | 18.2 | 1.25 |
| 512x512x1 | 22.6 | 14.6 | 1.54 | 17.3 | 1.30 |
| 768x768x1 | 23.9 | 14.3 | 1.68 | 20.0 | 1.20 |
| 1000x1000x1 | 23.9 | 16.4 | 1.45 | 21.3 | 1.13 |
| 1001x1001x1 | 23.4 | 16.3 | 1.43 | 20.8 | 1.14 |
| 1024x1024x1 | 23.3 | 15.0 | 1.55 | 18.9 | 1.23 |
| 1536x1536x1 | 24.7 | 19.1 | 1.29 | 20.6 | 1.20 |
| 2048x2048x1 | 24.2 | 16.5 | 1.47 | 18.7 | 1.29 |
| 3072x3072x1 | 26.1 | 22.3 | 1.17 | 22.3 | 1.17 |
| 4096x4096x1 | 23.5 | 17.5 | 1.34 | 18.0 | 1.30 |
| 4097x4097x1 | 23.6 | 20.2 | 1.17 | 21.1 | 1.12 |
| 1024x1024x16 | 22.6 | 15.0 | 1.49 | 19.2 | 1.19 |
| 1024x1024x64 | 23.0 | 15.7 | 1.46 | 19.6 | 1.18 |
| 1024x1024x256 | 24.2 | 17.3 | 1.39 | 20.8 | 1.17 |
| 4096x8x1 | 6.4 | 1.9 | 3.44 | 2.4 | 2.68 |
| 4096x64x1 | 13.1 | 5.6 | 2.34 | 6.1 | 2.15 |
| 4096x256x1 | 13.9 | 7.5 | 1.86 | 10.8 | 1.28 |
| 4096x256x16 | 10.9 | 7.9 | 1.37 | 11.2 | 0.97 |
| 4096x256x64 | 12.7 | 9.2 | 1.38 | 12.9 | 0.99 |
| 4096x256x256 | 16.7 | 11.4 | 1.46 | 12.3 | 1.36 |
| 4096x256x1024 | 20.5 | 12.0 | 1.72 | 14.7 | 1.38 |
| 4096x1024x1 | 18.3 | 8.1 | 2.25 | 16.8 | 1.08 |
| 10000x8x1 | 6.6 | 1.8 | 3.68 | 2.3 | 2.88 |
| 10000x100x1 | 14.1 | 4.8 | 2.93 | 5.1 | 2.77 |
| 10000x1000x1 | 23.1 | 10.9 | 2.12 | 21.4 | 1.08 |
| 10000x4000x1 | 27.2 | 22.1 | 1.23 | 24.9 | 1.09 |
| 100000x8x1 | 4.0 | 1.6 | 2.53 | 1.9 | 2.06 |
| 100000x64x1 | 8.9 | 2.4 | 3.66 | 2.6 | 3.46 |
| 100000x256x1 | 12.6 | 8.3 | 1.51 | 6.4 | 1.95 |
GELS double
| m×n×nrhs | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2x1 | 0.1 | 0.0 | 2.00 | 0.0 | 1.50 |
| 3x3x1 | 0.1 | 0.1 | 1.83 | 0.1 | 1.36 |
| 4x4x1 | 0.2 | 0.1 | 1.74 | 0.1 | 1.32 |
| 6x6x1 | 0.3 | 0.2 | 1.75 | 0.2 | 1.40 |
| 8x8x1 | 0.5 | 0.3 | 1.77 | 0.3 | 1.44 |
| 12x12x1 | 0.9 | 0.5 | 1.79 | 0.6 | 1.50 |
| 16x16x1 | 1.3 | 0.7 | 1.86 | 0.8 | 1.60 |
| 24x24x1 | 2.0 | 1.1 | 1.77 | 1.3 | 1.54 |
| 32x32x1 | 2.6 | 1.5 | 1.71 | 1.8 | 1.50 |
| 48x48x1 | 3.6 | 2.3 | 1.54 | 2.5 | 1.44 |
| 64x64x1 | 4.1 | 2.9 | 1.43 | 3.0 | 1.38 |
| 96x96x1 | 5.7 | 3.2 | 1.81 | 3.6 | 1.57 |
| 100x100x1 | 5.8 | 3.1 | 1.85 | 3.6 | 1.60 |
| 128x128x1 | 6.9 | 3.2 | 2.16 | 3.6 | 1.94 |
| 192x192x1 | 8.6 | 5.7 | 1.50 | 5.3 | 1.63 |
| 200x200x1 | 8.5 | 6.0 | 1.42 | 6.3 | 1.35 |
| 256x256x1 | 9.4 | 7.0 | 1.34 | 6.9 | 1.36 |
| 257x257x1 | 9.4 | 7.3 | 1.28 | 7.7 | 1.21 |
| 384x384x1 | 10.6 | 8.3 | 1.28 | 9.2 | 1.15 |
| 500x500x1 | 10.8 | 9.0 | 1.18 | 10.4 | 1.05 |
| 512x512x1 | 10.6 | 8.6 | 1.23 | 9.7 | 1.09 |
| 768x768x1 | 10.7 | 9.0 | 1.19 | 10.4 | 1.03 |
| 1000x1000x1 | 11.2 | 9.6 | 1.17 | 10.9 | 1.03 |
| 1001x1001x1 | 11.1 | 9.7 | 1.14 | 10.9 | 1.02 |
| 1024x1024x1 | 10.6 | 8.8 | 1.21 | 10.3 | 1.03 |
| 1536x1536x1 | 11.7 | 10.6 | 1.10 | 11.2 | 1.04 |
| 2048x2048x1 | 10.5 | 9.3 | 1.14 | 10.1 | 1.03 |
| 3072x3072x1 | 12.3 | 11.3 | 1.09 | 11.9 | 1.03 |
| 4096x4096x1 | 10.3 | 9.4 | 1.09 | 8.4 | 1.22 |
| 4097x4097x1 | 11.1 | 11.4 | 0.97 | 10.6 | 1.05 |
| 1024x1024x16 | 10.4 | 9.0 | 1.16 | 10.5 | 1.00 |
| 1024x1024x64 | 10.7 | 9.3 | 1.15 | 10.8 | 0.99 |
| 1024x1024x256 | 11.2 | 10.0 | 1.12 | 11.4 | 0.99 |
| 4096x8x1 | 2.8 | 1.4 | 1.98 | 1.9 | 1.48 |
| 4096x64x1 | 5.9 | 3.2 | 1.84 | 3.7 | 1.57 |
| 4096x256x1 | 6.4 | 4.6 | 1.39 | 5.5 | 1.14 |
| 4096x256x16 | 5.3 | 4.9 | 1.09 | 5.9 | 0.89 |
| 4096x256x64 | 6.1 | 5.6 | 1.07 | 6.7 | 0.90 |
| 4096x256x256 | 7.8 | 7.0 | 1.12 | 6.5 | 1.20 |
| 4096x256x1024 | 9.0 | 7.5 | 1.20 | 7.3 | 1.22 |
| 4096x1024x1 | 8.6 | 7.3 | 1.19 | 8.8 | 0.98 |
| 10000x8x1 | 2.9 | 1.4 | 2.11 | 1.8 | 1.64 |
| 10000x100x1 | 6.3 | 1.9 | 3.38 | 2.0 | 3.23 |
| 10000x1000x1 | 11.4 | 9.5 | 1.20 | 11.2 | 1.02 |
| 10000x4000x1 | 13.3 | 13.1 | 1.01 | 12.8 | 1.04 |
| 100000x8x1 | 1.2 | 0.9 | 1.32 | 1.1 | 1.12 |
| 100000x64x1 | 3.5 | 1.2 | 2.86 | 1.3 | 2.80 |
| 100000x256x1 | 5.6 | 3.8 | 1.49 | 3.2 | 1.76 |
SYEV float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.3 | 0.1 | 2.24 | 0.1 | 2.11 |
| 3 | 0.4 | 0.1 | 3.41 | 0.1 | 2.90 |
| 4 | 0.5 | 0.1 | 3.37 | 0.2 | 3.23 |
| 6 | 0.8 | 0.3 | 2.98 | 0.2 | 3.18 |
| 8 | 1.1 | 0.4 | 2.65 | 0.3 | 3.32 |
| 12 | 1.6 | 0.7 | 2.29 | 0.5 | 3.19 |
| 16 | 2.2 | 1.0 | 2.28 | 0.7 | 3.37 |
| 24 | 3.2 | 1.6 | 2.03 | 1.0 | 3.26 |
| 32 | 4.2 | 2.1 | 1.97 | 1.3 | 3.23 |
| 48 | 5.7 | 2.9 | 1.98 | 1.7 | 3.34 |
| 64 | 6.8 | 3.2 | 2.12 | 2.1 | 3.24 |
| 96 | 8.5 | 4.0 | 2.13 | 2.7 | 3.15 |
| 100 | 8.8 | 4.1 | 2.17 | 2.8 | 3.15 |
| 128 | 9.8 | 4.3 | 2.27 | 3.2 | 3.06 |
| 192 | 11.2 | 4.9 | 2.30 | 3.8 | 2.98 |
| 200 | 11.6 | 4.9 | 2.40 | 3.9 | 2.93 |
| 256 | 12.2 | 5.2 | 2.37 | 4.3 | 2.86 |
| 257 | 11.8 | 5.1 | 2.30 | 4.3 | 2.78 |
| 384 | 13.5 | 5.5 | 2.48 | 4.8 | 2.86 |
| 500 | 14.2 | 5.7 | 2.50 | 5.1 | 2.81 |
| 512 | 13.9 | 5.6 | 2.46 | 5.0 | 2.78 |
| 768 | 14.0 | 5.6 | 2.51 | 5.2 | 2.72 |
| 1000 | 12.1 | 5.0 | 2.43 | 5.3 | 2.30 |
| 1001 | 11.8 | 5.5 | 2.12 | 5.0 | 2.35 |
| 1024 | 11.4 | 5.0 | 2.25 | 5.5 | 2.08 |
| 1536 | 7.7 | 4.9 | 1.57 | 5.6 | 1.38 |
| 2048 | 6.6 | 4.5 | 1.44 | 5.6 | 1.19 |
SYEV double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 0.3 | 0.1 | 2.07 | 0.2 | 1.91 |
| 3 | 0.3 | 0.1 | 2.76 | 0.1 | 2.54 |
| 4 | 0.4 | 0.2 | 2.43 | 0.1 | 2.69 |
| 6 | 0.6 | 0.3 | 2.26 | 0.2 | 2.94 |
| 8 | 0.8 | 0.4 | 2.05 | 0.3 | 2.99 |
| 12 | 1.2 | 0.7 | 1.79 | 0.4 | 2.81 |
| 16 | 1.6 | 0.9 | 1.74 | 0.5 | 2.87 |
| 24 | 2.2 | 1.4 | 1.58 | 0.8 | 2.74 |
| 32 | 2.7 | 1.8 | 1.52 | 1.0 | 2.65 |
| 48 | 3.4 | 2.3 | 1.52 | 1.3 | 2.52 |
| 64 | 4.0 | 2.7 | 1.51 | 1.7 | 2.38 |
| 96 | 4.6 | 3.2 | 1.46 | 2.1 | 2.19 |
| 100 | 4.7 | 3.2 | 1.49 | 2.1 | 2.21 |
| 128 | 5.0 | 3.4 | 1.46 | 2.4 | 2.08 |
| 192 | 5.6 | 3.8 | 1.48 | 2.9 | 1.89 |
| 200 | 5.7 | 3.7 | 1.53 | 2.9 | 1.93 |
| 256 | 5.9 | 3.9 | 1.50 | 3.3 | 1.79 |
| 257 | 5.8 | 4.1 | 1.40 | 3.3 | 1.76 |
| 384 | 6.2 | 4.2 | 1.49 | 3.7 | 1.69 |
| 500 | 6.4 | 4.2 | 1.54 | 3.8 | 1.68 |
| 512 | 6.2 | 4.0 | 1.56 | 3.8 | 1.65 |
| 768 | 4.8 | 4.1 | 1.18 | 3.5 | 1.36 |
| 1000 | 3.7 | 3.9 | 0.97 | 3.6 | 1.03 |
| 1001 | 3.7 | 4.4 | 0.85 | 4.1 | 0.90 |
| 1024 | 3.6 | 4.1 | 0.87 | 3.0 | 1.20 |
| 1536 | 3.0 | 3.2 | 0.94 | 3.9 | 0.77 |
| 2048 | 2.6 | 3.3 | 0.81 | 3.7 | 0.72 |
GESDD float
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.8 | 0.1 | 10.77 | 0.1 | 7.22 |
| 3x3 | 0.7 | 0.1 | 5.89 | 0.2 | 3.90 |
| 4x4 | 0.8 | 0.2 | 4.39 | 0.3 | 3.39 |
| 6x6 | 0.9 | 0.4 | 2.42 | 0.4 | 2.09 |
| 8x8 | 0.9 | 0.6 | 1.53 | 0.6 | 1.59 |
| 12x12 | 1.1 | 1.1 | 1.01 | 0.9 | 1.15 |
| 16x16 | 1.8 | 1.6 | 1.14 | 1.2 | 1.47 |
| 24x24 | 2.6 | 2.6 | 0.98 | 1.9 | 1.33 |
| 32x32 | 3.5 | 4.1 | 0.88 | 3.3 | 1.07 |
| 48x48 | 5.6 | 6.3 | 0.89 | 4.7 | 1.18 |
| 64x64 | 7.6 | 8.1 | 0.93 | 7.7 | 0.98 |
| 96x96 | 12.0 | 12.4 | 0.97 | 11.2 | 1.07 |
| 100x100 | 12.6 | 12.9 | 0.99 | 11.7 | 1.07 |
| 128x128 | 15.7 | 16.5 | 0.95 | 15.8 | 0.99 |
| 192x192 | 22.2 | 22.0 | 1.01 | 19.1 | 1.16 |
| 200x200 | 23.0 | 23.2 | 0.99 | 19.3 | 1.19 |
| 256x256 | 25.2 | 25.1 | 1.00 | 21.9 | 1.15 |
| 257x257 | 25.9 | 25.3 | 1.02 | 22.9 | 1.13 |
| 384x384 | 31.3 | 31.3 | 1.00 | 26.8 | 1.17 |
| 500x500 | 34.4 | 36.8 | 0.93 | 31.3 | 1.10 |
| 512x512 | 32.2 | 32.7 | 0.99 | 27.7 | 1.16 |
| 768x768 | 34.7 | 37.1 | 0.93 | 32.9 | 1.05 |
| 1000x1000 | 32.4 | 36.7 | 0.88 | 36.3 | 0.89 |
| 1001x1001 | 31.5 | 37.1 | 0.85 | 36.1 | 0.87 |
| 1024x1024 | 27.7 | 28.7 | 0.96 | 26.0 | 1.07 |
| 1536x1536 | 26.7 | 18.8 | 1.41 | 26.7 | 1.00 |
| 2048x2048 | 24.3 | 19.6 | 1.23 | 25.3 | 0.96 |
| 4096x64 | 26.2 | 12.8 | 2.05 | 20.7 | 1.26 |
| 4096x256 | 34.8 | 27.8 | 1.23 | 32.6 | 1.09 |
| 4096x1024 | 34.6 | 26.8 | 1.30 | 31.7 | 1.09 |
| 10000x8 | 8.8 | 8.4 | 1.05 | 10.3 | 0.86 |
| 10000x100 | 36.8 | 14.7 | 2.50 | 17.1 | 2.17 |
| 10000x1000 | 50.1 | 38.5 | 1.29 | 50.8 | 0.99 |
GESDD double
| m×n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2x2 | 0.8 | 0.1 | 9.69 | 0.1 | 7.53 |
| 3x3 | 0.5 | 0.1 | 3.89 | 0.1 | 3.50 |
| 4x4 | 0.5 | 0.2 | 2.42 | 0.2 | 2.36 |
| 6x6 | 0.6 | 0.4 | 1.46 | 0.3 | 1.69 |
| 8x8 | 0.6 | 0.6 | 1.05 | 0.5 | 1.29 |
| 12x12 | 0.7 | 1.0 | 0.71 | 0.7 | 0.98 |
| 16x16 | 1.1 | 1.4 | 0.78 | 1.0 | 1.14 |
| 24x24 | 1.5 | 2.1 | 0.75 | 1.4 | 1.04 |
| 32x32 | 2.0 | 3.2 | 0.62 | 2.5 | 0.80 |
| 48x48 | 2.9 | 4.2 | 0.68 | 3.4 | 0.85 |
| 64x64 | 3.7 | 6.1 | 0.60 | 5.5 | 0.68 |
| 96x96 | 5.4 | 8.5 | 0.62 | 7.7 | 0.71 |
| 100x100 | 5.6 | 8.7 | 0.65 | 8.0 | 0.70 |
| 128x128 | 6.8 | 10.5 | 0.64 | 9.9 | 0.68 |
| 192x192 | 9.1 | 13.9 | 0.65 | 11.8 | 0.78 |
| 200x200 | 9.5 | 14.5 | 0.65 | 12.1 | 0.79 |
| 256x256 | 10.7 | 15.8 | 0.67 | 13.4 | 0.80 |
| 257x257 | 10.9 | 16.8 | 0.65 | 14.1 | 0.78 |
| 384x384 | 13.1 | 18.6 | 0.70 | 15.8 | 0.83 |
| 500x500 | 14.5 | 16.7 | 0.86 | 18.0 | 0.82 |
| 512x512 | 13.2 | 14.0 | 0.94 | 15.5 | 0.86 |
| 768x768 | 13.4 | 16.4 | 0.81 | 15.6 | 0.86 |
| 1000x1000 | 13.0 | 12.7 | 1.03 | 17.3 | 0.74 |
| 1001x1001 | 12.4 | 12.5 | 0.99 | 17.2 | 0.71 |
| 1024x1024 | 11.4 | 10.2 | 1.11 | 13.8 | 0.82 |
| 1536x1536 | 12.5 | 12.2 | 1.03 | 15.0 | 0.83 |
| 2048x2048 | 10.1 | 8.9 | 1.12 | 13.5 | 0.75 |
| 4096x64 | 12.2 | 7.2 | 1.67 | 11.8 | 1.06 |
| 4096x256 | 16.0 | 14.8 | 1.06 | 16.4 | 1.00 |
| 4096x1024 | 15.1 | 14.2 | 1.06 | 16.8 | 0.90 |
| 10000x8 | 3.8 | 5.4 | 0.70 | 7.2 | 0.52 |
| 10000x100 | 17.5 | 4.7 | 3.69 | 6.5 | 2.70 |
| 10000x1000 | 23.7 | 22.2 | 1.07 | 25.7 | 0.92 |
GEEV float
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 1.0 | 0.1 | 13.19 | 0.1 | 10.02 |
| 3 | 0.7 | 0.1 | 5.81 | 0.2 | 3.76 |
| 4 | 1.0 | 0.2 | 4.98 | 0.3 | 3.29 |
| 6 | 1.3 | 0.3 | 3.90 | 0.5 | 2.64 |
| 8 | 1.9 | 0.6 | 3.44 | 0.7 | 2.64 |
| 12 | 2.7 | 1.0 | 2.64 | 1.1 | 2.47 |
| 16 | 3.5 | 1.4 | 2.46 | 1.5 | 2.48 |
| 24 | 4.4 | 2.5 | 1.71 | 2.0 | 2.18 |
| 32 | 5.0 | 3.5 | 1.43 | 2.6 | 1.92 |
| 48 | 5.9 | 5.0 | 1.20 | 3.2 | 1.83 |
| 64 | 6.5 | 6.2 | 1.04 | 3.9 | 1.70 |
| 96 | 7.3 | 4.5 | 1.61 | 4.0 | 1.84 |
| 100 | 7.4 | 4.8 | 1.52 | 4.1 | 1.80 |
| 128 | 7.9 | 5.6 | 1.42 | 4.7 | 1.67 |
| 192 | 8.3 | 10.3 | 0.81 | 9.4 | 0.87 |
| 200 | 8.3 | 10.8 | 0.77 | 9.9 | 0.83 |
| 256 | 8.2 | 13.0 | 0.64 | 11.7 | 0.70 |
| 257 | 8.2 | 13.3 | 0.62 | 11.9 | 0.69 |
| 384 | 8.8 | 18.7 | 0.47 | 16.4 | 0.53 |
| 500 | 9.2 | 22.8 | 0.40 | 19.6 | 0.47 |
| 512 | 8.3 | 15.4 | 0.54 | 14.3 | 0.58 |
| 768 | 8.6 | 21.9 | 0.39 | 20.9 | 0.41 |
| 1000 | 8.1 | 27.5 | 0.29 | 26.0 | 0.31 |
| 1001 | 7.7 | 27.2 | 0.28 | 26.0 | 0.29 |
| 1024 | 6.1 | 24.4 | 0.25 | 23.9 | 0.26 |
GEEV double
| n | Eigen GFLOP/s | Arm Performance Libraries GFLOP/s | Eigen ÷ Arm Performance Libraries | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|---|---|
| 2 | 1.0 | 0.1 | 13.17 | 0.1 | 10.92 |
| 3 | 0.6 | 0.1 | 4.76 | 0.2 | 3.19 |
| 4 | 0.7 | 0.2 | 3.91 | 0.3 | 2.77 |
| 6 | 1.1 | 0.3 | 3.35 | 0.4 | 2.65 |
| 8 | 1.4 | 0.5 | 2.62 | 0.6 | 2.27 |
| 12 | 2.0 | 0.9 | 2.19 | 0.9 | 2.10 |
| 16 | 2.5 | 1.3 | 1.97 | 1.2 | 2.08 |
| 24 | 3.0 | 2.0 | 1.45 | 1.7 | 1.80 |
| 32 | 3.3 | 2.6 | 1.24 | 2.0 | 1.66 |
| 48 | 3.8 | 3.4 | 1.13 | 2.6 | 1.45 |
| 64 | 3.9 | 4.1 | 0.96 | 2.9 | 1.35 |
| 96 | 4.3 | 3.3 | 1.32 | 2.8 | 1.54 |
| 100 | 4.4 | 3.4 | 1.30 | 2.8 | 1.55 |
| 128 | 4.4 | 3.6 | 1.25 | 3.0 | 1.45 |
| 192 | 4.6 | 5.6 | 0.83 | 5.3 | 0.87 |
| 200 | 4.7 | 6.0 | 0.79 | 5.6 | 0.83 |
| 256 | 4.6 | 7.1 | 0.64 | 6.4 | 0.71 |
| 257 | 4.6 | 7.3 | 0.64 | 6.6 | 0.71 |
| 384 | 4.5 | 9.2 | 0.49 | 8.6 | 0.53 |
| 500 | 4.7 | 10.1 | 0.46 | 10.1 | 0.46 |
| 512 | 4.1 | 7.5 | 0.55 | 7.9 | 0.52 |
| 768 | 3.3 | 10.3 | 0.32 | 10.3 | 0.32 |
| 1000 | 2.9 | 11.2 | 0.26 | 12.4 | 0.24 |
| 1001 | 2.8 | 11.0 | 0.25 | 12.5 | 0.22 |
| 1024 | 2.4 | 9.7 | 0.25 | 11.6 | 0.21 |