Eigen vs. BLAS/LAPACK libraries, Apple M4 with SME (October 2026)

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, SYRK) and LAPACK (POTRF, GETRF, GEQRF, SYEV, GESDD, GEEV): Eigen master, built for the Apple M4 with its SME kernels, against Apple Accelerate, Arm Performance Libraries and OpenBLAS on a Mac mini.

The operations and shapes of the Zen 5 page measured on an Apple M4, with Eigen compiled for that CPU (-mcpu=apple-m4), which selects its SME kernels, against the three BLAS/LAPACK libraries available on macOS: Apple Accelerate, Arm Performance Libraries and OpenBLAS. The NEON page has the same cells with Eigen built without SME, at the same Eigen master.

This page was first published with a measurement of 2026-09-19 at Eigen master 46a2d0c56 on macOS 27.0. It now shows a full re-measurement of every library and of Eigen at master 3cf994918 on macOS 27.0.1. Since September, Eigen has gained SME kernels for real dot products, scaled vector additions and column-major matrix-vector products (!3161), and its SME matrix-product kernel takes a NEON path for small blocks (!3160, !3164). The September version of the page and its result files are in the history of the website repository.

Conditions

CPU Apple M4 (Mac mini, Mac16,10), 4 performance and 6 efficiency cores; performance cores: L1d 128 KiB, L2 16 MiB shared by the four; efficiency cores: L1d 64 KiB, L2 4 MiB shared by the six; 24 GiB unified memory; SME2 with a 512-bit streaming vector length and FEAT_SME_F64F64, no non-streaming SVE
OS macOS 27.0.1 (build 26A434), Darwin 27.0.0
Compiler Apple clang 21.0.0 (clang-2100.3.34.2), -O3 -DNDEBUG -mcpu=apple-m4, C++17
Eigen master 3cf994918 (5.0.1-dev), default configuration, no external BLAS. -mcpu=apple-m4 defines __ARM_FEATURE_SME2, which selects Eigen’s SME kernels: matrix products beyond small blocks, and real DOT, AXPY and column-major GEMV between size crossovers set by Eigen’s cache-size estimates; every other kernel is the NEON code
Apple Accelerate the framework shipped with macOS 27.0.1 (build 26A434), which carries no version of its own; its current BLAS/LAPACK interface, the $NEWLAPACK symbols that ACCELERATE_NEW_LAPACK selects in Apple’s headers, LP64
Arm Performance Libraries 26.07 (reports 26.7.0 release), the sequential LP64 library libarmpl_lp64
OpenBLAS 0.3.34 (Homebrew bottle, DYNAMIC_ARCH, OpenMP build); kernel target vortexm4, as the library reports at run time; its LAPACK is the reference LAPACK it bundles
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: VECLIB_MAXIMUM_THREADS, ARMPL_NUM_THREADS, OPENBLAS_NUM_THREADS, 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. macOS has no interface for binding a thread to a core, so the process is not pinned
Date the night of 2026-10-01 to 2026-10-02 (36 runs, about 5.2 hours of measurement)
Harness benchmarks/comparison/run.py from Eigen merge request !2903, machine profile apple-m4-mac-mini

GEMM at n = 1024 ran at 421 GFLOP/s in double and 1647 in float in Eigen, against 383 and 1645 for Accelerate, 364 and 714 for Arm Performance Libraries, and 57 and 114 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 85 % of the cells and above 10 % for 3 %. Some of the widest are at the small end, where a call takes a few nanoseconds, such as GEMM in double at n = 6 (6.3 to 10.1 GFLOP/s across the three binaries). Others depend on the binary rather than on noise, since the ten repetitions within each binary agree to about 1 %: GEMV in double between n = 500 and 1000 runs 26 to 45 % slower in the binary linked against OpenBLAS than in the other two (84 against 153 GFLOP/s at n = 512), and so does DOT in float at n = 256 (28.6 against 46.7).

Each run covered one operation against one library. A run started only once the machine had been idle (other processes using less than 0.35 of a core over two 5 s windows, no keyboard or mouse input for 10 minutes) with no thermal or performance warning from pmset, and was discarded and repeated if the whole machine averaged 1.35 busy cores or more during it, or reached 2.0 in any 5 s window; 1 of 37 runs was repeated. Spotlight indexing was switched off for the session.

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 a performance core’s L1 data cache (128 KiB) and the L2 cache that the four performance cores share (16 MiB); the M4 has no L3.

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.74 ns per call for Eigen against 3.0 ns for Accelerate, 4.9 ns for Arm Performance Libraries and 12.4 ns for OpenBLAS. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

AXPY double AXPY float

DOT

x.dot(y) against ?dot; (2n) flops, the same lengths. Real scalars only: the Fortran convention for returning a complex function value is not fixed by the platform ABI and differs between library builds, so ?dotc cannot be declared portably.

Up to about n = 32 the rates measure the cost of a call; see AXPY.

DOT double DOT float

GEMV

y.noalias() += A * x against ?gemv, column-major, no transposition; (2mn) flops.

Square matrices, then the short-fat (n = 10000, m grows) and tall-skinny (m = 10000, n grows) sweeps.

GEMV double, square GEMV double, sweeps GEMV float, square GEMV float, sweeps

GEMM

C.noalias() += A * B against ?gemm, column-major, no transposition; (2mnk) flops. Eigen runs it on SME, except for small blocks, which take a NEON path.

Square matrices first; then the two tall-skinny sweeps, where m stays at 4096 or 10000 while n = k grows; then the assorted non-square shapes that fit neither.

GEMM double, square GEMM double, tall-skinny sweeps GEMM double, other shapes GEMM float, square GEMM float, tall-skinny sweeps GEMM float, other shapes

TRSM

A.triangularView<Lower>().solveInPlace(X) against ?trsm with the m-by-m lower triangle on the left and n right-hand sides, no transposition, non-unit diagonal; (m(m+1)n) flops. The solve is destructive, so the timed region includes one copy of B for both arms.

Square shapes (m = n), then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of right-hand sides, then the remaining shapes with 4096 right-hand sides against a small triangle.

TRSM double, square TRSM double, sweeps TRSM double, other shapes TRSM float, square TRSM float, sweeps TRSM float, other shapes

SYRK

C.selfadjointView<Lower>().rankUpdate(A) against ?syrk, lower triangle, no transposition, with C n-by-n and A n-by-k; (n(n+1)k) flops.

Square shapes (n = k), then the sweeps: a 4096-by-4096 matrix updated by a growing number of columns, and the Gram matrix of a short, wide factor with 4096 columns.

SYRK double, square SYRK double, sweeps SYRK float, square SYRK float, sweeps

POTRF

LLT<Ref<MatrixXd>> in place against ?potrf, lower triangle, symmetric positive definite operand; (n^3/3) flops. The timed region includes one copy of the operand for both arms, since the factorization is destructive.

POTRF double POTRF float

GETRF

PartialPivLU<Ref<MatrixXd>> in place against ?getrf, square operand; (2n^3/3) flops. Both arms copy the operand into a destination allocated once and factorize the copy; neither allocates inside the timed region.

GETRF double GETRF float

GEQRF

HouseholderQR<Ref<MatrixXd>> in place against ?geqrf, m ≥ n; (2mn^2 - 2n^3/3) flops, the same copy-then-factorize protocol as GETRF.

Square shapes, then the tall-skinny sweeps with m fixed at 4096, 10000 and 100000.

GEQRF double, square GEQRF double, tall-skinny sweeps GEQRF float, square GEQRF float, tall-skinny sweeps

SYEV

SelfAdjointEigenSolver with eigenvectors against ?syev (jobz = 'V', lower triangle), the like-for-like pair: tridiagonalization followed by implicit QR iteration on both sides; (9n^3) flops, the count of that algorithm (Golub & Van Loan, section 8.3.3). Neither works in place: the solver copies the operand internally and the reference arm pays the same one copy. Sizes to 2048, where a call of SelfAdjointEigenSolver takes 2.9 s in double.

SYEV double SYEV float

GESDD

BDCSVD<MatrixXd, ComputeThinU | ComputeThinV> against ?gesdd with jobz = 'S', divide and conquer on both sides, m ≥ n, the thin U and V computed; (14mn^2 + 8n^3) flops, the Golub-Reinsch count (Golub & Van Loan, table 8.6.1). Square sizes to 2048, then tall-skinny sweeps with m fixed at 4096 and 10000.

GESDD double, square GESDD double, tall-skinny sweeps GESDD float, square GESDD float, tall-skinny sweeps

GEEV

EigenSolver with eigenvectors against ?geev (jobvr = 'V'), a dense random nonsymmetric operand: Hessenberg reduction, QR iteration to the Schur form and back-substitution for the eigenvectors on both sides; (25n^3) flops, the count of the Hessenberg QR algorithm with Schur vectors (Golub & Van Loan, section 7.5.6). Sizes to 1024, where a call of EigenSolver takes 3.6 s in double.

GEEV double GEEV float

Summary

Geometric mean of the Eigen ÷ library rate ratio over the square shapes in each size band. Above 1, Eigen is faster. Only the vector operations reach the last band.

Operation Scalar Library n ≤ 16 24–128 192–1024 1536–16384 > 16384
AXPY float Apple Accelerate 4.09 1.21 0.61 0.29 0.94
AXPY float Arm Performance Libraries 6.47 1.80 0.91 0.75 2.57
AXPY float OpenBLAS 3.94 1.79 1.09 1.15 3.05
AXPY double Apple Accelerate 3.47 1.03 0.40 0.32 0.92
AXPY double Arm Performance Libraries 4.98 1.37 0.80 0.95 2.00
AXPY double OpenBLAS 4.03 1.32 0.74 1.05 2.15
DOT float Apple Accelerate 3.28 2.07 1.15 0.52 0.96
DOT float Arm Performance Libraries 4.20 2.17 1.55 2.19 5.54
DOT float OpenBLAS 12.66 7.01 1.58 1.35 3.96
DOT double Apple Accelerate 3.84 1.55 1.03 0.58 0.94
DOT double Arm Performance Libraries 4.96 1.72 1.19 2.51 2.79
DOT double OpenBLAS 13.69 3.43 1.34 2.57 2.79
GEMV float Apple Accelerate 1.75 0.69 0.87 0.95 –
GEMV float Arm Performance Libraries 3.40 15.13 43.31 40.90 –
GEMV float OpenBLAS 2.46 1.37 5.77 1.98 –
GEMV double Apple Accelerate 2.29 0.53 0.78 1.17 –
GEMV double Arm Performance Libraries 2.75 1.97 6.38 1.29 –
GEMV double OpenBLAS 3.72 2.90 7.33 1.18 –
GEMM float Apple Accelerate 1.99 0.80 0.88 1.11 –
GEMM float Arm Performance Libraries 2.06 5.01 3.60 1.71 –
GEMM float OpenBLAS 2.05 4.67 13.20 14.33 –
GEMM double Apple Accelerate 1.38 0.89 0.99 1.16 –
GEMM double Arm Performance Libraries 2.20 2.99 1.44 1.23 –
GEMM double OpenBLAS 1.53 5.19 7.89 7.71 –
TRSM float Apple Accelerate 0.73 0.85 0.48 0.79 –
TRSM float Arm Performance Libraries 2.35 2.40 3.06 7.08 –
TRSM float OpenBLAS 3.63 4.51 4.10 7.21 –
TRSM double Apple Accelerate 0.84 1.04 0.64 0.99 –
TRSM double Arm Performance Libraries 2.06 1.71 2.75 5.37 –
TRSM double OpenBLAS 2.31 2.22 2.86 5.17 –
SYRK float Apple Accelerate 0.23 0.33 0.69 0.92 –
SYRK float Arm Performance Libraries 1.72 2.96 10.60 12.10 –
SYRK float OpenBLAS 0.67 2.33 10.84 12.64 –
SYRK double Apple Accelerate 0.48 0.39 0.82 1.02 –
SYRK double Arm Performance Libraries 1.77 2.93 6.83 6.67 –
SYRK double OpenBLAS 0.72 2.76 7.01 7.08 –
POTRF float Apple Accelerate 0.61 0.38 0.36 0.62 –
POTRF float Arm Performance Libraries 0.99 1.37 2.30 4.84 –
POTRF float OpenBLAS 2.18 1.48 2.13 4.99 –
POTRF double Apple Accelerate 0.68 0.55 0.48 1.07 –
POTRF double Arm Performance Libraries 1.08 1.22 1.59 2.72 –
POTRF double OpenBLAS 2.38 1.24 2.12 4.24 –
GETRF float Apple Accelerate 1.97 1.17 0.94 1.53 –
GETRF float Arm Performance Libraries 0.78 1.03 2.02 3.21 –
GETRF float OpenBLAS 1.74 2.23 2.46 4.81 –
GETRF double Apple Accelerate 1.98 1.00 0.94 1.38 –
GETRF double Arm Performance Libraries 0.80 0.92 1.89 2.43 –
GETRF double OpenBLAS 2.22 1.64 2.14 3.88 –
GEQRF float Apple Accelerate 1.53 0.79 0.96 1.17 –
GEQRF float Arm Performance Libraries 0.76 1.29 3.10 4.54 –
GEQRF float OpenBLAS 1.40 1.29 2.48 5.28 –
GEQRF double Apple Accelerate 1.70 1.24 0.99 1.31 –
GEQRF double Arm Performance Libraries 0.88 1.14 1.69 3.70 –
GEQRF double OpenBLAS 1.57 1.48 2.34 4.47 –
SYEV float Apple Accelerate 1.52 1.77 2.90 2.95 –
SYEV float Arm Performance Libraries 1.42 2.09 3.12 3.98 –
SYEV float OpenBLAS 1.14 1.60 2.20 2.31 –
SYEV double Apple Accelerate 1.46 1.49 1.42 1.36 –
SYEV double Arm Performance Libraries 1.35 1.39 1.64 1.75 –
SYEV double OpenBLAS 1.16 1.40 1.40 1.38 –
GESDD float Apple Accelerate 2.36 0.89 0.86 0.71 –
GESDD float Arm Performance Libraries 1.79 2.19 5.87 19.44 –
GESDD float OpenBLAS 1.53 0.94 2.49 3.42 –
GESDD double Apple Accelerate 2.06 0.78 0.68 0.75 –
GESDD double Arm Performance Libraries 1.44 0.80 1.90 3.03 –
GESDD double OpenBLAS 1.39 0.80 1.80 1.97 –
GEEV float Apple Accelerate 4.14 1.54 0.34 – –
GEEV float Arm Performance Libraries 2.49 1.41 0.56 – –
GEEV float OpenBLAS 2.18 1.06 0.33 – –
GEEV double Apple Accelerate 3.74 1.17 0.26 – –
GEEV double Arm Performance Libraries 2.04 0.66 0.26 – –
GEEV double OpenBLAS 1.98 0.84 0.32 – –

Caveats

  • macOS cannot bind a thread to a core, so a single-threaded rate is that of whichever core the scheduler chose; a busy foreground thread normally stays on a performance core.
  • The machine is a desktop with a logged-in session and its background services. Runs that they disturbed beyond the limits above were repeated; smaller disturbances remain in the numbers.
  • Eigen’s SME kernels cover matrix products and, within size ranges set from its cache-size estimates, real DOT, AXPY and column-major GEMV. TRSM, SYRK and the blocked factorizations reach SME through their matrix-product updates; everything else is NEON. Eigen reads its L2 estimate from the operating system, which on this machine reports the efficiency cores’ 4 MiB L2, so the vector kernels hand back to NEON at 4 MiB per operand rather than at the performance cores' 16 MiB.
  • Accelerate is identified by the macOS build, since the framework reports no version of its own.

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 Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 4.0 1.1 3.91 0.6 6.24 1.3 3.00
3 5.9 1.5 4.02 1.0 5.87 1.9 3.11
4 10.8 2.1 5.20 1.2 8.66 1.9 5.75
6 11.2 2.9 3.85 1.8 6.26 2.3 4.82
8 19.6 3.9 5.02 2.7 7.29 4.7 3.86
12 23.1 5.8 3.98 3.6 6.53 4.9 4.67
16 25.8 8.4 3.03 5.2 4.99 8.2 3.14
24 27.7 11.4 2.42 7.4 3.72 10.8 2.56
32 18.2 14.2 1.29 9.5 1.91 12.8 1.42
48 18.8 18.5 1.04 12.4 1.52 12.8 1.47
64 22.2 21.4 1.02 14.5 1.57 9.2 2.41
96 27.1 25.7 1.06 17.5 1.57 15.7 1.72
100 27.0 25.9 1.06 16.5 1.64 15.6 1.73
128 28.0 27.1 1.03 19.9 1.41 18.0 1.55
192 29.3 29.6 0.99 24.0 1.22 21.1 1.38
256 30.0 32.9 0.91 26.6 1.13 23.0 1.30
384 30.7 36.0 0.86 30.7 1.00 25.3 1.05
512 27.5 41.7 0.66 33.2 0.83 26.6 1.04
768 28.0 59.6 0.47 35.5 0.79 28.0 1.00
1000 28.6 62.3 0.46 35.3 0.81 28.1 1.02
1001 28.7 62.4 0.46 35.0 0.82 28.4 1.01
1024 28.1 78.1 0.36 35.5 0.79 28.2 0.99
1536 29.4 106.5 0.28 37.8 0.78 29.3 1.00
2048 30.1 106.9 0.28 39.0 0.77 29.8 1.01
3072 30.8 106.9 0.29 41.2 0.75 30.3 1.02
4096 31.2 107.1 0.29 41.0 0.76 16.6 1.88
6144 31.6 107.3 0.29 42.7 0.74 30.8 1.02
8192 31.7 107.4 0.30 42.0 0.76 21.3 1.49
10000 31.8 107.1 0.30 42.2 0.75 31.1 1.03
12288 31.9 107.4 0.30 42.4 0.75 30.9 1.03
16384 31.9 107.5 0.30 44.5 0.72 29.3 1.09
32768 100.2 107.5 0.93 24.5 4.09 19.6 5.13
65536 100.4 107.5 0.93 24.6 4.08 19.6 5.13
100000 100.5 107.5 0.93 24.6 4.08 19.9 5.06
131072 100.6 107.5 0.94 24.7 4.07 19.7 5.12
262144 100.6 107.5 0.94 24.7 4.07 19.7 5.11
524288 100.6 107.5 0.94 24.6 4.08 19.7 5.10
1000000 100.6 107.4 0.94 21.7 4.64 16.9 5.95
1048576 100.6 107.5 0.94 24.5 4.10 19.2 5.24
2097152 23.5 36.5 0.65 24.3 0.96 20.0 1.18
4194304 18.5 17.6 1.05 18.5 1.00 18.6 0.99
8388608 18.4 16.0 1.15 18.4 1.00 18.2 1.01
16777216 16.5 15.8 1.05 16.6 1.00 16.9 0.97
AXPY double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 5.4 1.0 5.26 0.7 8.07 1.3 4.02
3 7.2 1.6 4.64 1.0 7.16 1.9 3.84
4 9.6 1.9 5.09 1.4 6.59 1.9 5.16
6 11.6 2.9 3.97 1.9 6.21 2.2 5.18
8 12.8 3.7 3.48 2.7 4.81 2.8 4.59
12 13.8 5.3 2.61 3.9 3.57 3.0 4.52
16 9.1 6.8 1.34 4.9 1.86 4.5 2.03
24 9.6 8.9 1.09 6.3 1.52 4.8 2.02
32 11.1 10.4 1.06 7.1 1.55 8.8 1.27
48 13.5 12.5 1.09 8.8 1.52 9.7 1.38
64 14.1 13.5 1.05 10.0 1.41 9.0 1.57
96 14.6 14.7 1.00 11.7 1.25 13.2 1.11
100 14.7 15.0 0.98 11.9 1.24 13.2 1.11
128 15.0 16.3 0.92 13.0 1.15 14.8 1.01
192 15.4 17.8 0.86 15.1 1.02 16.7 0.92
256 13.8 20.8 0.66 16.4 0.84 17.7 0.78
384 14.0 30.6 0.46 17.7 0.79 19.2 0.73
512 14.2 38.3 0.37 17.9 0.79 20.0 0.71
768 14.8 53.0 0.28 19.7 0.75 21.0 0.70
1000 15.1 52.6 0.29 20.0 0.75 21.4 0.70
1001 15.1 52.6 0.29 19.8 0.76 21.5 0.70
1024 15.1 53.5 0.28 20.2 0.74 21.5 0.70
1536 15.4 53.6 0.29 20.4 0.76 21.9 0.71
2048 15.6 53.6 0.29 21.6 0.72 22.4 0.70
3072 15.8 53.7 0.29 22.2 0.71 18.6 0.85
4096 15.9 53.7 0.30 22.4 0.71 18.7 0.85
6144 16.0 53.7 0.30 22.6 0.71 18.8 0.85
8192 16.0 53.7 0.30 22.3 0.72 18.0 0.88
10000 13.0 53.6 0.24 12.1 1.08 11.2 1.16
12288 12.1 53.7 0.22 12.2 0.99 11.1 1.09
16384 50.1 53.8 0.93 12.2 4.09 11.1 4.53
32768 50.2 53.8 0.93 12.3 4.07 11.1 4.52
65536 50.3 53.8 0.94 12.3 4.07 11.1 4.52
100000 50.3 53.8 0.94 12.4 4.07 11.1 4.52
131072 50.3 53.8 0.94 12.4 4.07 11.2 4.51
262144 50.3 53.8 0.94 12.3 4.08 11.1 4.52
524288 50.3 53.8 0.94 12.3 4.10 10.8 4.67
1000000 11.8 18.9 0.62 12.2 0.96 11.1 1.06
1048576 11.8 18.0 0.65 12.2 0.96 11.1 1.06
2097152 9.2 8.5 1.08 9.2 1.00 9.2 1.01
4194304 9.2 8.0 1.15 9.2 0.99 9.0 1.01
8388608 8.2 7.9 1.04 8.3 1.00 8.4 0.98
16777216 8.0 7.8 1.03 8.0 0.99 8.0 1.00
DOT float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 5.4 1.1 4.86 0.8 6.33 0.3 16.65
3 6.9 1.7 4.00 1.2 5.74 0.5 14.57
4 8.4 2.7 3.09 1.8 4.65 0.6 13.51
6 9.8 3.4 2.89 2.4 4.04 0.9 10.92
8 13.3 4.5 2.92 3.7 3.59 1.1 11.76
12 19.6 6.0 3.26 5.4 3.62 1.6 12.50
16 18.8 7.6 2.47 7.2 2.61 1.9 9.93
24 27.7 10.2 2.71 10.1 2.74 2.5 10.97
32 37.0 13.1 2.83 12.0 3.07 3.1 12.00
48 46.4 18.0 2.61 16.7 2.77 3.4 13.86
64 46.8 21.8 2.15 20.7 2.26 9.4 4.97
96 45.8 28.7 1.60 26.8 1.71 8.4 5.44
100 45.8 28.9 1.59 26.9 1.70 8.0 5.73
128 46.6 30.9 1.51 31.3 1.49 15.9 2.93
192 46.7 34.3 1.36 35.2 1.33 20.4 2.29
256 46.7 36.4 1.28 33.7 1.39 23.5 1.22
384 46.7 39.5 1.18 32.6 1.43 27.5 1.70
512 46.6 41.1 1.14 29.5 1.58 28.9 1.61
768 46.1 42.4 1.09 27.4 1.68 32.0 1.44
1000 44.9 42.3 1.06 26.7 1.68 27.9 1.61
1001 44.4 42.2 1.05 26.5 1.68 27.6 1.61
1024 44.8 42.5 1.06 26.9 1.66 33.2 1.35
1536 43.1 41.6 1.03 24.8 1.73 34.2 1.26
2048 41.4 44.7 0.93 22.0 1.88 35.4 1.17
3072 39.5 61.4 0.64 20.6 1.91 36.2 1.09
4096 38.4 74.6 0.51 20.0 1.92 20.5 1.87
6144 37.5 96.0 0.39 19.4 1.93 37.0 1.01
8192 37.1 111.9 0.33 19.1 1.94 26.6 1.39
10000 36.6 125.2 0.29 18.7 1.96 36.7 1.00
12288 36.6 134.2 0.27 18.9 1.94 37.2 0.98
16384 128.5 149.0 0.89 18.5 6.93 36.3 3.53
32768 163.7 179.1 0.93 17.8 9.14 25.4 6.45
65536 188.7 199.1 0.96 17.7 10.68 26.2 7.19
100000 199.3 207.0 0.97 17.6 11.32 27.2 7.33
131072 204.7 210.6 0.98 17.6 11.64 26.8 7.63
262144 213.8 217.0 0.99 17.5 12.22 27.2 7.86
524288 218.7 220.3 0.99 17.5 12.48 27.0 8.06
1000000 219.8 164.9 0.99 17.7 12.43 23.7 9.31
1048576 221.1 222.0 1.00 17.5 12.49 26.6 8.30
2097152 27.6 42.6 0.68 16.7 1.61 25.6 1.08
4194304 24.4 18.4 1.03 16.9 1.45 23.9 1.05
8388608 19.2 18.3 1.05 17.3 1.11 18.6 1.03
16777216 18.6 18.1 1.02 17.7 1.06 18.3 1.02
DOT double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 5.4 1.3 4.00 0.8 6.67 0.3 16.67
3 8.1 1.7 4.66 1.2 7.00 0.5 17.00
4 10.8 2.3 4.64 1.7 6.33 0.6 17.33
6 12.1 3.0 4.00 2.3 5.25 0.9 13.65
8 12.9 3.8 3.40 3.2 4.00 1.1 11.42
12 17.6 5.1 3.44 4.6 3.82 1.6 11.31
16 19.9 6.6 3.02 6.4 3.10 1.9 10.41
24 20.8 8.9 2.35 8.2 2.50 2.6 8.15
32 21.4 10.8 1.98 10.8 1.99 4.6 4.64
48 22.1 14.0 1.58 13.8 1.56 5.4 4.08
64 22.3 15.6 1.43 11.2 1.99 8.0 2.81
96 22.6 17.6 1.28 15.5 1.46 10.2 2.22
100 22.9 18.2 1.26 15.5 1.46 10.2 2.25
128 22.8 18.3 1.25 16.5 1.38 8.8 2.58
192 23.0 19.6 1.17 17.3 1.33 13.9 1.66
256 23.0 20.5 1.12 17.6 1.30 14.8 1.46
384 23.0 21.2 1.09 18.0 1.27 16.0 1.44
512 22.5 21.5 1.04 18.2 1.23 16.5 1.36
768 21.6 21.1 1.02 18.5 1.17 17.2 1.26
1000 21.0 22.4 0.94 18.5 1.10 17.5 1.20
1001 20.9 22.3 0.94 18.5 1.09 17.5 1.19
1024 20.9 22.8 0.92 18.6 1.09 17.6 1.19
1536 19.8 31.0 0.64 18.7 1.05 18.0 1.10
2048 19.2 37.8 0.51 7.0 2.75 7.1 2.71
3072 18.8 48.6 0.39 18.9 0.99 18.4 1.02
4096 18.5 56.5 0.33 10.4 1.79 10.2 1.82
6144 18.3 67.7 0.27 15.1 1.21 15.0 1.22
8192 64.4 75.0 0.89 15.4 4.17 15.2 4.24
10000 69.7 79.9 0.91 16.2 4.31 15.2 4.59
12288 74.9 84.5 0.92 13.3 5.62 12.9 5.81
16384 81.8 90.0 0.93 13.0 6.27 12.7 6.46
32768 94.6 99.7 0.96 13.3 7.10 13.1 7.20
65536 102.4 105.4 0.98 13.6 7.54 13.4 7.64
100000 105.5 107.7 0.99 13.8 7.63 13.7 7.71
131072 106.9 108.5 0.99 13.7 7.80 13.6 7.86
262144 109.3 110.2 0.99 13.7 8.00 13.5 8.05
524288 110.6 111.0 1.00 13.4 8.06 13.3 8.30
1000000 14.3 26.2 0.55 13.2 1.11 13.1 1.08
1048576 14.5 18.1 0.81 13.1 1.12 13.3 1.09
2097152 9.3 9.2 1.01 11.3 0.86 11.4 0.81
4194304 9.5 9.2 1.03 9.2 1.02 9.2 1.03
8388608 9.2 9.0 1.02 9.1 1.00 9.1 1.02
16777216 9.1 8.5 1.07 9.1 1.00 9.1 1.00
GEMV float
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 1.3 0.6 2.04 0.6 2.41 0.4 3.01
3x3 2.4 1.2 2.02 1.2 2.07 1.0 2.48
4x4 5.0 2.7 1.85 2.1 2.35 1.7 2.88
6x6 9.1 4.1 2.22 4.3 2.11 3.6 2.51
8x8 15.2 9.7 1.58 7.3 2.12 6.0 2.28
12x12 27.0 18.7 1.44 2.7 10.15 11.7 2.31
16x16 37.1 28.8 1.29 3.7 10.01 19.0 1.94
24x24 48.5 46.4 1.05 5.1 9.57 28.6 1.70
32x32 66.2 58.3 1.14 6.0 11.12 37.7 1.75
48x48 57.6 54.7 1.05 6.8 8.52 51.0 1.13
64x64 74.0 154.6 0.48 7.0 10.47 58.7 1.26
96x96 73.6 151.9 0.49 2.2 31.87 69.1 1.07
100x100 58.1 141.3 0.41 2.3 25.16 69.2 0.84
128x128 169.9 273.3 0.62 7.1 23.86 68.9 2.35
192x192 244.0 255.3 0.96 6.4 37.98 45.9 5.30
200x200 202.2 170.6 1.19 6.5 31.34 46.5 4.35
256x256 304.1 350.6 0.87 5.9 51.70 46.1 6.48
257x257 174.9 222.8 0.79 6.7 26.19 40.8 4.23
384x384 276.9 347.5 0.80 5.7 48.38 46.1 5.95
500x500 273.9 244.1 1.12 6.4 42.81 46.7 5.86
512x512 305.5 419.3 0.73 6.6 46.49 46.4 6.57
768x768 309.9 401.7 0.77 5.6 55.40 47.3 6.54
1000x1000 276.3 307.9 0.90 5.6 49.01 47.4 5.82
1001x1001 273.5 299.7 0.91 5.6 49.16 44.2 6.19
1024x1024 304.1 425.6 0.72 6.3 48.53 44.2 6.88
1536x1536 295.9 403.6 0.73 2.0 147.45 44.0 6.84
2048x2048 71.4 63.8 1.02 1.7 48.66 42.5 1.68
3072x3072 36.7 36.7 1.00 1.7 21.25 25.1 1.46
4096x4096 36.7 35.7 1.03 0.9 39.18 27.9 1.32
4097x4097 35.6 35.3 1.01 1.9 19.16 26.0 1.37
8x10000 37.3 16.5 2.23 5.8 6.45 10.5 3.55
100x10000 43.7 147.3 0.30 5.6 7.75 50.5 0.86
1000x10000 36.3 36.0 1.01 1.9 18.76 29.4 1.24
4000x10000 36.3 36.1 1.01 1.9 19.45 23.5 1.54
10000x8 247.7 263.8 0.94 6.5 38.95 42.8 5.74
10000x100 338.0 382.4 0.89 6.8 49.77 41.8 8.09
10000x1000 36.6 36.5 1.00 1.7 21.61 35.8 1.02
10000x4000 36.2 36.1 1.00 1.8 20.49 27.9 1.29
GEMV double
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 1.6 0.7 2.21 0.5 2.90 0.4 3.90
3x3 2.7 1.3 2.01 1.1 2.42 0.8 3.22
4x4 5.2 2.7 1.93 1.9 2.66 1.5 3.43
6x6 10.7 2.8 3.81 4.1 2.61 2.2 4.75
8x8 15.8 9.2 1.72 4.0 3.90 4.2 3.78
12x12 21.0 4.7 4.46 7.1 2.97 6.0 3.48
16x16 27.9 21.0 1.33 13.2 2.12 7.6 3.66
24x24 30.5 28.1 1.08 17.8 1.71 9.7 3.13
32x32 35.4 51.7 0.68 19.3 1.84 12.5 2.84
48x48 37.5 64.9 0.58 23.6 1.59 17.1 2.19
64x64 36.6 123.7 0.30 19.8 1.85 12.9 2.84
96x96 35.4 131.6 0.27 23.2 1.52 18.0 1.96
100x100 31.9 87.9 0.36 27.2 1.17 18.1 1.76
128x128 155.5 168.9 0.92 22.4 6.94 16.5 9.00
192x192 136.5 174.1 0.78 21.3 6.41 16.8 8.04
200x200 127.2 137.4 0.93 23.1 5.51 17.1 7.42
256x256 153.3 205.9 0.75 21.2 7.24 16.6 9.23
257x257 101.4 142.8 0.71 20.0 5.17 15.8 6.37
384x384 155.9 202.1 0.77 22.3 7.01 16.8 9.24
500x500 138.1 158.4 0.87 23.4 5.91 16.9 4.76
512x512 153.0 211.7 0.72 21.1 7.25 17.2 4.89
768x768 152.5 212.8 0.72 22.5 6.79 16.7 9.09
1000x1000 143.6 182.1 0.79 24.0 5.99 16.8 6.32
1001x1001 140.3 175.8 0.80 23.1 6.00 16.2 8.67
1024x1024 151.2 211.8 0.72 20.8 7.28 17.1 8.77
1536x1536 24.5 24.5 1.00 20.6 1.23 16.6 1.41
2048x2048 18.4 15.2 1.21 15.8 1.16 16.4 1.12
3072x3072 18.3 17.2 1.07 13.1 1.40 16.3 1.12
4096x4096 18.2 13.3 1.37 13.8 1.32 16.2 1.12
4097x4097 17.9 14.3 1.25 13.0 1.37 15.6 1.15
8x10000 22.9 25.5 0.90 14.9 1.54 4.3 5.31
100x10000 20.5 93.5 0.22 21.0 0.97 16.6 1.22
1000x10000 18.2 18.0 1.01 12.0 1.52 16.2 1.13
4000x10000 18.0 17.9 1.01 14.1 1.28 16.0 1.12
10000x8 124.7 136.8 0.91 20.9 6.02 11.7 10.60
10000x100 174.3 197.6 0.88 20.4 8.47 11.4 15.40
10000x1000 18.3 18.1 1.01 17.3 1.06 11.0 1.66
10000x4000 18.0 17.9 1.01 16.1 1.12 11.0 1.64
GEMM float
m×n×k Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2x2 2.3 0.8 2.75 1.0 2.27 0.5 4.59
3x3x3 4.0 1.2 3.44 3.0 1.33 1.5 2.72
4x4x4 15.2 7.9 1.91 7.3 1.85 4.0 3.82
6x6x6 17.0 6.7 2.58 5.0 3.22 8.9 1.90
8x8x8 43.7 24.6 1.77 11.5 3.80 21.1 2.09
12x12x12 39.3 27.1 1.46 24.9 1.58 43.3 0.91
16x16x16 60.2 58.6 1.03 40.9 1.47 67.9 0.89
24x24x24 79.8 127.6 0.62 64.5 1.24 79.4 1.01
32x32x32 204.0 339.0 0.67 77.6 2.61 96.4 2.12
48x48x48 412.9 557.9 0.78 89.9 4.56 104.5 3.95
64x64x64 763.3 983.7 0.81 92.9 8.20 104.1 7.33
96x96x96 1063.2 1288.8 0.82 102.5 10.40 109.1 9.56
100x100x100 744.1 688.7 1.08 96.3 7.73 101.5 7.23
128x128x128 1254.3 1451.9 0.86 153.0 8.20 109.9 11.29
160x160x160 1364.1 1550.0 0.88 191.9 7.11 109.9 12.30
192x192x192 1103.8 1610.3 0.69 220.5 5.00 91.5 12.05
200x200x200 1038.0 1207.0 0.86 223.3 4.65 108.1 9.60
224x224x224 1255.3 1676.1 0.75 267.2 4.70 111.1 11.29
256x256x256 1253.6 1701.9 0.74 248.7 5.04 110.8 11.30
257x257x257 1090.4 1173.4 0.93 271.3 4.02 104.4 10.44
288x288x288 1362.6 1739.9 0.78 318.3 4.28 112.0 12.17
320x320x320 1444.8 1755.9 0.82 347.7 4.16 112.1 12.89
384x384x384 1568.3 1800.4 0.87 386.1 4.06 106.8 14.67
448x448x448 1649.4 1828.4 0.90 417.0 3.96 113.0 14.60
500x500x500 1562.2 1560.8 1.00 536.5 2.91 111.4 14.04
512x512x512 1680.8 1777.5 0.95 488.5 3.44 113.1 14.86
768x768x768 1819.2 1898.9 0.96 676.1 2.69 113.6 15.99
1000x1000x1000 1784.4 1772.4 1.00 772.1 2.31 113.2 15.93
1001x1001x1001 1781.8 1726.2 1.03 737.7 2.42 111.4 16.14
1024x1024x1024 1646.9 1644.6 1.00 714.5 2.32 113.7 14.48
1536x1536x1536 1592.0 1457.0 1.09 907.2 1.76 113.7 14.01
2048x2048x2048 1614.9 1552.5 1.04 929.6 1.74 113.4 14.24
3072x3072x3072 1641.1 1457.6 1.13 1037.4 1.58 113.5 14.46
4096x4096x4096 1680.5 1462.7 1.15 905.0 1.84 113.8 14.82
4097x4097x4097 1597.5 1371.3 1.17 982.2 1.63 113.1 14.13
64x64x1024 875.8 1084.5 0.81 76.0 11.52 100.2 8.75
64x1024x64 922.3 1191.7 0.77 155.5 5.93 109.7 8.37
256x256x1024 1556.0 1643.4 0.95 295.7 5.26 109.7 14.19
1024x64x64 758.9 994.3 0.77 92.1 8.24 107.0 7.09
1024x256x256 1349.4 1518.8 0.89 273.8 4.93 112.5 12.01
4096x96x96 935.1 1152.3 0.81 110.9 8.48 109.5 8.54
4096x128x128 1040.8 1282.1 0.81 138.8 7.51 110.5 9.42
4096x144x144 1115.2 1319.5 0.84 155.9 7.18 111.3 10.02
4096x160x160 1158.7 1349.4 0.86 184.6 6.29 111.7 10.38
4096x176x176 1219.8 1402.4 0.87 198.4 6.16 112.0 10.90
8192x128x128 1053.8 1266.9 0.83 149.7 7.04 110.5 9.62
10000x8x8 144.8 421.8 0.34 45.4 3.19 73.5 1.97
10000x100x100 942.0 1135.3 0.83 184.1 5.12 111.1 8.52
10000x1000x1000 1664.4 1402.2 1.19 734.6 2.26 113.3 14.69
10000x4000x4000 1755.9 1509.9 1.16 957.4 1.84 113.7 15.38
GEMM double
m×n×k Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2x2 3.6 0.9 4.16 1.0 3.22 0.6 5.94
3x3x3 4.5 1.6 2.73 0.7 6.70 1.7 2.57
4x4x4 8.7 6.2 1.41 1.7 3.54 4.3 2.04
6x6x6 9.9 11.1 0.91 4.8 1.30 9.3 1.07
8x8x8 14.0 17.8 0.79 9.0 1.55 18.0 0.78
12x12x12 26.7 20.9 1.28 20.9 1.26 31.1 0.86
16x16x16 35.1 55.5 0.63 27.7 1.27 38.9 0.90
24x24x24 66.7 97.9 0.73 39.9 1.67 46.5 1.43
32x32x32 146.9 206.5 0.77 36.0 4.08 48.1 3.03
48x48x48 236.9 306.4 0.79 50.6 4.68 52.1 4.53
64x64x64 328.9 362.0 0.93 92.2 3.57 28.9 11.36
96x96x96 401.4 411.0 0.98 137.4 2.92 53.3 7.49
100x100x100 328.1 283.3 1.16 129.4 2.54 52.7 6.22
128x128x128 427.9 433.1 0.99 170.7 2.51 43.8 9.78
160x160x160 378.3 447.1 0.85 198.2 1.91 54.6 6.91
192x192x192 387.6 455.7 0.85 223.4 1.74 49.8 7.78
200x200x200 389.5 438.5 0.89 218.2 1.78 55.2 7.07
224x224x224 415.3 462.3 0.90 243.1 1.71 55.4 7.50
256x256x256 434.1 458.7 0.95 260.2 1.67 52.4 8.28
257x257x257 402.4 348.5 1.15 235.8 1.71 53.8 7.48
288x288x288 446.9 471.0 0.95 280.9 1.59 55.9 7.99
320x320x320 456.2 473.3 0.96 289.4 1.58 56.0 8.14
384x384x384 468.0 478.2 0.98 302.5 1.55 53.3 8.78
448x448x448 475.3 481.6 0.99 329.0 1.44 56.5 8.41
500x500x500 468.1 439.3 1.07 336.1 1.39 56.4 8.30
512x512x512 460.8 439.8 1.05 349.6 1.32 56.5 8.22
768x768x768 455.3 468.0 0.97 394.4 1.15 56.9 8.00
1000x1000x1000 432.6 419.5 1.03 408.2 1.06 56.7 7.63
1001x1001x1001 422.9 420.7 1.00 381.8 1.11 56.3 7.51
1024x1024x1024 421.1 382.9 1.10 363.6 1.16 56.8 7.48
1536x1536x1536 422.9 378.7 1.11 365.6 1.19 56.7 7.46
2048x2048x2048 436.9 383.8 1.14 347.1 1.26 56.9 7.53
3072x3072x3072 444.6 380.6 1.17 354.3 1.25 56.7 7.88
4096x4096x4096 450.3 382.8 1.17 364.8 1.23 57.1 7.93
4097x4097x4097 441.5 360.4 1.23 361.1 1.22 56.7 7.79
64x64x1024 320.5 396.9 0.81 146.3 2.19 49.8 6.44
64x1024x64 377.0 385.2 0.98 156.1 2.41 54.5 6.91
256x256x1024 463.1 466.9 0.99 303.7 1.52 55.6 8.33
1024x64x64 344.8 351.0 0.98 112.9 3.05 53.3 6.71
1024x256x256 445.0 441.5 1.01 275.0 1.62 56.2 7.92
4096x96x96 374.0 347.4 1.06 56.2 6.65 54.5 7.02
4096x128x128 403.2 376.8 1.07 55.7 7.24 55.0 7.56
4096x144x144 408.7 386.9 1.06 58.0 7.15 55.5 7.31
4096x160x160 409.7 370.2 1.11 57.5 6.95 55.7 7.41
4096x176x176 412.5 380.4 1.08 57.4 7.19 55.9 7.37
8192x128x128 353.4 294.5 1.20 55.6 6.36 55.0 6.49
10000x8x8 69.5 217.6 0.32 24.5 2.79 36.2 1.92
10000x100x100 339.7 377.9 0.90 55.4 6.12 55.4 6.13
10000x1000x1000 453.8 380.6 1.15 408.7 1.11 56.5 8.03
10000x4000x4000 464.5 388.9 1.19 378.7 1.23 56.8 8.18
TRSM float
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.5 1.1 0.47 0.4 1.11 0.4 1.16
3x3 1.1 3.0 0.38 1.1 1.09 0.7 1.63
4x4 6.1 6.1 1.01 4.0 1.53 1.0 5.86
6x6 7.0 12.7 0.55 2.4 2.96 2.1 3.31
8x8 20.7 22.1 0.94 5.0 4.11 3.6 5.74
12x12 28.8 29.6 0.97 7.2 4.00 5.6 4.53
16x16 47.5 39.6 1.20 10.7 4.44 5.4 8.72
24x24 57.2 49.1 1.16 16.2 3.54 9.0 6.40
32x32 67.6 54.1 1.25 17.3 3.87 10.5 6.42
48x48 78.0 51.9 1.51 29.7 2.61 15.4 5.06
64x64 84.7 99.2 0.85 36.9 2.29 15.5 5.46
96x96 93.1 158.3 0.59 50.1 1.85 27.2 3.42
100x100 91.4 127.0 0.72 50.0 1.83 27.1 3.38
128x128 95.6 240.5 0.40 57.5 1.66 33.2 2.88
192x192 129.5 338.9 0.38 68.8 1.88 40.0 3.24
200x200 130.5 257.2 0.51 71.7 1.82 44.2 2.95
256x256 155.4 440.3 0.35 68.4 2.27 51.3 3.03
257x257 168.3 274.2 0.62 73.4 2.29 49.2 3.41
384x384 232.4 605.5 0.38 84.2 2.76 60.5 3.84
500x500 288.1 579.0 0.50 93.7 3.08 68.6 4.19
512x512 295.1 663.6 0.45 84.9 3.48 70.9 4.16
768x768 399.2 887.6 0.45 94.7 4.22 80.9 4.93
1000x1000 486.7 844.6 0.58 105.4 4.62 86.0 5.67
1001x1001 474.4 796.6 0.60 103.6 4.58 84.2 5.63
1024x1024 457.3 767.7 0.60 96.5 4.74 87.3 5.24
1536x1536 590.9 964.3 0.61 104.6 5.65 94.2 6.26
2048x2048 615.0 844.5 0.73 96.2 6.39 98.3 6.27
3072x3072 791.6 983.8 0.80 107.5 7.36 102.6 7.72
4096x4096 851.2 930.8 0.91 100.9 8.44 105.4 8.08
4097x4097 826.9 866.7 0.96 103.4 7.93 104.3 7.93
64x4096 82.1 180.5 0.45 41.1 2.00 20.1 4.09
256x4096 172.6 523.9 0.33 68.0 2.53 52.4 3.29
1024x8 185.7 58.3 3.17 44.0 4.22 37.9 4.91
1024x64 367.0 537.5 0.68 85.4 4.30 76.0 4.83
1024x256 442.8 714.2 0.62 94.9 4.67 84.9 5.22
1024x4096 447.3 724.2 0.62 92.7 4.83 86.9 5.15
4096x8 138.8 43.8 3.25 25.8 5.38 42.5 3.20
4096x64 560.6 501.6 1.12 74.6 7.43 88.3 6.36
4096x256 803.0 883.3 0.91 94.4 8.49 101.1 7.95
4096x1024 842.0 992.8 0.85 101.0 8.33 104.5 8.06
TRSM double
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.5 1.1 0.50 0.4 1.20 0.5 1.06
3x3 1.2 2.8 0.42 1.0 1.17 0.9 1.33
4x4 4.7 4.7 1.00 3.8 1.21 1.7 2.82
6x6 6.8 9.3 0.72 1.9 3.62 2.8 2.39
8x8 14.6 13.1 1.11 4.4 3.33 3.9 3.71
12x12 20.6 15.9 1.30 7.2 2.82 6.5 3.19
16x16 25.0 17.9 1.40 9.0 2.77 7.9 3.15
24x24 30.4 9.1 3.31 13.7 2.21 10.7 2.83
32x32 34.2 18.5 1.84 16.8 2.04 13.1 2.60
48x48 39.2 32.5 1.21 22.0 1.78 17.9 2.19
64x64 42.5 52.7 0.81 24.0 1.77 13.9 3.05
96x96 45.1 77.1 0.58 32.0 1.41 26.6 1.69
100x100 45.1 56.1 0.81 32.5 1.39 26.3 1.72
128x128 47.5 100.8 0.47 31.5 1.51 25.6 1.85
192x192 70.8 135.2 0.52 39.8 1.78 32.7 2.16
200x200 72.4 132.4 0.55 41.5 1.74 36.6 1.98
256x256 79.7 169.8 0.47 37.2 2.14 37.2 2.14
257x257 91.1 114.9 0.80 43.4 2.10 38.4 2.37
384x384 112.6 219.2 0.51 45.6 2.47 44.0 2.56
500x500 136.8 210.2 0.65 49.5 2.77 46.0 2.98
512x512 134.8 211.3 0.64 42.7 3.16 46.5 2.90
768x768 177.2 274.3 0.65 49.1 3.61 49.8 3.55
1000x1000 207.4 272.6 0.76 54.0 3.84 51.3 4.04
1001x1001 200.0 259.4 0.77 53.2 3.76 50.6 3.94
1024x1024 197.1 248.5 0.79 45.4 4.34 51.4 3.84
1536x1536 239.6 274.8 0.87 53.3 4.49 52.6 4.56
2048x2048 247.5 255.3 0.97 48.1 5.15 53.6 4.62
3072x3072 298.6 289.6 1.03 53.1 5.62 54.5 5.49
4096x4096 318.7 304.3 1.05 52.8 6.02 55.3 5.77
4097x4097 304.1 290.1 1.05 53.1 5.71 54.9 5.54
64x4096 41.2 75.7 0.54 25.3 1.63 21.5 1.92
256x4096 82.5 183.5 0.45 36.9 2.24 40.0 2.06
1024x8 105.8 70.9 1.49 25.4 4.16 31.5 3.36
1024x64 180.3 213.3 0.85 43.9 4.09 47.7 3.78
1024x256 199.0 246.8 0.81 45.0 4.42 50.6 3.95
1024x4096 194.4 195.7 0.99 44.0 4.41 50.8 3.83
4096x8 62.7 46.3 1.35 21.9 2.90 24.9 2.51
4096x64 221.3 181.3 1.23 46.8 4.73 48.2 4.59
4096x256 297.8 266.3 1.12 51.7 5.75 53.5 5.57
4096x1024 314.6 288.1 1.09 52.9 5.95 54.8 5.73
SYRK float
n×k Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.2 1.2 0.13 0.1 1.62 0.4 0.43
3x3 0.5 3.3 0.14 0.3 1.55 1.0 0.45
4x4 1.1 7.3 0.15 0.6 1.78 2.2 0.50
6x6 2.6 13.9 0.19 1.7 1.52 4.7 0.55
8x8 6.5 31.2 0.21 3.6 1.79 8.3 0.79
12x12 15.9 33.5 0.47 7.9 2.02 13.0 1.21
16x16 22.3 29.0 0.77 12.6 1.81 18.2 1.22
24x24 33.6 74.5 0.45 24.6 1.38 34.3 0.98
32x32 60.6 214.2 0.32 35.9 1.69 44.0 1.03
48x48 98.5 419.6 0.25 52.1 1.88 62.3 1.58
64x64 207.7 731.2 0.24 61.8 3.49 70.6 2.94
96x96 339.4 1113.1 0.30 71.0 4.78 85.1 4.02
100x100 261.4 588.8 0.42 64.7 4.04 77.7 3.50
128x128 509.4 1325.5 0.38 77.3 6.66 88.8 5.62
192x192 628.6 1550.1 0.42 87.6 7.18 71.4 8.73
200x200 560.8 1087.8 0.54 85.7 6.52 93.3 6.01
256x256 855.0 1659.0 0.53 93.6 9.14 97.7 8.69
257x257 624.8 1098.3 0.59 91.7 6.80 91.8 6.81
384x384 1147.5 1773.6 0.66 101.4 11.32 95.5 11.97
500x500 1223.8 1553.2 0.80 106.2 11.52 104.1 11.75
512x512 1341.7 1789.5 0.76 100.3 13.37 99.2 13.49
768x768 1595.6 1889.3 0.85 112.9 14.13 108.4 14.71
1000x1000 1582.0 1750.4 0.92 114.4 13.83 109.8 13.96
1001x1001 1606.3 1706.9 0.94 114.3 14.05 107.0 14.31
1024x1024 1485.9 1798.7 0.82 110.3 13.68 105.8 14.05
1536x1536 1332.4 1858.9 0.72 117.4 11.31 111.6 11.94
2048x2048 1313.4 1498.4 0.88 115.4 11.38 109.6 11.99
3072x3072 1416.2 1449.9 0.98 114.3 12.38 110.9 12.77
4096x4096 1499.1 1478.5 1.01 114.5 12.89 111.7 13.43
4097x4097 1461.6 1402.9 1.04 115.9 12.61 111.0 13.17
64x4096 611.1 1345.1 0.46 59.8 10.22 50.6 12.07
256x4096 1334.6 1787.5 0.75 97.4 13.69 84.9 15.72
1024x4096 1245.0 1466.6 0.85 114.6 10.86 105.4 11.78
4096x8 102.2 52.2 1.96 19.9 5.10 57.7 1.78
4096x64 580.8 382.1 1.54 96.6 6.01 113.2 5.13
4096x256 1102.5 866.4 1.27 113.6 9.70 113.5 9.70
4096x1024 1416.6 1439.2 0.98 116.9 12.11 111.9 12.67
SYRK double
n×k Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.2 1.2 0.19 0.1 2.00 0.3 0.62
3x3 0.6 1.6 0.35 0.3 1.96 0.9 0.61
4x4 1.2 4.1 0.30 0.6 1.87 2.0 0.62
6x6 3.2 5.2 0.63 1.8 1.75 4.4 0.73
8x8 6.2 5.9 1.05 2.9 1.87 7.3 0.85
12x12 11.2 11.5 0.97 7.0 1.52 14.5 0.77
16x16 15.8 33.6 0.47 10.3 1.47 17.6 0.90
24x24 17.8 75.2 0.23 19.1 0.94 26.2 0.68
32x32 41.5 148.2 0.28 25.2 1.67 32.9 1.26
48x48 77.1 246.1 0.31 34.5 2.26 40.9 1.89
64x64 121.0 311.8 0.37 39.7 3.12 19.1 6.33
96x96 191.3 377.5 0.50 41.4 4.72 45.5 4.20
100x100 170.4 253.0 0.66 39.6 4.33 44.7 3.81
128x128 249.1 410.0 0.60 30.3 8.25 33.4 7.47
192x192 263.1 441.3 0.60 48.8 5.37 42.3 6.23
200x200 267.9 413.6 0.65 49.1 5.44 51.0 5.26
256x256 324.3 452.1 0.72 41.4 7.81 45.0 7.21
257x257 298.1 334.6 0.89 49.0 6.07 49.4 6.04
384x384 399.8 471.8 0.85 47.8 8.35 49.7 8.05
500x500 417.6 429.9 0.97 55.7 7.49 54.4 7.68
512x512 410.7 458.8 0.90 50.2 8.17 50.6 8.12
768x768 434.7 485.7 0.89 58.0 7.52 55.5 7.83
1000x1000 410.5 479.8 0.86 58.8 6.91 56.1 7.31
1001x1001 387.2 461.8 0.84 58.3 6.48 55.5 7.00
1024x1024 374.6 402.9 0.93 58.4 6.38 53.8 6.96
1536x1536 376.8 384.4 0.98 58.9 6.37 54.9 6.87
2048x2048 376.3 390.9 0.96 57.3 6.56 55.4 6.80
3072x3072 394.5 394.2 1.00 58.9 6.60 55.7 7.10
4096x4096 407.3 387.9 1.05 58.5 6.89 56.4 7.25
4097x4097 413.4 365.5 1.12 59.7 6.92 56.0 7.40
64x4096 243.7 407.0 0.60 33.8 7.19 27.1 8.99
256x4096 384.7 415.6 0.93 51.7 7.44 45.0 8.47
1024x4096 371.8 402.5 0.93 56.9 6.48 53.6 6.94
4096x8 69.7 19.3 3.65 13.5 4.78 24.0 2.91
4096x64 276.7 116.5 2.38 52.0 5.08 55.8 4.98
4096x256 346.5 299.8 1.15 58.9 5.89 56.7 6.29
4096x1024 406.3 392.9 1.03 58.9 6.90 56.3 7.29
POTRF float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.4 0.4 0.92 0.4 1.12 0.1 3.59
3 0.8 0.9 0.98 0.8 0.99 0.3 3.24
4 1.1 1.3 0.85 1.3 0.87 0.5 2.42
6 1.6 2.2 0.75 2.2 0.72 0.9 1.66
8 2.3 6.9 0.33 2.9 0.79 1.4 1.61
12 3.9 7.9 0.49 3.9 1.01 2.3 1.65
16 5.7 17.5 0.33 3.3 1.74 3.0 1.91
24 9.5 24.0 0.40 5.9 1.61 3.7 2.54
32 8.8 33.2 0.26 6.5 1.36 4.0 2.17
48 13.9 48.5 0.29 10.7 1.31 12.1 1.15
64 18.8 58.1 0.32 9.6 1.95 16.3 1.14
96 27.2 53.7 0.51 24.1 1.13 22.7 1.20
100 27.9 53.7 0.52 24.2 1.16 21.8 1.28
128 38.6 94.5 0.41 30.8 1.26 26.7 1.44
192 49.4 167.1 0.30 41.7 1.19 46.6 1.06
200 50.9 143.2 0.35 42.8 1.19 44.8 1.14
256 83.7 243.1 0.34 47.1 1.78 55.1 1.53
257 58.2 190.5 0.31 46.1 1.27 52.8 1.09
384 129.2 365.6 0.35 60.2 2.18 68.3 1.89
500 161.7 453.2 0.36 62.7 2.58 68.3 2.35
512 185.1 502.6 0.37 54.9 3.40 67.7 2.73
768 280.1 748.9 0.37 79.1 3.55 83.9 3.31
1000 357.8 830.1 0.43 98.0 3.66 88.9 4.00
1001 346.4 806.0 0.43 99.0 3.51 86.3 3.98
1024 285.9 859.5 0.33 83.8 3.43 88.8 3.22
1536 473.5 1107.3 0.43 108.3 4.38 97.0 4.85
2048 421.6 996.6 0.42 102.5 4.11 100.4 4.29
3072 586.1 1052.6 0.56 115.0 5.10 105.4 5.48
4096 554.4 465.5 1.19 83.4 6.65 105.8 5.23
4097 545.2 693.5 0.79 124.8 4.37 105.0 5.19
POTRF double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.5 0.4 1.13 0.4 1.27 0.1 3.94
3 0.9 1.1 0.83 0.8 1.18 0.3 3.21
4 1.1 1.8 0.62 1.2 0.90 0.5 2.46
6 1.5 2.1 0.74 2.1 0.74 0.9 1.79
8 2.4 4.6 0.51 2.7 0.86 1.3 1.87
12 4.1 8.1 0.51 4.0 1.04 2.1 1.98
16 5.9 9.5 0.62 3.0 1.96 2.8 2.11
24 9.2 16.5 0.56 5.2 1.76 4.0 2.34
32 7.4 20.8 0.36 5.8 1.28 4.2 1.75
48 10.8 11.7 0.92 9.1 1.18 10.6 1.02
64 13.7 20.7 0.66 12.6 1.09 14.1 0.97
96 18.4 38.0 0.48 16.8 1.10 18.4 0.99
100 18.3 32.9 0.56 16.5 1.10 18.6 0.99
128 24.3 55.4 0.44 21.2 1.15 21.6 1.11
192 29.1 86.4 0.34 27.0 1.08 32.0 0.91
200 29.6 87.0 0.34 27.9 1.06 31.3 0.95
256 51.4 112.3 0.46 34.8 1.45 29.5 1.74
257 38.2 94.1 0.41 33.8 1.13 34.7 1.10
384 84.1 176.1 0.48 50.2 1.66 38.0 2.21
500 103.4 197.6 0.53 58.6 1.76 42.0 2.46
512 103.7 215.3 0.48 56.9 1.82 39.8 2.60
768 157.0 279.1 0.56 77.8 2.01 45.8 3.43
1000 191.2 313.4 0.61 89.3 2.14 49.2 3.89
1001 186.2 285.5 0.65 89.2 2.09 48.5 3.83
1024 153.6 299.3 0.51 84.8 1.83 46.7 3.29
1536 218.2 305.6 0.72 86.2 2.53 50.6 4.31
2048 181.3 165.5 1.09 65.5 2.77 51.4 3.51
3072 240.6 188.2 1.28 54.9 4.54 53.1 4.44
4096 242.3 179.3 1.35 112.3 2.18 54.1 4.48
4097 243.6 232.3 1.05 117.2 2.14 53.8 4.53
GETRF float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.2 0.1 2.56 0.3 0.70 0.3 0.73
3 0.4 0.2 2.90 0.4 0.85 0.4 1.05
4 0.7 0.3 2.25 0.9 0.85 0.6 1.22
6 1.2 0.7 1.81 1.6 0.74 0.7 1.74
8 2.1 1.2 1.77 2.6 0.80 0.9 2.39
12 3.9 2.6 1.55 5.1 0.75 1.2 3.25
16 5.7 4.2 1.39 7.1 0.79 1.5 3.80
24 8.4 7.6 1.08 10.8 0.78 3.4 2.47
32 11.8 10.6 1.11 13.8 0.85 4.2 2.83
48 18.7 12.7 1.49 18.6 1.01 8.4 2.20
64 24.9 19.6 1.27 23.2 1.08 9.5 2.62
96 36.1 32.2 1.12 34.2 1.05 18.9 1.93
100 37.3 29.8 1.25 25.5 1.46 19.2 1.95
128 42.5 44.5 0.96 39.4 1.08 23.2 1.82
192 62.7 57.9 1.09 46.4 1.35 35.0 1.77
200 63.0 59.9 1.05 47.1 1.34 35.5 1.76
256 91.3 84.6 1.10 42.3 2.16 43.1 2.11
257 84.9 78.2 1.10 53.5 1.59 41.5 2.01
384 126.2 145.9 0.86 67.8 1.86 54.6 2.32
500 155.1 171.3 0.90 95.5 1.63 63.0 2.46
512 155.6 175.3 0.89 45.3 3.43 64.9 2.39
768 227.0 314.6 0.72 86.5 2.62 76.0 2.99
1000 281.7 370.3 0.76 148.2 1.91 81.9 3.44
1001 271.4 345.6 0.79 147.6 1.84 80.4 3.36
1024 267.2 216.5 1.23 68.7 3.90 83.8 3.19
1536 415.9 398.2 1.04 109.9 3.79 92.3 4.50
2048 448.1 204.5 2.19 109.5 4.08 96.2 4.66
3072 510.4 469.1 1.08 184.0 2.77 100.8 5.08
4096 503.4 259.0 1.94 162.1 3.13 103.3 4.86
4097 508.7 295.5 1.72 199.4 2.55 102.5 4.96
GETRF double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.2 0.1 2.97 0.3 0.71 0.2 1.42
3 0.5 0.2 2.88 0.6 0.88 0.4 1.50
4 0.7 0.3 2.35 0.8 0.87 0.5 1.43
6 1.2 0.7 1.74 1.6 0.76 0.6 2.02
8 1.9 1.2 1.61 2.5 0.78 0.7 2.64
12 3.8 2.5 1.53 4.7 0.81 1.0 3.84
16 5.3 3.9 1.40 6.6 0.81 1.2 4.28
24 6.8 6.6 1.03 9.4 0.72 2.9 2.36
32 9.0 6.6 1.36 10.2 0.90 3.7 2.41
48 13.4 11.0 1.21 14.5 0.93 7.9 1.71
64 17.2 15.4 1.12 16.8 1.02 10.0 1.73
96 19.0 24.4 0.78 21.6 0.88 16.9 1.13
100 19.4 22.6 0.86 20.8 0.93 17.1 1.15
128 25.9 33.7 0.77 22.6 1.15 17.9 1.45
192 37.7 52.3 0.72 34.0 1.10 28.6 1.31
200 38.3 53.4 0.71 29.0 1.33 28.6 1.34
256 55.2 65.6 0.84 22.4 2.47 30.5 1.82
257 52.7 51.4 1.02 31.5 1.67 31.2 1.69
384 79.0 85.6 0.92 43.1 1.84 37.8 2.09
500 95.4 93.8 1.01 57.7 1.65 41.4 2.31
512 93.7 70.8 1.31 29.8 3.17 41.1 2.28
768 127.9 143.5 0.88 47.6 2.69 46.2 2.77
1000 146.1 198.4 0.74 94.8 1.54 48.1 3.04
1001 139.8 153.8 0.91 95.1 1.47 47.5 2.95
1024 142.8 85.0 1.67 45.8 3.12 48.2 2.97
1536 190.2 159.2 1.19 53.8 3.54 50.7 3.76
2048 175.4 101.5 1.72 59.1 2.97 51.3 3.44
3072 208.4 159.0 1.30 100.8 2.07 52.7 3.95
4096 224.4 155.4 1.44 105.4 2.13 53.7 4.19
4097 218.7 168.4 1.30 121.0 1.81 53.4 4.09
GEQRF float
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.2 0.1 2.09 0.3 0.61 0.2 1.33
3x3 0.4 0.2 1.75 0.6 0.65 0.3 1.25
4x4 0.6 0.4 1.58 0.9 0.70 0.5 1.30
6x6 1.2 0.8 1.46 1.7 0.73 0.9 1.41
8x8 1.9 1.5 1.33 2.6 0.76 1.3 1.50
12x12 4.0 3.0 1.34 4.4 0.91 2.5 1.49
16x16 6.1 4.8 1.27 6.0 1.02 3.8 1.53
24x24 10.2 8.8 1.16 8.4 1.23 6.6 1.48
32x32 13.9 12.9 1.08 9.8 1.43 9.0 1.46
48x48 19.5 22.7 0.86 10.4 1.90 13.2 1.42
64x64 12.2 28.0 0.43 13.7 0.90 12.1 1.00
96x96 26.0 33.3 0.78 20.3 1.30 20.0 1.30
100x100 20.8 30.1 0.69 18.6 1.13 20.4 1.02
128x128 34.4 45.3 0.77 25.3 1.36 23.5 1.45
192x192 61.5 72.0 0.85 34.0 1.82 35.9 1.71
200x200 60.1 73.0 0.82 34.4 1.76 42.8 1.39
256x256 84.7 86.4 0.98 37.2 2.28 45.4 1.84
257x257 75.5 97.0 0.78 39.5 1.92 51.7 1.46
384x384 135.7 143.1 0.95 44.8 3.04 61.0 2.22
500x500 176.6 190.3 0.93 47.8 3.70 71.9 2.46
512x512 183.0 158.3 1.15 44.5 4.12 63.1 2.90
768x768 273.0 253.6 1.08 60.0 4.55 74.3 3.67
1000x1000 335.8 372.8 0.90 75.3 4.46 87.2 3.85
1001x1001 322.6 354.1 0.91 75.2 4.28 85.7 3.77
1024x1024 310.3 237.9 1.31 69.4 4.47 76.3 4.06
1536x1536 427.4 388.7 1.10 88.1 4.86 86.5 4.93
2048x2048 444.1 337.2 1.32 95.1 4.68 84.3 5.27
3072x3072 477.6 380.3 1.26 106.5 4.47 90.4 5.29
4096x4096 473.1 385.9 1.23 104.4 4.53 83.2 5.69
4097x4097 443.2 442.9 1.00 105.9 4.16 84.2 5.26
4096x8 21.4 9.8 2.18 9.9 2.20 10.0 2.13
4096x64 29.6 63.9 0.46 15.4 1.92 21.3 1.39
4096x256 93.0 120.3 0.77 34.7 2.68 43.9 2.12
4096x1024 264.9 292.2 0.91 72.5 3.64 77.6 3.41
10000x8 21.5 12.7 1.70 9.9 2.17 9.8 2.19
10000x100 46.3 57.4 0.81 21.1 2.19 22.9 2.02
10000x1000 282.2 298.9 0.94 75.0 3.75 83.1 3.40
10000x4000 514.2 406.8 1.27 109.0 4.70 87.8 5.86
100000x8 20.2 17.6 1.15 9.7 2.08 9.2 2.19
100000x64 28.8 47.4 0.61 15.5 1.86 19.0 1.51
100000x256 87.6 119.8 0.73 35.1 2.50 41.4 2.11
GEQRF double
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 0.2 0.1 2.38 0.3 0.68 0.2 1.32
3x3 0.4 0.2 1.96 0.5 0.79 0.3 1.40
4x4 0.7 0.4 1.80 0.8 0.84 0.4 1.46
6x6 1.3 0.8 1.64 1.4 0.88 0.8 1.59
8x8 2.0 1.3 1.52 2.2 0.91 1.2 1.65
12x12 3.9 2.7 1.44 3.8 1.03 2.2 1.78
16x16 5.8 4.3 1.36 5.1 1.14 3.1 1.85
24x24 8.7 7.4 1.17 6.6 1.32 4.6 1.90
32x32 10.4 10.3 1.02 7.5 1.40 5.8 1.79
48x48 13.2 5.9 2.23 8.2 1.61 9.0 1.47
64x64 9.3 9.8 0.95 12.8 0.71 9.6 0.96
96x96 18.6 14.7 1.26 17.5 1.07 12.7 1.47
100x100 16.4 13.9 1.18 17.4 0.94 13.0 1.26
128x128 24.3 20.5 1.18 20.5 1.20 13.6 1.78
192x192 37.9 35.9 1.05 25.7 1.50 21.5 1.76
200x200 38.3 37.4 1.02 26.8 1.44 25.5 1.49
256x256 50.1 45.2 1.11 31.9 1.59 24.9 2.00
257x257 47.7 48.4 0.99 30.7 1.59 29.8 1.59
384x384 76.0 77.7 0.98 43.8 1.75 33.1 2.30
500x500 92.4 103.6 0.89 57.2 1.63 39.4 2.33
512x512 89.2 82.1 1.09 50.3 1.79 35.0 2.55
768x768 124.5 131.3 0.95 64.0 1.96 41.0 3.03
1000x1000 143.6 187.5 0.77 82.3 1.74 45.6 3.15
1001x1001 140.0 149.6 0.94 82.2 1.71 45.0 3.10
1024x1024 142.5 124.9 1.14 69.7 2.04 40.9 3.48
1536x1536 177.4 145.2 1.22 52.3 3.40 45.8 3.87
2048x2048 177.9 130.3 1.37 45.2 3.93 43.6 4.08
3072x3072 212.2 124.7 1.70 46.0 4.62 44.4 4.77
4096x4096 221.6 177.5 1.25 62.8 3.51 45.0 4.93
4097x4097 208.2 193.3 1.08 64.6 3.22 43.6 4.77
4096x8 10.8 6.9 1.57 7.1 1.52 7.2 1.50
4096x64 15.5 35.1 0.44 14.3 1.09 12.2 1.27
4096x256 48.1 83.6 0.58 23.3 2.06 24.7 1.95
4096x1024 126.1 114.5 1.10 35.9 3.51 41.8 3.02
10000x8 10.2 8.0 1.28 7.0 1.46 6.9 1.47
10000x100 22.9 45.3 0.50 17.9 1.28 12.2 1.88
10000x1000 136.8 116.9 1.17 38.7 3.54 41.5 3.29
10000x4000 244.8 190.2 1.29 112.5 2.18 43.9 5.58
100000x8 10.2 11.0 0.93 6.8 1.50 6.6 1.55
100000x64 14.1 27.4 0.51 14.0 1.01 10.5 1.34
100000x256 43.5 59.6 0.73 28.1 1.55 22.1 1.96
SYEV float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.8 0.2 3.50 0.6 1.31 0.7 1.18
3 0.8 0.4 1.71 0.5 1.50 0.6 1.23
4 1.0 0.7 1.39 0.7 1.44 0.9 1.15
6 1.6 1.2 1.35 1.1 1.40 1.5 1.11
8 2.1 1.9 1.11 1.6 1.32 2.1 1.06
12 3.5 2.9 1.22 2.4 1.46 3.1 1.11
16 4.9 4.0 1.21 3.2 1.55 4.4 1.14
24 7.5 6.0 1.25 5.0 1.53 6.5 1.15
32 10.2 7.4 1.39 6.3 1.63 8.3 1.23
48 15.4 9.6 1.61 8.6 1.78 10.2 1.51
64 20.0 12.0 1.70 10.3 1.95 11.3 1.77
96 27.4 12.7 2.16 10.3 2.69 15.0 1.83
100 27.8 14.2 1.98 10.6 2.61 14.7 1.89
128 33.3 12.4 2.63 11.7 2.84 16.5 2.02
192 41.6 14.1 2.96 13.9 2.98 19.2 2.18
200 42.8 14.4 2.99 14.5 2.95 19.9 2.15
256 44.4 15.3 2.91 15.0 2.95 19.6 2.28
257 43.5 15.6 2.79 15.5 2.80 20.5 2.13
384 50.2 18.2 2.75 15.9 3.16 21.9 2.30
500 52.2 19.0 2.75 15.6 3.34 23.0 2.28
512 51.3 18.8 2.72 15.5 3.32 24.2 2.12
768 56.7 18.8 3.02 16.6 3.42 25.9 2.19
1000 61.1 19.3 3.17 17.8 3.44 26.3 2.32
1001 53.5 19.4 2.76 18.8 2.84 27.5 1.95
1024 59.4 19.2 3.10 18.3 3.25 25.7 2.31
1536 62.4 22.7 2.75 16.3 3.84 27.8 2.24
2048 63.1 20.0 3.16 15.3 4.13 26.3 2.40
SYEV double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 0.9 0.2 3.88 0.6 1.39 0.7 1.24
3 0.7 0.4 1.53 0.5 1.59 0.6 1.31
4 0.8 0.6 1.38 0.6 1.35 0.8 1.06
6 1.3 1.1 1.21 1.0 1.31 1.2 1.09
8 1.8 1.5 1.19 1.4 1.25 1.7 1.10
12 2.8 2.5 1.11 2.2 1.25 2.5 1.17
16 3.9 3.5 1.11 2.9 1.33 3.3 1.17
24 5.8 5.2 1.13 4.7 1.25 4.9 1.18
32 7.7 6.4 1.11 5.8 1.34 5.7 1.34
48 11.1 6.3 1.75 8.3 1.34 7.9 1.41
64 13.5 7.7 1.74 9.5 1.42 9.4 1.42
96 16.6 10.2 1.63 11.8 1.41 11.0 1.49
100 17.1 10.4 1.65 11.9 1.44 12.1 1.42
128 19.2 11.7 1.63 12.7 1.52 12.5 1.54
192 21.5 14.1 1.52 12.3 1.74 14.6 1.48
200 21.9 14.7 1.49 14.0 1.57 13.4 1.65
256 21.8 15.7 1.39 14.4 1.51 15.9 1.37
257 21.3 15.9 1.34 12.7 1.68 16.0 1.34
384 24.2 15.2 1.60 15.5 1.57 16.5 1.47
500 26.1 17.1 1.53 15.4 1.70 19.1 1.36
512 25.5 18.5 1.38 16.0 1.60 17.5 1.46
768 27.0 18.3 1.47 16.1 1.68 19.7 1.37
1000 28.7 21.3 1.35 16.8 1.70 20.7 1.38
1001 24.1 19.0 1.27 16.0 1.51 20.7 1.16
1024 27.8 20.5 1.36 15.6 1.78 20.3 1.37
1536 28.8 21.0 1.37 17.3 1.67 20.7 1.39
2048 26.8 19.8 1.35 14.7 1.83 19.5 1.38
GESDD float
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 2.4 0.1 19.71 0.4 6.06 0.4 6.63
3x3 1.5 0.3 4.74 0.7 2.23 0.7 2.19
4x4 2.1 0.6 3.26 1.0 2.09 1.1 1.96
6x6 2.2 1.3 1.71 1.7 1.27 1.9 1.18
8x8 2.5 2.2 1.14 2.3 1.09 2.6 0.95
12x12 2.8 4.0 0.74 2.8 1.00 4.3 0.66
16x16 5.4 5.8 0.93 3.5 1.50 5.6 0.97
24x24 6.8 8.7 0.79 4.6 1.36 7.8 0.87
32x32 9.8 12.6 0.78 6.3 1.54 12.3 0.81
48x48 15.7 19.5 0.81 8.8 1.79 18.5 0.85
64x64 22.0 30.3 0.73 11.7 1.86 26.6 0.83
96x96 39.1 36.6 1.07 12.0 3.28 36.0 1.09
100x100 38.8 37.1 1.05 11.7 3.30 36.6 1.05
128x128 52.8 48.1 1.10 16.7 3.16 46.0 1.14
192x192 88.8 88.1 1.01 23.4 3.78 49.5 1.80
200x200 89.9 93.0 0.96 24.0 3.75 50.3 1.81
256x256 103.2 104.7 0.99 26.1 3.96 49.0 2.10
257x257 109.0 122.2 0.89 26.8 4.05 57.0 1.91
384x384 156.9 172.8 0.91 28.5 5.51 63.5 2.47
500x500 200.7 246.3 0.81 31.0 6.43 77.2 2.60
512x512 180.1 190.4 0.95 30.3 5.93 64.7 2.78
768x768 242.7 297.9 0.81 29.8 8.08 77.8 3.12
1000x1000 303.3 460.9 0.66 31.6 9.57 96.3 3.15
1001x1001 300.3 442.0 0.68 31.5 9.45 95.7 3.15
1024x1024 260.2 311.1 0.84 31.6 8.21 81.5 3.19
1536x1536 331.0 500.7 0.66 19.3 17.14 95.3 3.49
2048x2048 313.9 411.3 0.76 14.2 22.05 94.1 3.35
4096x64 125.9 147.3 0.85 26.4 4.78 62.8 2.01
4096x256 307.1 284.3 1.08 28.4 10.79 105.3 2.92
4096x1024 453.0 464.3 0.98 25.5 17.73 118.9 3.81
10000x8 33.6 31.5 1.06 15.6 2.16 29.7 1.15
10000x100 201.5 262.0 0.77 38.4 5.22 70.1 2.87
10000x1000 674.3 717.9 0.94 29.2 23.06 169.0 3.99
GESDD double
m×n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2 2.3 0.1 19.61 0.4 5.92 0.4 6.43
3x3 1.2 0.3 4.08 0.6 2.06 0.6 1.97
4x4 1.7 0.5 2.82 0.9 1.90 0.9 1.78
6x6 1.8 1.2 1.52 1.5 1.19 1.6 1.08
8x8 1.9 1.8 1.02 2.1 0.91 2.2 0.87
12x12 2.1 3.2 0.66 3.1 0.69 3.3 0.64
16x16 3.1 4.8 0.68 4.1 0.75 4.3 0.73
24x24 4.8 7.5 0.65 5.4 0.90 6.0 0.80
32x32 6.7 10.8 0.63 10.3 0.65 9.7 0.71
48x48 10.7 13.4 0.81 13.8 0.77 14.4 0.73
64x64 14.7 18.8 0.77 22.0 0.67 20.6 0.72
96x96 24.5 27.9 0.89 28.0 0.88 28.0 0.87
100x100 25.9 30.5 0.85 29.6 0.88 28.9 0.88
128x128 33.4 38.0 0.88 37.1 0.90 35.4 0.94
192x192 50.8 68.7 0.74 40.5 1.26 38.4 1.32
200x200 53.4 72.9 0.73 42.3 1.26 38.3 1.40
256x256 61.5 77.3 0.80 43.3 1.42 39.1 1.56
257x257 65.5 87.9 0.75 45.0 1.46 43.9 1.49
384x384 90.3 127.1 0.71 48.7 1.85 51.2 1.76
500x500 113.5 176.6 0.64 54.8 2.07 59.8 1.89
512x512 103.9 133.9 0.77 49.9 2.08 51.2 2.03
768x768 135.3 212.5 0.64 55.0 2.45 63.9 2.12
1000x1000 163.8 320.7 0.51 61.5 2.66 74.5 2.20
1001x1001 161.8 279.4 0.58 60.6 2.67 75.6 2.14
1024x1024 140.3 218.5 0.64 55.2 2.54 63.7 2.20
1536x1536 168.7 245.1 0.69 56.3 3.00 75.6 2.24
2048x2048 120.4 145.7 0.83 39.7 3.06 69.3 1.73
4096x64 69.5 98.8 0.70 32.2 2.15 36.6 1.90
4096x256 163.3 182.7 0.89 39.5 4.14 62.3 2.62
4096x1024 227.8 249.2 0.91 44.0 5.18 75.2 3.03
10000x8 13.7 23.5 0.60 17.5 0.78 20.7 0.65
10000x100 99.7 156.7 0.64 45.3 2.20 37.7 2.65
10000x1000 345.6 329.6 1.05 59.1 5.85 93.1 3.71
GEEV float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 2.3 0.1 16.56 0.4 6.52 0.4 5.71
3 1.5 0.3 4.79 0.6 2.61 0.6 2.39
4 2.0 0.5 4.16 0.8 2.44 0.9 2.20
6 2.8 0.9 3.20 1.4 2.03 1.6 1.62
8 3.9 1.4 2.75 2.0 1.92 2.2 1.87
12 5.5 2.1 2.61 3.0 1.86 3.5 1.60
16 7.2 2.6 2.72 3.8 1.96 4.5 1.60
24 9.6 4.3 2.21 5.6 1.72 6.9 1.28
32 10.7 5.7 1.90 7.1 1.52 8.7 1.22
48 13.0 8.1 1.58 9.3 1.40 11.7 1.12
64 13.5 9.9 1.36 11.6 1.17 13.9 1.01
96 16.5 11.7 1.38 10.7 1.54 16.4 1.00
100 16.8 12.0 1.42 11.0 1.48 16.8 1.00
128 16.6 14.6 1.13 14.2 1.16 19.9 0.84
192 17.6 27.1 0.65 21.8 0.79 32.2 0.55
200 18.4 28.8 0.64 23.4 0.77 35.1 0.53
256 18.2 37.1 0.49 27.1 0.67 41.9 0.43
257 18.5 37.5 0.49 27.2 0.69 42.9 0.43
384 16.5 58.8 0.28 34.5 0.48 58.7 0.28
500 21.2 77.2 0.28 42.5 0.49 71.1 0.30
512 20.0 45.5 0.44 30.8 0.64 49.4 0.41
768 21.5 92.0 0.23 46.3 0.46 82.6 0.26
1000 23.7 123.8 0.19 55.7 0.43 108.2 0.22
1001 22.9 121.7 0.19 55.7 0.41 106.6 0.22
1024 19.9 73.0 0.27 42.2 0.47 76.9 0.26
GEEV double
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 2.3 0.1 19.83 0.4 6.50 0.4 5.59
3 1.2 0.2 4.45 0.5 2.38 0.6 2.12
4 1.9 0.4 3.60 0.8 2.50 0.8 2.27
6 2.3 0.8 2.94 1.3 1.89 1.3 1.68
8 2.9 1.2 2.58 2.0 1.43 2.0 1.50
12 4.0 1.9 2.07 3.2 1.27 2.8 1.41
16 4.7 2.3 2.05 4.6 1.09 3.7 1.26
24 5.9 3.6 1.63 6.9 0.87 5.3 1.11
32 6.5 4.7 1.37 8.7 0.75 6.8 0.95
48 7.7 5.9 1.29 12.0 0.63 8.8 0.87
64 7.9 7.2 1.14 14.3 0.56 10.3 0.77
96 8.7 8.2 1.08 12.7 0.68 11.0 0.79
100 9.1 8.5 1.04 13.9 0.66 11.6 0.78
128 8.5 10.2 0.84 15.1 0.56 13.0 0.66
192 9.0 19.1 0.47 19.8 0.45 18.3 0.49
200 9.4 20.9 0.45 22.0 0.43 19.4 0.49
256 9.1 25.2 0.35 26.8 0.34 22.2 0.41
257 9.3 26.3 0.36 27.3 0.34 22.5 0.41
384 9.6 38.4 0.25 40.0 0.24 30.5 0.31
500 10.1 47.8 0.21 50.9 0.20 36.6 0.28
512 9.4 20.7 0.46 22.6 0.42 21.7 0.43
768 9.9 46.9 0.21 46.9 0.21 36.9 0.26
1000 10.0 76.4 0.13 67.1 0.15 51.3 0.19
1001 10.1 75.7 0.13 67.3 0.15 51.2 0.20
1024 7.5 40.5 0.18 38.6 0.19 35.7 0.21