Eigen vs. BLAS/LAPACK libraries, Apple M4 with SME (September 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 matrix-product kernel, 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 kernel for matrix products, against the three BLAS/LAPACK libraries available on macOS: Apple Accelerate, Arm Performance Libraries and OpenBLAS.

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 (build 26A428), Darwin 27.0.0
Compiler Apple clang 21.0.0 (clang-2100.3.34.2), -O3 -DNDEBUG -mcpu=apple-m4, C++17
Eigen master 46a2d0c56 (5.0.1-dev), default configuration, no external BLAS; built from harness commit 95242662b, whose Eigen/ tree is that master’s. -mcpu=apple-m4 defines __ARM_FEATURE_SME2, which selects Eigen’s SME kernel for GEMM; every other kernel is the NEON code
Apple Accelerate the framework shipped with macOS 27.0 (build 26A428), 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 2026-09-19 (36 runs, about 5.3 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 382 GFLOP/s in double and 1513 in float in Eigen, against 362 and 1665 for Accelerate, 364 and 712 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 87 % of the cells and above 10 % for 3 %; the widest are at the small end, such as SYRK in double at n = 24 (10.8 to 17.6 GFLOP/s across the three binaries), and in DOT, which at n = 2048 in double ran at 19.3 GFLOP/s in two binaries and 14.3 in the third.

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) 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; 5 of 41 runs were 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.

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 library call goes through the shared library’s symbol stub, the Fortran interface’s argument checks and a runtime kernel dispatch 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.49 ns per call for Eigen against 2.7 ns for Accelerate, 5.0 ns for Arm Performance Libraries and 12.5 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. This is the one operation Eigen runs on SME here.

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.8 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.4 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.56 1.24 0.60 0.29 0.36
AXPY float Arm Performance Libraries 7.10 1.84 0.89 0.76 0.97
AXPY float OpenBLAS 4.24 1.81 1.12 1.16 1.15
AXPY double Apple Accelerate 3.67 1.02 0.40 0.27 0.45
AXPY double Arm Performance Libraries 5.21 1.40 0.81 0.81 0.97
AXPY double OpenBLAS 4.18 1.37 0.75 0.96 1.04
DOT float Apple Accelerate 4.62 2.28 1.20 0.45 0.27
DOT float Arm Performance Libraries 5.81 2.40 1.55 1.91 1.55
DOT float OpenBLAS 17.57 7.62 1.67 1.31 1.10
DOT double Apple Accelerate 4.52 1.69 1.03 0.29 0.35
DOT double Arm Performance Libraries 6.21 1.81 1.67 1.26 1.06
DOT double OpenBLAS 17.48 3.52 1.35 1.28 1.07
GEMV float Apple Accelerate 1.94 0.61 0.16 0.44
GEMV float Arm Performance Libraries 3.78 13.51 8.07 19.48
GEMV float OpenBLAS 2.74 1.21 1.07 0.94
GEMV double Apple Accelerate 2.51 0.43 0.13 0.81
GEMV double Arm Performance Libraries 2.97 1.60 1.07 0.90
GEMV double OpenBLAS 4.09 2.37 1.75 1.10
GEMM float Apple Accelerate 1.28 0.56 0.82 1.00
GEMM float Arm Performance Libraries 1.36 3.66 3.34 1.55
GEMM float OpenBLAS 1.38 3.70 12.26 12.91
GEMM double Apple Accelerate 0.91 0.72 0.92 1.08
GEMM double Arm Performance Libraries 1.71 2.43 1.34 1.15
GEMM double OpenBLAS 1.06 4.30 7.31 7.15
TRSM float Apple Accelerate 0.72 0.65 0.48 0.40
TRSM float Arm Performance Libraries 2.36 1.85 3.07 3.54
TRSM float OpenBLAS 3.10 3.45 4.11 3.59
TRSM double Apple Accelerate 0.74 0.75 0.44 0.55
TRSM double Arm Performance Libraries 1.96 1.25 2.00 3.00
TRSM double OpenBLAS 2.26 1.77 2.11 2.89
SYRK float Apple Accelerate 0.06 0.13 0.66 0.83
SYRK float Arm Performance Libraries 0.44 1.12 10.38 11.10
SYRK float OpenBLAS 0.17 0.92 10.82 11.51
SYRK double Apple Accelerate 0.13 0.19 0.78 0.95
SYRK double Arm Performance Libraries 0.48 1.23 6.55 6.23
SYRK double OpenBLAS 0.20 1.35 6.67 6.56
POTRF float Apple Accelerate 0.59 0.16 0.31 0.56
POTRF float Arm Performance Libraries 0.94 0.59 2.02 4.30
POTRF float OpenBLAS 2.14 0.64 1.88 4.46
POTRF double Apple Accelerate 0.65 0.22 0.40 0.99
POTRF double Arm Performance Libraries 1.02 0.50 1.33 2.44
POTRF double OpenBLAS 2.25 0.51 1.77 3.88
GETRF float Apple Accelerate 1.86 0.84 0.80 1.33
GETRF float Arm Performance Libraries 0.78 0.74 1.75 2.80
GETRF float OpenBLAS 1.79 1.62 2.13 4.18
GETRF double Apple Accelerate 2.07 0.75 0.78 1.14
GETRF double Arm Performance Libraries 0.81 0.70 1.56 1.98
GETRF double OpenBLAS 2.20 1.22 1.77 3.15
GEQRF float Apple Accelerate 1.54 0.77 0.91 0.84
GEQRF float Arm Performance Libraries 0.80 1.30 2.97 3.25
GEQRF float OpenBLAS 1.51 1.25 2.35 3.78
GEQRF double Apple Accelerate 1.74 1.18 0.93 0.88
GEQRF double Arm Performance Libraries 0.90 1.11 1.59 2.52
GEQRF double OpenBLAS 1.59 1.41 2.22 3.03
SYEV float Apple Accelerate 1.67 1.71 2.66 2.94
SYEV float Arm Performance Libraries 1.55 2.02 3.02 4.02
SYEV float OpenBLAS 1.26 1.55 2.11 2.34
SYEV double Apple Accelerate 1.73 1.72 1.45 1.40
SYEV double Arm Performance Libraries 1.59 1.54 1.68 1.78
SYEV double OpenBLAS 1.36 1.62 1.47 1.39
GESDD float Apple Accelerate 2.31 0.87 0.83 0.70
GESDD float Arm Performance Libraries 1.81 2.16 5.70 18.59
GESDD float OpenBLAS 1.50 0.93 2.42 3.28
GESDD double Apple Accelerate 1.97 0.74 0.65 0.69
GESDD double Arm Performance Libraries 1.43 0.78 1.82 2.77
GESDD double OpenBLAS 1.39 0.78 1.73 1.80
GEEV float Apple Accelerate 4.30 1.62 0.38
GEEV float Arm Performance Libraries 2.58 1.53 0.62
GEEV float OpenBLAS 2.27 1.12 0.37
GEEV double Apple Accelerate 3.85 1.24 0.29
GEEV double Arm Performance Libraries 2.08 0.71 0.28
GEEV double OpenBLAS 2.03 0.88 0.34

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 has an SME kernel for GEMM only. TRSM, SYRK and the blocked factorizations reach it through their matrix-product updates; the vector and matrix-vector kernels are NEON.
  • 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 5.3 1.0 5.42 0.6 8.60 1.3 4.01
3 5.4 1.4 3.92 0.9 5.81 1.8 2.96
4 12.1 2.0 6.19 1.2 9.74 1.9 6.48
6 11.0 2.7 4.01 1.8 6.13 2.3 4.57
8 21.5 3.7 5.78 2.6 8.35 4.7 4.53
12 24.2 5.7 4.24 3.5 7.01 4.9 4.94
16 25.8 8.1 3.20 5.0 5.20 8.2 3.15
24 27.7 11.3 2.45 7.2 3.86 10.7 2.58
32 18.4 14.2 1.30 9.2 1.98 13.0 1.43
48 19.9 18.4 1.09 12.3 1.61 12.9 1.52
64 22.6 21.5 1.13 14.3 1.58 9.0 2.47
96 26.9 25.6 1.05 17.4 1.57 15.7 1.70
100 27.0 25.8 1.04 16.5 1.64 15.6 1.75
128 28.0 27.1 1.04 19.9 1.41 18.0 1.56
192 29.3 29.5 0.99 24.0 1.22 21.1 1.38
256 30.0 32.9 0.91 26.9 1.12 23.0 1.30
384 26.6 36.0 0.74 30.8 0.86 25.2 1.22
512 27.7 41.3 0.67 33.4 0.83 26.5 1.04
768 28.1 61.2 0.46 36.4 0.77 28.0 1.00
1000 28.8 62.3 0.46 35.4 0.81 28.1 1.02
1001 28.7 62.3 0.46 35.2 0.81 28.4 1.02
1024 28.9 71.8 0.40 35.4 0.82 28.2 1.02
1536 29.9 106.5 0.28 37.8 0.79 29.3 1.02
2048 30.5 107.0 0.29 39.6 0.77 29.8 1.02
3072 31.1 107.2 0.29 40.3 0.77 30.3 1.03
4096 31.4 107.2 0.29 41.0 0.77 16.2 1.93
6144 31.7 107.3 0.30 41.6 0.76 30.8 1.03
8192 31.8 107.3 0.30 42.7 0.75 21.4 1.49
10000 31.9 107.2 0.30 42.2 0.76 31.1 1.03
12288 32.0 107.4 0.30 42.4 0.75 30.9 1.04
16384 32.0 107.4 0.30 44.5 0.72 29.2 1.09
32768 23.6 107.5 0.22 24.5 0.96 19.5 1.21
65536 23.8 107.5 0.22 24.6 0.97 19.6 1.21
100000 23.8 107.5 0.22 24.6 0.97 19.8 1.20
131072 23.8 107.5 0.22 24.7 0.97 19.7 1.21
262144 23.8 107.5 0.22 24.7 0.96 19.7 1.21
524288 23.7 107.4 0.22 24.7 0.96 19.9 1.19
1000000 20.8 107.4 0.19 21.8 0.96 16.9 1.23
1048576 23.4 107.5 0.22 24.3 0.96 19.1 1.22
2097152 23.4 33.7 0.70 24.3 0.96 19.9 1.18
4194304 18.5 18.2 1.02 18.4 1.00 18.4 1.01
8388608 18.3 16.6 1.10 18.4 1.00 18.1 1.01
16777216 16.6 15.9 1.05 16.6 1.00 16.8 0.98
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 6.0 1.0 6.14 0.7 9.08 1.3 4.53
3 7.1 1.5 4.78 1.0 7.06 1.9 3.85
4 10.8 1.9 5.80 1.4 7.67 1.9 5.73
6 12.1 2.8 4.27 1.9 6.49 2.2 5.53
8 12.9 3.7 3.52 2.7 4.82 2.9 4.47
12 13.8 5.3 2.60 3.9 3.59 3.2 4.37
16 9.2 6.8 1.34 4.9 1.89 4.5 2.06
24 9.7 8.9 1.09 6.3 1.55 4.5 2.15
32 11.1 10.4 1.07 7.1 1.54 9.0 1.36
48 13.4 12.5 1.07 8.7 1.53 8.8 1.55
64 14.0 13.5 1.04 9.9 1.42 8.7 1.62
96 14.6 14.7 1.00 11.7 1.24 13.2 1.11
100 14.7 15.0 0.98 10.0 1.47 13.1 1.13
128 15.0 16.3 0.92 13.1 1.15 14.7 1.02
192 15.4 17.8 0.86 15.0 1.02 16.6 0.93
256 13.8 20.6 0.67 16.4 0.85 17.7 0.78
384 14.0 30.7 0.46 17.9 0.78 19.1 0.73
512 14.4 38.3 0.38 17.9 0.80 20.0 0.72
768 15.0 53.3 0.28 19.6 0.76 21.0 0.71
1000 15.2 52.6 0.29 20.1 0.76 21.4 0.71
1001 15.3 52.6 0.29 19.9 0.77 21.7 0.70
1024 15.2 53.5 0.29 20.1 0.76 21.5 0.71
1536 15.5 53.6 0.29 21.1 0.74 22.1 0.70
2048 15.7 53.6 0.29 21.6 0.73 22.3 0.70
3072 15.8 53.6 0.30 22.1 0.72 18.6 0.85
4096 15.9 53.6 0.30 22.2 0.72 10.1 1.57
6144 16.0 53.7 0.30 22.5 0.71 18.8 0.85
8192 16.0 53.7 0.30 22.3 0.72 18.1 0.88
10000 13.1 53.7 0.24 12.1 1.08 11.3 1.16
12288 12.1 53.7 0.23 12.2 0.99 11.1 1.09
16384 11.8 53.7 0.22 12.3 0.96 11.1 1.06
32768 11.9 53.8 0.22 12.3 0.97 11.1 1.07
65536 11.9 53.8 0.22 12.3 0.96 11.1 1.07
100000 11.9 53.8 0.22 12.4 0.97 11.1 1.07
131072 11.9 53.8 0.22 12.4 0.96 11.2 1.07
262144 11.9 53.7 0.22 12.3 0.96 11.1 1.07
524288 11.7 53.8 0.22 12.2 0.96 10.7 1.09
1000000 11.8 19.4 0.61 12.2 0.96 11.1 1.06
1048576 11.7 17.5 0.67 12.2 0.96 11.1 1.06
2097152 9.2 8.9 1.05 9.2 1.00 9.2 1.00
4194304 9.2 8.0 1.15 9.2 0.99 9.0 1.02
8388608 8.2 7.9 1.05 8.3 1.00 8.4 0.98
16777216 7.9 7.7 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 6.4 1.1 5.79 0.8 7.45 0.3 20.51
3 8.1 1.7 4.84 1.2 6.75 0.5 17.46
4 11.1 2.5 4.41 1.8 6.12 0.6 18.58
6 12.2 3.3 3.74 2.4 5.01 0.9 14.04
8 21.6 4.4 4.95 3.6 6.00 1.1 19.34
12 32.3 5.8 5.60 5.1 6.33 1.6 20.67
16 25.9 7.4 3.52 6.8 3.80 1.9 13.82
24 38.5 10.2 3.80 9.7 3.96 2.5 15.44
32 45.5 12.8 3.54 11.8 4.06 3.0 15.05
48 46.4 17.6 2.63 16.4 2.83 3.4 13.67
64 46.8 21.5 2.18 20.5 2.28 9.1 5.15
96 45.9 27.6 1.66 26.6 1.73 8.5 5.40
100 45.8 29.0 1.58 26.6 1.73 8.1 5.67
128 46.6 29.9 1.56 31.3 1.49 15.7 2.97
192 46.7 33.5 1.39 34.8 1.34 20.4 2.29
256 46.7 27.4 1.70 33.8 1.38 23.4 1.99
384 46.6 38.7 1.20 32.6 1.43 27.5 1.70
512 46.6 40.2 1.16 29.6 1.57 29.9 1.56
768 46.0 41.8 1.10 27.3 1.68 32.1 1.43
1000 44.8 42.5 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.9 42.3 1.06 26.9 1.67 33.3 1.35
1536 43.1 41.4 1.04 24.8 1.73 34.8 1.24
2048 41.5 44.8 0.93 22.0 1.88 14.2 2.92
3072 39.5 61.3 0.64 20.6 1.92 36.3 1.09
4096 38.5 74.6 0.52 19.9 1.93 20.6 1.39
6144 37.6 96.2 0.39 19.3 1.94 24.7 1.52
8192 37.1 112.0 0.30 19.1 1.94 26.6 1.40
10000 36.7 125.1 0.29 18.6 1.97 36.6 1.00
12288 36.6 134.1 0.27 18.8 1.95 37.2 0.98
16384 36.3 149.4 0.24 18.6 1.95 36.3 1.00
32768 30.3 178.7 0.17 17.8 1.70 25.4 1.19
65536 30.5 198.9 0.15 17.7 1.72 26.2 1.16
100000 30.4 207.1 0.15 17.6 1.73 27.2 1.12
131072 30.5 210.6 0.14 17.6 1.73 26.8 1.14
262144 30.5 217.0 0.14 17.6 1.73 27.2 1.12
524288 29.8 220.3 0.14 17.7 1.69 27.1 1.10
1000000 26.3 219.1 0.12 17.4 1.50 23.7 1.12
1048576 29.7 221.7 0.13 17.1 1.74 26.6 1.11
2097152 28.7 40.6 0.71 16.8 1.58 26.2 1.10
4194304 23.7 18.4 1.02 16.9 1.52 24.2 0.98
8388608 19.2 18.3 1.03 17.6 1.09 18.5 1.04
16777216 18.6 18.1 1.03 17.1 1.09 18.3 1.01
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 8.2 1.5 5.57 0.8 10.04 0.3 25.64
3 9.7 1.9 5.17 1.1 8.41 0.5 21.07
4 12.9 2.5 5.19 1.7 7.60 0.6 21.56
6 16.2 3.2 5.02 2.3 7.05 0.9 18.16
8 16.2 4.0 4.01 3.2 5.02 1.1 14.41
12 19.3 5.3 3.63 4.6 4.17 1.5 12.77
16 24.1 6.8 3.53 6.4 3.76 1.9 12.82
24 23.2 9.2 2.55 8.2 2.82 2.5 9.32
32 23.4 11.2 2.08 10.8 2.17 4.5 5.16
48 22.9 14.4 1.60 14.4 1.60 5.4 4.28
64 23.3 15.2 1.53 10.8 2.16 7.7 3.02
96 23.3 17.4 1.34 15.7 1.48 10.0 2.33
100 23.2 17.6 1.32 15.9 1.46 10.1 2.30
128 23.3 13.7 1.70 16.6 1.41 11.7 2.00
192 23.3 19.7 1.19 17.3 1.35 13.8 1.69
256 23.3 20.4 1.14 17.7 1.32 14.8 1.57
384 23.1 21.0 1.10 18.1 1.28 16.0 1.45
512 22.6 21.5 1.05 18.3 1.23 16.5 1.37
768 21.6 20.9 1.04 18.5 1.17 17.2 1.25
1000 20.9 22.4 0.93 8.3 2.51 17.5 1.20
1001 20.9 22.3 0.94 8.3 2.50 17.4 1.20
1024 20.8 22.8 0.91 7.2 2.90 17.6 1.18
1536 19.7 31.1 0.63 18.8 1.05 18.0 1.10
2048 19.3 37.8 0.51 10.2 1.89 7.0 2.03
3072 18.8 48.7 0.38 12.2 1.54 18.4 1.02
4096 18.5 56.5 0.33 13.3 1.39 10.2 1.82
6144 18.3 67.7 0.27 14.8 1.23 14.7 1.24
8192 18.1 75.2 0.24 15.6 1.16 15.2 1.19
10000 16.2 80.1 0.20 16.1 1.00 15.2 1.06
12288 15.3 84.4 0.18 13.3 1.15 12.9 1.18
16384 15.1 89.8 0.17 13.0 1.17 12.7 1.19
32768 15.2 99.6 0.15 13.3 1.14 13.1 1.16
65536 15.2 105.4 0.14 13.6 1.12 13.4 1.14
100000 15.2 107.7 0.14 13.8 1.10 13.7 1.11
131072 15.2 108.5 0.14 13.7 1.11 13.6 1.12
262144 14.9 110.2 0.14 13.7 1.09 13.6 1.10
524288 14.8 110.8 0.13 13.5 1.10 13.3 1.11
1000000 14.6 28.3 0.52 13.2 1.11 13.3 1.10
1048576 14.5 21.1 0.69 12.9 1.13 13.3 1.09
2097152 9.4 9.2 1.02 11.2 0.85 10.2 0.92
4194304 9.4 9.2 1.03 9.2 1.02 9.2 1.02
8388608 9.3 9.0 1.03 9.1 1.02 9.1 1.01
16777216 9.1 8.6 1.05 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.5 0.6 2.39 0.6 2.68 0.4 3.35
3x3 2.7 1.2 2.21 1.2 2.28 1.0 2.69
4x4 5.5 2.7 2.05 2.1 2.63 1.8 3.16
6x6 10.1 4.2 2.40 4.3 2.35 3.6 2.78
8x8 17.8 9.9 1.82 7.3 2.44 6.1 2.71
12x12 29.8 18.9 1.57 2.7 11.14 11.8 2.53
16x16 40.5 29.0 1.39 3.7 10.80 19.0 2.13
24x24 49.6 46.4 1.07 5.1 9.74 28.5 1.74
32x32 66.2 58.2 1.14 6.0 11.11 37.7 1.75
48x48 58.0 55.0 1.06 6.8 8.54 51.0 1.14
64x64 74.0 154.2 0.48 7.0 10.56 58.7 1.26
96x96 73.1 150.1 0.49 2.3 32.56 69.1 1.04
100x100 57.8 140.5 0.41 2.3 25.79 69.3 0.83
128x128 71.5 273.2 0.26 7.1 10.04 69.4 1.03
192x192 59.6 255.9 0.23 6.4 9.32 46.3 1.30
200x200 57.4 170.4 0.34 6.3 9.09 48.5 1.18
256x256 47.3 350.7 0.14 5.9 8.08 46.3 1.02
257x257 41.0 222.9 0.18 6.7 6.15 40.7 1.01
384x384 44.8 347.6 0.13 5.7 7.86 46.0 0.97
500x500 51.0 243.5 0.21 6.4 7.93 46.5 1.10
512x512 48.2 419.4 0.11 6.6 7.33 46.2 1.04
768x768 47.6 401.8 0.12 5.6 8.50 47.1 1.01
1000x1000 50.1 307.0 0.16 5.6 8.95 47.5 1.06
1001x1001 46.6 298.3 0.16 5.6 8.34 44.2 1.06
1024x1024 48.8 425.2 0.11 6.3 7.79 44.0 1.11
1536x1536 48.6 419.3 0.12 2.0 24.21 44.7 1.09
2048x2048 42.5 78.8 0.54 1.7 24.79 42.4 1.00
3072x3072 28.1 36.7 0.76 1.7 16.55 25.2 1.12
4096x4096 25.3 35.7 0.69 0.9 27.47 28.2 0.90
4097x4097 17.3 35.3 0.49 1.7 10.28 26.0 0.67
8x10000 37.2 16.5 2.25 5.8 6.41 10.5 3.53
100x10000 43.5 147.2 0.30 5.6 7.69 50.5 0.86
1000x10000 21.5 36.1 0.58 1.9 11.10 27.5 0.78
4000x10000 25.4 36.1 0.70 1.9 13.65 23.4 1.09
10000x8 47.4 264.2 0.18 6.5 7.52 42.5 1.12
10000x100 43.7 375.1 0.11 6.8 6.46 41.9 1.04
10000x1000 34.7 36.5 0.94 1.7 20.29 33.2 1.05
10000x4000 30.7 36.2 0.85 1.8 17.00 27.9 1.10
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.9 0.7 2.66 0.5 3.43 0.4 4.63
3x3 3.0 1.2 2.46 1.1 2.72 0.8 3.76
4x4 5.6 2.7 2.10 2.0 2.87 1.5 3.68
6x6 11.6 2.8 4.12 4.1 2.85 2.2 5.18
8x8 17.5 9.3 1.89 4.0 4.34 4.2 4.16
12x12 21.2 4.7 4.50 7.1 2.87 6.0 3.51
16x16 28.7 21.9 1.31 13.3 2.16 7.3 3.94
24x24 31.1 28.1 1.11 17.8 1.75 9.7 3.19
32x32 35.5 51.9 0.68 19.3 1.84 12.5 2.84
48x48 37.5 65.2 0.57 23.7 1.58 16.5 2.28
64x64 36.6 123.7 0.30 19.8 1.85 12.9 2.85
96x96 34.8 132.2 0.26 23.3 1.52 18.0 1.93
100x100 31.5 87.9 0.36 27.2 1.18 18.1 1.74
128x128 35.3 169.1 0.21 22.4 1.57 16.5 2.14
192x192 21.6 174.1 0.12 21.5 1.01 16.6 1.30
200x200 22.8 136.9 0.17 23.1 0.99 16.9 1.34
256x256 23.8 206.1 0.12 21.1 1.13 16.4 1.45
257x257 23.0 142.9 0.16 20.0 1.15 16.0 1.44
384x384 23.3 202.0 0.11 22.3 1.04 16.9 1.38
500x500 24.8 158.3 0.16 23.4 1.06 16.8 1.47
512x512 24.1 212.3 0.11 21.1 1.14 17.0 1.42
768x768 24.0 212.9 0.11 22.5 1.06 16.9 1.42
1000x1000 25.0 174.1 0.14 24.0 1.05 8.0 3.11
1001x1001 24.3 174.9 0.14 23.1 1.06 7.9 3.07
1024x1024 22.6 210.8 0.11 20.7 1.09 6.7 3.38
1536x1536 19.6 25.2 0.78 20.6 0.95 16.6 1.23
2048x2048 13.5 16.1 0.85 15.8 0.85 9.1 1.49
3072x3072 14.7 17.3 0.84 13.0 1.13 10.8 1.37
4096x4096 11.9 13.4 0.89 13.9 0.86 11.9 1.00
4097x4097 10.1 14.4 0.70 13.1 0.77 15.6 0.64
8x10000 23.0 25.5 0.90 14.9 1.54 4.3 5.34
100x10000 20.4 92.7 0.22 20.9 0.98 16.5 1.25
1000x10000 10.8 18.1 0.60 11.8 0.92 16.0 0.68
4000x10000 14.3 17.9 0.80 14.1 1.01 16.0 0.89
10000x8 24.4 136.7 0.18 20.8 1.18 11.5 2.13
10000x100 20.9 198.2 0.11 20.2 1.04 11.4 1.85
10000x1000 16.9 18.1 0.95 16.9 1.00 11.1 1.53
10000x4000 16.0 17.9 0.89 16.1 0.99 11.0 1.45
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.4 0.8 2.86 1.0 2.33 0.5 4.80
3x3x3 4.2 1.2 3.63 3.0 1.37 1.5 3.00
4x4x4 10.7 8.0 1.33 7.3 1.55 4.0 2.70
6x6x6 11.3 6.6 1.70 4.9 2.30 8.6 1.32
8x8x8 19.1 24.6 0.79 11.7 1.61 19.1 1.00
12x12x12 20.4 27.0 0.76 25.2 0.83 40.6 0.49
16x16x16 23.3 58.6 0.40 41.3 0.57 63.3 0.37
24x24x24 24.0 129.1 0.19 64.4 0.37 77.3 0.31
32x32x32 246.8 355.5 0.70 77.8 3.17 94.3 2.62
48x48x48 331.9 558.1 0.59 89.9 3.71 103.7 3.19
64x64x64 663.4 984.4 0.67 92.7 7.16 61.2 10.78
96x96x96 927.1 1287.4 0.72 102.1 9.08 109.0 8.51
100x100x100 402.5 688.0 0.59 96.1 4.17 101.3 3.98
128x128x128 1116.5 1452.8 0.77 153.3 7.28 109.9 10.14
160x160x160 1235.5 1552.6 0.80 192.2 6.43 109.9 11.23
192x192x192 1036.6 1610.5 0.64 220.5 4.69 92.5 11.20
200x200x200 906.5 1207.8 0.75 223.2 4.06 108.2 8.38
224x224x224 1182.4 1676.9 0.71 267.8 4.41 111.1 10.64
256x256x256 1191.3 1704.6 0.70 253.4 4.70 110.8 10.75
257x257x257 930.9 1173.2 0.79 271.4 3.43 104.4 8.92
288x288x288 1296.0 1742.5 0.74 318.9 4.06 111.9 11.58
320x320x320 1379.3 1755.3 0.79 348.4 3.96 112.1 12.31
384x384x384 1503.6 1799.8 0.84 390.8 3.85 106.8 14.08
448x448x448 1587.2 1828.0 0.87 420.5 3.77 113.0 14.05
500x500x500 1489.9 1559.6 0.96 536.2 2.78 111.4 13.38
512x512x512 1612.6 1776.7 0.91 491.4 3.28 113.1 14.26
768x768x768 1764.8 1899.0 0.93 674.7 2.60 113.6 15.53
1000x1000x1000 1607.0 1772.7 0.91 772.3 2.08 113.2 14.12
1001x1001x1001 1583.7 1727.2 0.92 738.6 2.14 111.4 14.06
1024x1024x1024 1513.4 1665.3 0.90 711.9 2.13 113.7 13.32
1536x1536x1536 1428.9 1474.0 0.97 907.8 1.57 113.8 12.57
2048x2048x2048 1425.4 1541.0 0.93 928.1 1.54 113.4 12.56
3072x3072x3072 1515.1 1457.1 1.04 1036.7 1.46 113.5 13.35
4096x4096x4096 1563.4 1469.9 1.07 895.1 1.74 113.8 13.74
4097x4097x4097 1397.6 1390.3 1.00 969.9 1.44 113.0 12.36
64x64x1024 769.1 1083.5 0.71 77.9 9.88 100.2 7.67
64x1024x64 909.6 1192.6 0.77 155.6 5.84 109.4 8.31
256x256x1024 1467.8 1646.6 0.89 298.9 4.91 109.6 13.36
1024x64x64 675.0 994.3 0.68 98.0 6.89 102.2 6.65
1024x256x256 1269.0 1526.2 0.83 274.4 4.63 112.5 11.28
4096x96x96 712.1 1154.3 0.62 110.9 6.47 109.4 6.51
4096x128x128 851.1 1289.2 0.66 136.3 6.24 110.5 7.73
4096x144x144 851.8 1352.8 0.64 155.3 5.49 111.3 7.63
4096x160x160 940.5 1376.7 0.68 181.4 5.20 111.6 8.42
4096x176x176 955.3 1421.3 0.67 200.6 4.76 112.0 8.56
8192x128x128 781.4 1111.1 0.70 150.7 5.19 110.6 7.16
10000x8x8 69.7 421.9 0.17 45.4 1.54 73.5 0.94
10000x100x100 696.2 1121.4 0.61 184.2 3.78 111.1 6.27
10000x1000x1000 1451.7 1407.2 1.03 737.3 1.97 113.4 12.80
10000x4000x4000 1623.9 1485.4 1.10 936.0 1.73 113.7 14.26
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 2.5 0.9 2.90 1.0 2.45 0.6 4.10
3x3x3 4.7 1.6 2.91 0.7 6.32 1.8 2.71
4x4x4 7.5 6.1 1.09 1.7 4.61 4.3 1.74
6x6x6 9.4 11.1 0.79 4.9 1.91 9.3 1.03
8x8x8 10.2 17.8 0.54 9.1 1.16 18.1 0.56
12x12x12 12.7 20.9 0.59 20.9 0.61 31.1 0.41
16x16x16 12.6 53.5 0.22 28.0 0.45 38.8 0.33
24x24x24 54.1 98.5 0.55 39.9 1.34 46.5 1.17
32x32x32 129.9 207.7 0.63 40.8 3.25 47.7 2.72
48x48x48 205.5 306.3 0.67 50.5 4.13 52.1 3.95
64x64x64 286.3 362.2 0.79 92.1 3.11 29.1 9.83
96x96x96 349.3 410.9 0.85 137.0 2.55 53.3 6.55
100x100x100 204.7 283.0 0.72 129.0 1.59 52.7 3.89
128x128x128 383.7 433.4 0.88 171.5 2.24 44.2 8.68
160x160x160 323.7 447.1 0.72 199.0 1.63 54.6 5.92
192x192x192 363.1 455.6 0.80 224.1 1.62 50.0 7.26
200x200x200 345.1 438.5 0.79 218.7 1.58 55.2 6.25
224x224x224 392.2 462.4 0.85 243.1 1.61 55.5 7.07
256x256x256 408.4 459.2 0.89 260.3 1.57 52.4 7.78
257x257x257 346.8 348.4 1.00 235.9 1.47 53.8 6.44
288x288x288 425.1 470.8 0.90 281.0 1.52 55.9 7.60
320x320x320 435.9 473.4 0.92 290.3 1.50 56.1 7.74
384x384x384 450.0 477.8 0.94 303.7 1.48 53.3 8.44
448x448x448 459.2 481.5 0.95 329.4 1.40 56.5 8.12
500x500x500 436.6 439.5 0.99 336.3 1.30 56.5 7.73
512x512x512 425.1 440.4 0.97 349.8 1.21 56.5 7.52
768x768x768 429.6 467.9 0.93 393.9 1.08 56.9 7.55
1000x1000x1000 394.5 420.7 0.94 407.2 0.96 56.9 6.93
1001x1001x1001 387.2 421.6 0.92 380.1 1.02 56.4 6.87
1024x1024x1024 382.3 361.9 1.06 363.7 1.06 56.9 6.71
1536x1536x1536 397.7 379.0 1.05 369.8 1.08 56.7 6.99
2048x2048x2048 407.5 382.4 1.07 342.6 1.20 56.9 7.10
3072x3072x3072 417.6 382.2 1.09 347.3 1.21 56.7 7.32
4096x4096x4096 417.6 385.6 1.08 359.8 1.16 57.1 7.35
4097x4097x4097 396.2 360.5 1.10 356.9 1.12 56.7 6.99
64x64x1024 282.7 398.3 0.71 146.3 1.93 49.7 5.69
64x1024x64 345.0 385.4 0.90 155.8 2.21 54.6 6.32
256x256x1024 436.6 468.0 0.91 303.1 1.44 55.6 7.86
1024x64x64 261.1 351.4 0.74 113.1 2.37 53.4 4.87
1024x256x256 400.8 442.8 0.90 275.1 1.46 56.2 7.13
4096x96x96 291.6 353.3 0.83 56.2 5.22 54.5 5.25
4096x128x128 313.0 358.7 0.87 56.0 5.59 55.0 5.70
4096x144x144 314.6 386.6 0.82 58.0 5.43 55.5 5.62
4096x160x160 311.0 381.4 0.81 57.5 5.41 55.7 5.59
4096x176x176 314.7 352.5 0.89 57.4 5.41 55.9 5.65
8192x128x128 242.8 299.8 0.81 55.8 4.36 55.0 3.99
10000x8x8 32.0 217.6 0.15 24.4 1.31 36.2 0.89
10000x100x100 241.4 383.5 0.62 55.4 4.36 55.4 4.39
10000x1000x1000 421.3 382.7 1.10 409.2 1.03 56.5 7.46
10000x4000x4000 446.3 390.7 1.14 375.2 1.19 56.8 7.87
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.48 0.5 1.16 0.5 0.97
3x3 1.2 3.1 0.38 1.1 1.16 0.9 1.41
4x4 6.6 6.2 1.06 4.0 1.65 1.5 4.47
6x6 7.2 12.7 0.57 2.4 3.02 2.9 2.54
8x8 20.5 22.0 0.93 5.0 4.11 3.8 5.46
12x12 27.7 29.5 0.94 7.1 3.92 6.3 4.41
16x16 40.5 39.7 1.01 10.6 3.82 5.5 7.33
24x24 46.8 49.2 0.95 16.1 2.90 9.1 5.13
32x32 54.8 54.3 1.00 17.7 3.09 10.6 5.16
48x48 60.6 52.4 1.16 29.6 2.04 15.4 3.94
64x64 64.8 98.8 0.66 36.8 1.76 15.5 4.17
96x96 69.2 157.7 0.44 50.1 1.38 27.3 2.53
100x100 68.1 127.2 0.54 50.0 1.36 27.3 2.50
128x128 69.5 239.7 0.29 57.5 1.21 33.2 2.10
192x192 163.6 339.3 0.48 68.9 2.37 40.1 4.08
200x200 154.7 257.8 0.60 71.7 2.16 44.3 3.50
256x256 215.4 442.9 0.49 68.4 3.15 51.3 4.21
257x257 151.4 274.2 0.55 73.4 2.06 49.2 3.08
384x384 291.1 625.6 0.47 84.3 3.45 60.5 4.82
500x500 277.3 585.9 0.47 93.7 2.96 68.6 4.04
512x512 344.5 676.1 0.51 84.8 4.06 71.0 4.86
768x768 404.7 887.8 0.46 94.9 4.26 80.7 5.02
1000x1000 407.6 844.1 0.48 105.5 3.86 86.2 4.73
1001x1001 298.0 795.5 0.38 103.5 2.87 84.3 3.53
1024x1024 334.6 768.4 0.44 96.6 3.46 87.2 3.83
1536x1536 461.5 964.3 0.48 104.8 4.40 94.2 4.90
2048x2048 341.5 842.3 0.41 96.2 3.55 98.0 3.48
3072x3072 438.0 982.7 0.45 107.3 4.07 102.5 4.27
4096x4096 394.6 928.6 0.43 100.8 3.91 105.3 3.72
4097x4097 230.6 866.0 0.27 103.4 2.24 104.4 2.21
64x4096 65.0 180.6 0.36 41.1 1.58 20.2 3.22
256x4096 246.1 524.2 0.47 68.0 3.62 52.5 4.69
1024x8 91.0 58.4 1.56 44.0 2.07 38.0 2.39
1024x64 278.9 548.4 0.51 85.4 3.27 76.3 3.65
1024x256 335.2 721.2 0.46 94.5 3.55 84.7 3.95
1024x4096 324.3 724.9 0.45 92.2 3.52 87.0 3.73
4096x8 67.4 43.7 1.55 25.3 2.66 42.6 1.58
4096x64 283.2 493.7 0.57 74.4 3.82 88.7 3.19
4096x256 363.4 874.6 0.42 94.1 3.87 101.1 3.59
4096x1024 388.8 983.7 0.40 101.0 3.85 104.6 3.72
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.6 1.1 0.52 0.5 1.25 0.5 1.06
3x3 1.2 2.9 0.39 1.0 1.23 0.9 1.32
4x4 5.2 5.5 0.77 3.9 1.35 1.7 3.12
6x6 7.2 9.4 0.77 1.9 3.82 2.8 2.53
8x8 12.3 13.1 0.95 4.5 2.70 3.7 3.29
12x12 18.3 17.5 1.05 7.6 2.44 6.2 2.94
16x16 21.1 20.0 1.06 8.6 2.10 7.5 2.79
24x24 23.4 9.0 2.64 14.2 1.63 10.3 2.28
32x32 28.0 18.3 1.54 18.1 1.55 12.4 2.25
48x48 30.6 35.6 0.86 23.4 1.30 17.1 1.81
64x64 32.5 59.0 0.55 25.2 1.29 13.3 2.44
96x96 34.1 85.6 0.40 32.7 1.04 25.9 1.31
100x100 34.1 62.7 0.54 33.0 1.03 25.7 1.33
128x128 34.1 111.8 0.31 32.2 1.06 25.0 1.36
192x192 79.0 152.1 0.52 40.6 1.95 31.7 2.47
200x200 75.1 146.4 0.51 42.4 1.77 36.1 2.08
256x256 93.6 189.9 0.49 37.9 2.47 36.4 2.52
257x257 50.0 119.8 0.42 44.3 1.13 37.9 1.32
384x384 107.0 235.1 0.46 46.2 2.32 43.6 2.42
500x500 98.7 221.0 0.45 50.1 1.97 45.7 2.16
512x512 97.1 222.0 0.44 43.4 2.23 46.2 2.10
768x768 123.8 286.1 0.43 49.5 2.50 49.5 2.46
1000x1000 126.7 291.8 0.43 54.3 2.33 51.1 2.45
1001x1001 86.1 267.4 0.32 53.6 1.61 50.3 1.71
1024x1024 99.4 261.6 0.38 45.8 2.17 51.0 1.95
1536x1536 145.1 276.9 0.52 53.4 2.71 52.5 2.77
2048x2048 143.0 257.1 0.56 48.2 2.95 53.5 2.67
3072x3072 179.3 289.0 0.62 53.3 3.37 54.4 3.29
4096x4096 200.4 304.9 0.66 52.9 3.78 55.3 3.63
4097x4097 126.0 289.9 0.43 53.1 2.37 54.9 2.30
64x4096 32.7 87.3 0.37 26.5 1.24 20.7 1.58
256x4096 98.2 199.5 0.49 37.6 2.63 39.4 2.47
1024x8 42.6 72.0 0.59 25.5 1.67 31.4 1.35
1024x64 94.9 217.8 0.44 44.2 2.14 47.5 2.00
1024x256 100.7 254.6 0.40 45.3 2.22 50.4 2.00
1024x4096 97.7 197.9 0.49 44.1 2.21 50.6 1.93
4096x8 33.1 45.7 0.73 21.9 1.51 24.8 1.33
4096x64 132.2 180.7 0.73 46.8 2.82 48.1 2.78
4096x256 180.3 263.2 0.69 51.7 3.47 53.4 3.38
4096x1024 195.8 283.2 0.69 52.9 3.69 54.7 3.58
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.0 1.3 0.03 0.1 0.34 0.4 0.09
3x3 0.1 3.3 0.03 0.3 0.32 1.0 0.10
4x4 0.2 7.5 0.03 0.6 0.33 2.2 0.09
6x6 0.6 14.3 0.04 1.7 0.34 4.7 0.12
8x8 1.3 31.8 0.04 3.5 0.38 8.3 0.16
12x12 4.7 33.8 0.14 7.7 0.62 12.8 0.36
16x16 13.0 28.4 0.45 12.6 1.08 18.2 0.72
24x24 9.0 68.9 0.13 24.5 0.37 34.2 0.26
32x32 13.9 216.1 0.08 36.0 0.39 44.2 0.31
48x48 49.5 429.4 0.11 52.0 0.95 62.5 0.81
64x64 80.9 741.9 0.11 61.9 1.31 71.0 1.15
96x96 148.7 1111.8 0.13 70.8 2.10 85.2 1.76
100x100 130.2 589.0 0.22 64.4 2.02 77.6 1.70
128x128 221.6 1324.4 0.17 77.1 2.88 88.8 2.47
192x192 629.7 1548.5 0.40 87.2 7.22 70.7 9.14
200x200 550.0 1088.2 0.50 85.4 6.44 93.3 5.98
256x256 860.2 1658.8 0.52 93.5 9.16 97.8 8.93
257x257 608.9 1098.3 0.55 91.7 6.62 91.9 6.69
384x384 1138.4 1773.5 0.64 101.6 11.21 95.2 12.05
500x500 1206.9 1553.2 0.78 106.4 11.35 104.1 11.64
512x512 1317.9 1789.0 0.73 100.5 13.12 99.2 13.35
768x768 1576.2 1889.4 0.83 112.8 13.98 108.4 14.53
1000x1000 1552.1 1750.1 0.88 114.6 13.57 109.8 14.14
1001x1001 1527.6 1706.6 0.89 114.3 13.40 107.0 14.28
1024x1024 1402.1 1781.3 0.79 110.7 12.66 105.6 13.22
1536x1536 1276.3 1876.7 0.68 117.4 10.94 111.6 11.33
2048x2048 1151.4 1504.6 0.76 115.3 9.99 109.6 10.54
3072x3072 1315.1 1442.7 0.91 114.2 11.53 110.8 11.86
4096x4096 1356.5 1476.6 0.92 114.3 11.87 111.7 12.07
4097x4097 1304.6 1415.7 0.90 115.7 11.27 111.1 11.82
64x4096 555.3 1345.9 0.41 59.8 9.29 50.6 11.02
256x4096 1285.9 1787.3 0.71 97.4 13.20 84.8 15.22
1024x4096 1133.3 1444.6 0.78 114.8 9.87 105.3 10.77
4096x8 66.6 51.8 1.30 19.8 3.37 57.7 1.13
4096x64 406.0 385.2 1.05 96.7 4.20 113.2 3.56
4096x256 942.1 864.4 1.09 113.6 8.29 113.7 8.29
4096x1024 1321.1 1433.1 0.92 116.8 11.31 111.7 11.83
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.0 1.2 0.03 0.1 0.33 0.4 0.11
3x3 0.1 1.6 0.07 0.3 0.36 0.9 0.12
4x4 0.2 4.2 0.05 0.6 0.37 2.0 0.11
6x6 0.7 5.2 0.14 1.8 0.40 4.3 0.17
8x8 1.9 6.0 0.33 3.0 0.63 7.2 0.27
12x12 4.2 11.1 0.39 7.1 0.59 14.8 0.28
16x16 9.0 34.1 0.27 10.5 0.83 17.7 0.57
24x24 15.2 76.2 0.20 19.4 0.55 26.3 0.67
32x32 14.9 149.9 0.10 25.8 0.43 32.9 0.49
48x48 30.0 249.6 0.12 35.1 0.88 41.0 0.73
64x64 46.7 312.8 0.15 40.1 1.25 19.1 2.44
96x96 96.1 377.7 0.26 41.4 2.04 45.6 2.11
100x100 73.9 252.8 0.29 39.7 1.86 44.7 1.69
128x128 132.0 410.1 0.32 30.0 4.36 33.7 3.94
192x192 261.2 441.3 0.59 48.8 5.36 42.4 6.15
200x200 258.1 413.7 0.62 49.1 5.26 51.0 5.06
256x256 320.0 452.0 0.71 41.2 7.76 44.9 7.11
257x257 275.1 334.7 0.82 49.1 5.60 49.4 5.56
384x384 394.0 471.8 0.84 47.5 8.29 49.9 7.90
500x500 397.4 429.9 0.92 55.8 7.12 54.4 7.31
512x512 386.5 458.7 0.84 50.0 7.72 50.6 7.60
768x768 423.9 485.5 0.88 58.0 7.31 55.5 7.62
1000x1000 380.6 468.5 0.81 58.8 6.35 56.1 6.78
1001x1001 360.8 462.5 0.79 58.3 6.19 55.5 6.49
1024x1024 343.9 400.3 0.86 58.4 5.89 53.8 6.36
1536x1536 352.6 381.9 0.93 58.8 6.00 54.8 6.41
2048x2048 342.5 388.6 0.89 57.3 5.98 55.4 6.19
3072x3072 373.4 395.1 0.95 58.8 6.35 55.7 6.69
4096x4096 379.9 391.8 0.97 58.5 6.49 56.4 6.77
4097x4097 378.7 370.4 1.02 59.7 6.35 56.0 6.77
64x4096 232.5 407.0 0.57 33.8 6.87 27.1 8.57
256x4096 363.0 411.7 0.88 51.6 6.97 45.1 8.08
1024x4096 342.8 399.3 0.86 56.8 6.04 53.5 6.39
4096x8 35.9 18.5 1.94 13.2 2.70 23.8 1.52
4096x64 185.2 115.4 1.61 52.1 3.32 55.8 3.44
4096x256 327.0 295.2 1.12 58.8 5.29 56.6 5.78
4096x1024 379.7 391.7 0.97 58.8 6.45 56.3 6.77
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.5 0.4 1.15 0.4 1.30 0.1 4.47
3 0.6 0.9 0.73 0.9 0.75 0.3 2.43
4 1.1 1.3 0.80 1.3 0.81 0.5 2.29
6 1.5 2.1 0.72 2.3 0.67 0.9 1.67
8 2.2 6.7 0.32 2.9 0.76 1.4 1.58
12 3.8 7.8 0.49 4.0 0.92 2.3 1.67
16 5.6 17.3 0.32 3.3 1.71 3.0 1.87
24 9.3 23.6 0.39 5.9 1.58 3.7 2.48
32 2.4 33.1 0.07 6.3 0.38 4.0 0.60
48 4.2 48.3 0.09 10.5 0.40 11.8 0.36
64 6.4 57.8 0.11 9.5 0.67 16.2 0.39
96 11.2 54.4 0.21 23.8 0.46 22.5 0.50
100 10.4 54.0 0.19 23.9 0.45 21.8 0.48
128 23.2 95.2 0.24 30.5 0.76 26.6 0.86
192 36.7 167.7 0.22 41.3 0.89 46.4 0.79
200 35.7 144.1 0.25 42.4 0.84 44.6 0.80
256 68.9 244.3 0.28 46.6 1.50 55.0 1.25
257 54.7 191.4 0.28 46.2 1.19 52.7 1.04
384 114.6 366.5 0.31 59.8 1.91 68.2 1.68
500 142.5 459.1 0.30 62.6 2.28 68.6 2.09
512 165.8 503.2 0.33 54.9 3.02 68.0 2.45
768 271.4 750.9 0.36 78.6 3.43 84.3 3.22
1000 345.9 831.1 0.42 98.0 3.51 88.6 3.90
1001 326.6 806.9 0.41 98.7 3.30 86.5 3.78
1024 274.1 860.2 0.32 83.8 3.27 88.7 3.10
1536 462.1 1110.7 0.42 108.4 4.21 97.1 4.77
2048 411.2 1022.8 0.40 102.0 4.00 100.3 4.11
3072 543.3 1015.1 0.54 115.1 4.65 105.4 5.16
4096 473.2 460.7 1.03 81.9 5.74 105.7 4.48
4097 409.4 677.6 0.61 125.1 3.26 104.9 3.90
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.4 0.4 1.04 0.4 1.25 0.1 3.80
3 0.8 1.0 0.76 0.8 0.96 0.3 2.82
4 1.0 1.8 0.58 1.2 0.86 0.5 2.27
6 1.5 2.1 0.75 2.1 0.74 0.9 1.78
8 2.3 4.6 0.50 2.7 0.83 1.3 1.79
12 3.9 8.0 0.49 4.0 0.98 2.1 1.85
16 5.7 9.4 0.59 3.0 1.87 2.8 2.03
24 8.9 16.4 0.54 5.1 1.75 3.9 2.27
32 2.2 20.8 0.11 5.7 0.39 4.2 0.53
48 3.3 11.7 0.27 9.1 0.37 10.8 0.31
64 4.5 20.9 0.21 12.6 0.37 14.0 0.32
96 6.5 38.2 0.17 16.8 0.39 18.5 0.35
100 5.9 33.0 0.18 16.6 0.36 18.6 0.32
128 13.6 55.3 0.25 21.1 0.64 21.7 0.64
192 21.7 86.6 0.25 26.9 0.81 32.0 0.68
200 23.4 87.3 0.27 28.2 0.83 31.2 0.75
256 36.6 112.8 0.33 34.7 1.05 29.4 1.24
257 30.4 94.4 0.32 33.9 0.89 34.6 0.88
384 63.2 177.0 0.36 50.4 1.25 38.1 1.66
500 86.0 199.8 0.43 58.9 1.46 42.0 2.05
512 87.1 216.6 0.40 57.0 1.53 40.1 2.17
768 151.0 279.5 0.54 77.4 1.95 45.8 3.29
1000 183.2 312.9 0.59 89.4 2.05 49.3 3.72
1001 170.0 285.5 0.60 89.4 1.90 48.6 3.50
1024 143.5 300.3 0.48 84.7 1.70 46.7 3.07
1536 198.3 303.6 0.65 86.4 2.29 50.5 3.92
2048 175.3 160.9 1.09 65.5 2.68 51.4 3.41
3072 228.7 187.2 1.22 54.8 4.20 53.1 4.30
4096 221.1 178.1 1.24 112.5 1.95 54.1 4.09
4097 202.2 234.8 0.86 117.8 1.72 53.8 3.76
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.50 0.3 0.64 0.3 0.79
3 0.5 0.2 2.92 0.4 0.94 0.4 1.11
4 0.7 0.3 1.94 0.9 0.83 0.6 1.23
6 1.3 0.7 1.76 1.6 0.75 0.7 1.81
8 2.0 1.3 1.60 2.6 0.78 0.8 2.39
12 3.8 2.6 1.44 5.2 0.74 1.2 3.28
16 5.7 4.2 1.36 7.1 0.80 1.5 3.84
24 7.7 7.5 1.01 10.8 0.71 3.4 2.29
32 9.8 10.7 0.91 13.8 0.72 4.1 2.38
48 11.1 12.9 0.86 18.5 0.60 8.3 1.34
64 14.7 19.8 0.73 23.3 0.63 9.4 1.58
96 22.3 32.2 0.69 34.2 0.65 18.8 1.19
100 23.4 30.0 0.78 25.6 0.92 19.2 1.23
128 40.7 45.0 0.91 39.4 1.03 23.0 1.75
192 59.5 58.6 1.03 45.9 1.29 34.8 1.71
200 60.2 60.6 0.99 47.3 1.28 35.6 1.68
256 76.2 85.0 0.89 42.1 1.83 43.0 1.77
257 60.0 78.9 0.76 53.6 1.13 41.2 1.45
384 112.9 149.2 0.76 68.0 1.66 54.5 2.06
500 136.4 176.1 0.77 95.9 1.43 62.8 2.17
512 137.8 178.5 0.77 44.7 3.09 64.9 2.12
768 197.8 319.4 0.62 86.2 2.32 76.0 2.60
1000 249.4 372.6 0.67 148.4 1.68 82.1 3.04
1001 214.4 347.9 0.61 147.3 1.46 80.4 2.67
1024 234.3 215.9 1.09 68.1 3.44 83.7 2.79
1536 414.5 399.3 1.04 109.5 3.78 92.4 4.50
2048 412.5 203.9 2.02 108.9 3.79 96.1 4.29
3072 461.8 465.8 0.99 183.4 2.53 100.7 4.58
4096 424.8 257.3 1.64 161.1 2.64 103.3 4.11
4097 357.6 292.9 1.22 198.1 1.81 102.4 3.49
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.3 0.1 5.38 0.3 0.73 0.2 1.43
3 0.5 0.2 2.91 0.6 0.93 0.4 1.41
4 0.7 0.3 2.06 0.9 0.87 0.4 1.45
6 1.2 0.8 1.63 1.6 0.76 0.6 2.02
8 1.9 1.2 1.57 2.5 0.80 0.7 2.67
12 3.8 2.6 1.47 4.8 0.80 1.0 3.83
16 5.2 3.9 1.32 6.5 0.82 1.2 4.16
24 5.8 6.6 0.88 9.4 0.62 2.9 1.99
32 5.5 6.7 0.84 10.2 0.54 3.7 1.47
48 8.1 11.0 0.73 14.3 0.57 7.9 1.02
64 10.7 15.7 0.70 16.5 0.65 10.0 1.07
96 16.0 24.5 0.66 21.2 0.75 16.9 0.95
100 15.9 22.8 0.70 20.0 0.79 17.1 0.94
128 25.3 34.0 0.74 22.2 1.14 17.9 1.42
192 35.6 52.5 0.68 34.1 1.04 28.5 1.27
200 35.8 53.4 0.68 29.1 1.23 28.5 1.26
256 44.9 65.4 0.69 22.4 2.01 30.4 1.48
257 34.8 52.1 0.67 31.5 1.10 31.1 1.12
384 64.9 86.0 0.75 42.8 1.52 37.7 1.72
500 79.0 94.0 0.84 57.8 1.37 41.3 1.92
512 75.5 71.1 1.06 29.4 2.57 41.1 1.84
768 105.2 144.0 0.73 47.1 2.23 46.1 2.28
1000 122.9 199.0 0.62 94.5 1.30 48.0 2.55
1001 112.6 154.1 0.73 94.8 1.19 47.4 2.37
1024 116.1 84.7 1.38 45.7 2.53 48.1 2.41
1536 166.6 156.0 1.07 53.4 3.12 50.6 3.29
2048 147.2 101.7 1.45 58.7 2.51 51.3 2.87
3072 179.6 157.5 1.14 100.7 1.77 52.7 3.41
4096 182.5 156.3 1.17 104.9 1.74 53.7 3.38
4097 151.9 167.4 0.91 120.9 1.25 53.4 2.84
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.43 0.3 0.70 0.2 1.49
3x3 0.4 0.2 1.82 0.6 0.71 0.3 1.42
4x4 0.7 0.4 1.60 0.9 0.74 0.5 1.43
6x6 1.3 0.9 1.44 1.7 0.76 0.9 1.49
8x8 2.0 1.5 1.30 2.6 0.77 1.3 1.55
12x12 4.0 3.0 1.27 4.4 0.92 2.6 1.58
16x16 6.2 4.8 1.21 6.0 1.03 3.8 1.63
24x24 10.4 8.9 1.11 8.4 1.24 6.6 1.58
32x32 14.1 12.9 1.03 9.8 1.45 9.1 1.55
48x48 19.7 22.8 0.83 10.3 1.93 13.4 1.47
64x64 12.0 28.4 0.42 13.8 0.89 16.7 0.71
96x96 25.8 33.5 0.77 20.2 1.31 20.2 1.27
100x100 20.4 30.1 0.68 18.8 1.11 20.5 0.98
128x128 35.1 45.7 0.77 25.7 1.37 23.6 1.47
192x192 60.1 72.1 0.83 33.9 1.79 35.9 1.65
200x200 58.9 73.0 0.81 34.3 1.72 43.1 1.34
256x256 82.9 86.6 0.96 37.1 2.25 45.5 1.78
257x257 72.1 97.3 0.74 39.5 1.85 51.8 1.38
384x384 133.2 144.7 0.92 44.6 2.99 61.0 2.15
500x500 168.2 190.5 0.88 47.8 3.53 72.0 2.31
512x512 179.2 158.1 1.13 44.5 4.03 63.1 2.81
768x768 260.4 255.9 1.02 59.9 4.34 74.3 3.50
1000x1000 314.7 373.0 0.84 75.2 4.19 87.2 3.59
1001x1001 286.3 355.2 0.81 75.2 3.81 85.8 3.33
1024x1024 290.0 237.4 1.22 69.1 4.20 76.4 3.77
1536x1536 382.7 387.7 0.99 88.1 4.35 86.6 4.42
2048x2048 351.7 336.6 1.04 94.8 3.71 84.2 4.17
3072x3072 327.6 378.1 0.87 106.4 3.07 90.3 3.63
4096x4096 316.5 384.5 0.82 104.1 3.05 83.2 3.79
4097x4097 255.1 440.9 0.58 105.8 2.42 84.2 3.03
4096x8 20.2 9.9 2.04 9.8 2.09 9.9 2.03
4096x64 28.3 64.8 0.44 15.4 1.84 21.2 1.33
4096x256 87.8 121.7 0.72 34.6 2.54 43.9 2.00
4096x1024 232.0 293.3 0.79 72.4 3.19 77.5 2.99
10000x8 20.6 12.8 1.61 9.9 2.07 9.7 2.09
10000x100 44.0 57.8 0.76 21.1 2.08 22.8 1.93
10000x1000 231.4 299.8 0.77 75.0 3.08 83.0 2.79
10000x4000 326.6 408.9 0.80 108.9 3.00 87.6 3.73
100000x8 19.2 17.6 1.10 9.7 1.98 9.1 2.09
100000x64 27.2 50.0 0.54 15.5 1.75 19.0 1.43
100000x256 78.3 119.5 0.65 35.0 2.24 41.4 1.89
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.74 0.3 0.78 0.2 1.50
3x3 0.4 0.2 2.13 0.5 0.85 0.3 1.52
4x4 0.7 0.4 1.88 0.8 0.86 0.5 1.49
6x6 1.3 0.8 1.65 1.5 0.89 0.8 1.57
8x8 2.0 1.3 1.51 2.2 0.90 1.2 1.62
12x12 3.8 2.7 1.38 3.8 0.98 2.2 1.70
16x16 5.5 4.3 1.29 5.1 1.08 3.1 1.78
24x24 8.3 7.4 1.11 6.6 1.26 4.6 1.79
32x32 10.0 10.2 0.97 7.6 1.33 5.8 1.73
48x48 12.9 5.9 2.09 8.3 1.56 9.2 1.40
64x64 9.0 9.7 0.93 12.3 0.73 9.7 0.93
96x96 18.7 14.7 1.27 17.2 1.09 12.8 1.46
100x100 14.8 13.7 1.07 17.2 0.86 13.1 1.13
128x128 23.1 20.5 1.13 20.2 1.15 13.8 1.68
192x192 37.0 36.1 1.03 25.5 1.45 21.5 1.72
200x200 35.6 37.4 0.95 26.7 1.34 25.5 1.40
256x256 48.0 45.0 1.07 31.7 1.52 25.0 1.93
257x257 43.1 48.3 0.89 30.6 1.40 29.8 1.45
384x384 72.9 78.1 0.93 43.6 1.68 33.1 2.20
500x500 87.2 104.3 0.84 57.0 1.54 39.4 2.21
512x512 83.3 82.1 1.01 49.9 1.68 35.0 2.38
768x768 120.6 131.7 0.92 63.8 1.90 41.0 2.94
1000x1000 140.7 187.5 0.75 82.3 1.71 45.6 3.09
1001x1001 131.4 149.9 0.88 82.2 1.60 45.0 2.92
1024x1024 125.9 125.3 1.00 69.4 1.82 40.9 3.07
1536x1536 141.4 145.7 0.97 52.2 2.71 45.8 3.08
2048x2048 124.1 130.2 0.95 45.1 2.75 43.6 2.85
3072x3072 143.9 128.0 1.13 46.0 3.13 44.5 3.24
4096x4096 143.0 177.1 0.81 62.7 2.28 44.9 3.19
4097x4097 123.3 191.8 0.64 64.5 1.93 43.5 2.84
4096x8 10.3 6.9 1.49 7.1 1.44 7.1 1.44
4096x64 15.2 35.3 0.43 14.5 1.05 12.2 1.24
4096x256 46.5 83.9 0.55 23.3 1.99 24.7 1.88
4096x1024 106.6 114.6 0.93 35.9 2.97 41.8 2.55
10000x8 10.0 8.0 1.26 7.0 1.45 6.8 1.46
10000x100 22.2 45.7 0.49 17.8 1.24 12.2 1.83
10000x1000 117.8 116.9 1.01 38.7 3.05 41.6 2.83
10000x4000 176.8 190.2 0.93 112.6 1.57 43.8 4.04
100000x8 9.6 10.9 0.88 6.8 1.41 6.5 1.47
100000x64 13.5 27.4 0.49 13.9 0.97 10.5 1.29
100000x256 40.3 59.6 0.68 28.0 1.44 22.1 1.83
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.9 0.2 3.75 0.6 1.46 0.7 1.32
3 0.8 0.4 1.86 0.5 1.56 0.6 1.29
4 1.1 0.7 1.47 0.7 1.55 0.9 1.22
6 1.7 1.2 1.45 1.1 1.51 1.4 1.19
8 2.4 1.9 1.29 1.6 1.44 2.1 1.18
12 4.0 3.0 1.33 2.4 1.61 3.1 1.29
16 5.6 4.0 1.39 3.2 1.75 4.1 1.36
24 8.4 5.9 1.39 5.0 1.68 6.4 1.33
32 11.3 8.0 1.40 6.3 1.75 8.7 1.30
48 16.7 9.6 1.74 8.8 1.92 10.0 1.64
64 18.1 10.3 1.75 10.2 1.76 11.8 1.53
96 24.0 14.0 1.71 10.4 2.31 14.8 1.61
100 23.2 11.5 2.00 10.6 2.18 14.6 1.58
128 32.1 15.1 2.11 11.6 2.77 16.3 1.96
192 38.9 18.1 2.15 14.1 2.78 19.7 1.97
200 39.6 16.4 2.42 14.4 2.79 19.2 2.05
256 43.5 17.0 2.54 15.5 2.81 20.9 2.08
257 42.7 15.4 2.76 15.6 2.73 21.1 2.02
384 49.7 20.0 2.49 16.7 2.96 23.2 2.15
500 53.8 19.7 2.72 17.7 3.05 25.1 2.15
512 52.8 20.1 2.63 15.5 3.42 24.4 2.15
768 57.6 18.8 3.05 18.1 3.19 26.0 2.23
1000 62.1 19.4 3.22 17.8 3.48 27.6 2.25
1001 53.8 22.3 2.41 18.7 2.88 27.5 1.96
1024 59.9 19.1 3.12 18.3 3.29 26.7 2.24
1536 63.0 22.9 2.75 16.6 3.80 26.7 2.36
2048 63.0 20.1 3.15 14.8 4.25 27.1 2.32
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 1.0 0.2 4.34 0.6 1.57 0.7 1.38
3 0.8 0.4 1.74 0.5 1.79 0.6 1.47
4 1.0 0.6 1.57 0.6 1.56 0.8 1.22
6 1.5 1.1 1.40 1.0 1.52 1.2 1.26
8 2.1 1.6 1.35 1.4 1.49 1.7 1.25
12 3.5 2.5 1.40 2.2 1.57 2.4 1.44
16 4.8 3.3 1.48 2.9 1.63 3.2 1.50
24 7.2 5.0 1.45 4.8 1.49 4.8 1.49
32 9.2 6.7 1.36 6.2 1.48 5.8 1.63
48 12.9 6.2 2.09 8.4 1.54 7.7 1.65
64 15.6 7.7 2.03 9.8 1.60 9.4 1.64
96 18.3 10.4 1.74 12.1 1.51 10.7 1.70
100 18.5 10.4 1.78 12.1 1.53 11.6 1.60
128 20.7 11.8 1.75 12.8 1.62 12.8 1.62
192 23.0 13.6 1.66 13.2 1.74 13.8 1.67
200 23.4 14.7 1.55 13.5 1.74 13.4 1.75
256 23.1 15.7 1.47 12.6 1.84 15.9 1.46
257 21.6 14.7 1.46 14.7 1.47 15.9 1.36
384 25.5 18.0 1.42 13.4 1.90 15.4 1.66
500 27.4 19.5 1.40 16.4 1.68 19.1 1.43
512 26.4 17.5 1.51 16.0 1.65 17.4 1.51
768 27.9 18.3 1.52 16.7 1.67 19.6 1.42
1000 29.5 19.0 1.55 17.7 1.67 20.8 1.42
1001 24.4 21.4 1.14 16.0 1.53 20.8 1.18
1024 28.3 20.5 1.38 16.7 1.69 20.2 1.40
1536 29.2 21.1 1.39 17.2 1.69 20.1 1.45
2048 27.3 19.3 1.41 14.7 1.86 20.6 1.32
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.61 0.4 6.36 0.4 6.60
3x3 1.5 0.3 4.53 0.6 2.27 0.7 2.11
4x4 2.0 0.6 3.30 1.0 2.09 1.1 1.86
6x6 2.1 1.3 1.62 1.7 1.29 1.9 1.14
8x8 2.5 2.2 1.13 2.3 1.09 2.7 0.93
12x12 2.8 4.1 0.70 2.8 1.01 4.3 0.66
16x16 5.2 5.6 0.95 3.4 1.50 5.5 0.94
24x24 7.4 8.5 0.87 4.6 1.57 7.8 0.95
32x32 9.5 12.8 0.74 6.3 1.49 11.1 0.87
48x48 14.6 19.6 0.75 8.7 1.68 18.2 0.80
64x64 20.9 30.3 0.69 11.6 1.80 26.4 0.79
96x96 38.6 36.4 1.06 12.0 3.23 35.8 1.06
100x100 36.8 37.0 1.00 11.7 3.14 36.5 1.01
128x128 51.1 48.0 1.06 16.7 3.07 46.0 1.11
192x192 85.7 88.0 0.97 23.3 3.67 49.2 1.75
200x200 86.6 92.9 0.93 23.9 3.64 50.0 1.73
256x256 100.7 104.9 0.96 25.9 3.89 48.5 2.07
257x257 104.4 122.1 0.86 26.7 3.91 56.5 1.85
384x384 152.8 173.0 0.89 28.4 5.38 63.0 2.42
500x500 191.2 246.2 0.77 30.9 6.19 77.1 2.48
512x512 175.9 190.3 0.92 30.2 5.81 64.5 2.73
768x768 235.7 301.5 0.79 29.6 7.97 77.2 3.04
1000x1000 293.5 463.3 0.63 31.5 9.32 96.1 3.06
1001x1001 280.1 445.2 0.63 31.5 8.88 95.5 2.93
1024x1024 253.2 311.3 0.81 31.5 8.03 80.7 3.14
1536x1536 322.8 486.9 0.66 19.2 16.73 94.9 3.41
2048x2048 296.5 407.0 0.73 14.3 20.66 93.7 3.16
4096x64 119.9 149.0 0.80 26.1 4.59 62.7 1.89
4096x256 286.1 283.5 1.01 28.2 10.14 105.2 2.71
4096x1024 402.8 464.7 0.87 25.4 15.86 118.5 3.40
10000x8 32.1 31.6 1.00 15.6 2.07 29.5 1.09
10000x100 184.2 260.4 0.71 38.4 4.80 70.1 2.60
10000x1000 534.8 722.5 0.74 29.4 18.47 169.1 3.16
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.2 0.1 18.78 0.4 5.69 0.4 6.30
3x3 1.1 0.3 3.78 0.6 1.93 0.6 1.86
4x4 1.6 0.6 2.54 0.9 1.85 0.9 1.75
6x6 1.7 1.2 1.49 1.5 1.16 1.6 1.07
8x8 1.8 1.9 0.92 2.1 0.89 2.2 0.82
12x12 2.1 3.4 0.63 3.1 0.68 3.3 0.64
16x16 3.5 4.7 0.74 4.0 0.87 4.3 0.89
24x24 4.7 7.3 0.62 5.3 0.90 5.7 0.83
32x32 6.6 10.7 0.61 10.2 0.65 9.5 0.71
48x48 9.8 13.3 0.73 13.5 0.73 14.4 0.68
64x64 14.3 18.8 0.75 21.8 0.66 20.5 0.70
96x96 23.4 27.8 0.86 27.7 0.84 27.9 0.84
100x100 24.5 30.4 0.79 29.5 0.83 28.9 0.85
128x128 32.5 38.2 0.85 37.1 0.88 35.2 0.93
192x192 50.1 68.7 0.73 40.4 1.24 38.2 1.31
200x200 51.4 72.8 0.71 42.4 1.21 38.2 1.35
256x256 60.6 77.2 0.79 43.1 1.41 38.9 1.56
257x257 61.1 88.4 0.69 44.9 1.36 43.7 1.40
384x384 87.3 127.0 0.69 48.7 1.77 50.9 1.72
500x500 107.8 180.9 0.60 54.7 1.98 59.5 1.81
512x512 99.3 134.2 0.74 49.8 1.98 51.1 1.94
768x768 131.0 212.4 0.62 55.1 2.37 63.7 2.06
1000x1000 157.6 322.1 0.49 61.5 2.56 74.6 2.11
1001x1001 150.4 279.9 0.54 60.8 2.47 75.4 2.00
1024x1024 132.0 216.9 0.61 55.9 2.36 63.3 2.09
1536x1536 154.2 244.9 0.63 56.1 2.76 75.5 2.04
2048x2048 110.2 144.1 0.77 39.7 2.78 69.1 1.59
4096x64 66.8 100.2 0.67 32.1 2.09 36.6 1.83
4096x256 154.2 185.9 0.83 39.4 3.90 62.1 2.49
4096x1024 195.4 250.4 0.78 43.9 4.39 75.1 2.61
10000x8 13.6 23.2 0.59 17.4 0.78 20.7 0.65
10000x100 94.1 157.2 0.60 44.8 2.11 37.6 2.50
10000x1000 301.8 329.2 0.92 58.7 5.12 93.1 3.25
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.6 0.1 19.09 0.4 7.16 0.4 6.49
3 1.5 0.3 4.88 0.6 2.65 0.6 2.51
4 2.1 0.5 4.40 0.8 2.53 0.9 2.30
6 3.0 0.9 3.32 1.3 2.25 1.6 1.68
8 4.0 1.4 2.81 2.0 1.96 2.2 1.92
12 5.7 2.1 2.62 2.9 1.93 3.5 1.61
16 7.1 2.5 2.71 3.8 1.86 4.5 1.60
24 9.6 4.3 2.25 5.5 1.77 7.0 1.31
32 11.1 5.7 1.95 7.1 1.62 8.8 1.27
48 13.7 8.1 1.64 9.3 1.49 11.7 1.17
64 14.6 9.9 1.45 11.6 1.26 13.8 1.08
96 17.4 11.6 1.50 10.8 1.64 16.4 1.06
100 17.8 12.2 1.44 10.9 1.65 17.0 1.05
128 18.9 14.6 1.29 14.4 1.35 19.8 0.95
192 20.5 27.3 0.73 21.9 0.94 32.2 0.63
200 20.7 28.3 0.71 23.4 0.89 35.7 0.58
256 20.7 37.9 0.55 26.7 0.78 41.5 0.50
257 20.4 37.2 0.55 27.6 0.74 42.1 0.49
384 18.7 59.1 0.32 33.8 0.55 58.6 0.32
500 23.1 75.7 0.30 42.1 0.55 71.3 0.33
512 22.5 43.7 0.52 30.7 0.72 48.8 0.48
768 24.3 90.9 0.28 46.1 0.53 83.2 0.29
1000 25.6 121.6 0.21 55.9 0.46 106.9 0.24
1001 25.5 120.3 0.21 55.6 0.44 107.9 0.24
1024 19.6 71.3 0.28 42.6 0.46 76.4 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.5 0.1 22.26 0.4 7.21 0.4 6.16
3 1.2 0.2 4.65 0.5 2.48 0.6 2.18
4 1.9 0.4 3.65 0.7 2.55 0.8 2.31
6 2.3 0.8 2.97 1.3 1.94 1.3 1.69
8 2.9 1.2 2.61 2.0 1.47 2.0 1.48
12 4.0 1.8 2.09 3.3 1.24 2.8 1.41
16 4.7 2.3 2.05 4.5 1.05 3.7 1.28
24 6.0 3.6 1.66 6.8 0.88 5.3 1.13
32 6.8 4.7 1.44 8.6 0.80 6.8 0.99
48 7.9 5.9 1.36 12.0 0.66 8.8 0.89
64 8.4 7.1 1.19 14.0 0.60 10.3 0.80
96 9.2 8.2 1.14 12.7 0.72 11.0 0.83
100 9.5 8.7 1.08 13.5 0.70 11.6 0.81
128 9.8 10.3 0.96 15.0 0.65 13.0 0.76
192 9.7 19.1 0.51 20.1 0.49 18.3 0.53
200 10.2 20.6 0.48 22.2 0.46 19.7 0.52
256 10.0 25.2 0.40 26.7 0.37 22.4 0.45
257 9.9 26.0 0.38 27.0 0.37 22.5 0.44
384 10.4 38.1 0.28 39.9 0.26 30.5 0.34
500 10.6 47.1 0.23 51.1 0.21 36.0 0.30
512 10.2 20.5 0.50 22.0 0.46 21.7 0.47
768 10.8 47.1 0.23 46.3 0.23 36.5 0.29
1000 10.7 76.3 0.14 67.7 0.16 51.5 0.21
1001 10.9 75.5 0.14 67.5 0.16 51.2 0.21
1024 7.8 41.3 0.19 38.1 0.20 35.4 0.22