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

Single-threaded BLAS (AXPY, DOT, GEMV, GEMM, TRSM, TRMM, SYMM, SYRK) and LAPACK (POTRF, PSTRF, SYTRF, GETRF, GEQRF, GELS, SYEV, GESDD, GEEV): Eigen master with its SME kernels against Apple Accelerate, Arm Performance Libraries and OpenBLAS on an Apple M4 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, and updated on 2026-10-02 to a re-measurement at master 3cf994918 on macOS 27.0.1. It now shows a full re-measurement of every library and of Eigen at master 674e4a4e5, and adds five operations: TRMM, SYMM, PSTRF, SYTRF and GELS. Against the 2026-10-02 measurement, on the cells both share, Eigen’s rates repeat within 7 % (geometric mean per operation and scalar) except GEEV, 49 % (float) and 71 % (double) faster, and GEQRF, 11 to 14 % faster. The earlier versions of the page and their 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 674e4a4e5 (5.0.1-dev), default configuration, no external BLAS. The measured tree, 0e7c9e40a, is that master plus the comparison harness; the library code under Eigen/ is master’s. -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 2026-10-25 14:15 to 2026-10-26 00:53 (UTC−7): 51 runs, one per operation and library, about 7.4 hours of measurement
Harness benchmarks/comparison/run.py from Eigen merge request !2903 and the commits that add the five new operations, machine profile apple-m4-mac-mini

GEMM at n = 1024 ran at 431 GFLOP/s in double and 1671 in float in Eigen, against 385 and 1668 for Accelerate, 369 and 715 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 86 % of the cells and above 10 % for 3 %.

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.45 busy cores or more during it, or reached 3.0 in any 5 s window; 16 attempts were discarded this way. The CI virtual machine on the host was paused for the whole session. Background services of the logged-in sessions (malware scans, search and photo indexing, mail) kept the machine near those limits at times.

The limits were looser for the first hours. The session started with a rejection limit of 1.35 busy cores on average and 2.0 at the peak, the limits of the September measurement. Another account’s background session on the machine (0.35 to 1.0 busy cores while idle) kept the gate from opening, so the idle threshold at the start of a run was raised to 0.6 of a core from 13:55 on 2026-10-25, and the rejection limits to 1.45 and 3.0 from 14:29, then to 1.6 and 4.5 from 15:17, until the console applications of both accounts were quit at 15:37; the original idle threshold and the limits of 1.45 and 3.0 were then restored for the rest of the session. Three AXPY runs were measured in that window. The Accelerate run is attempt 3 of 7: the attempts agree cell by cell (median difference 0.7 % or less, 90th percentile 3.2 %), and attempt 3, with the lowest peak (2.18 busy cores, mean 1.43), was kept; the runs against Arm Performance Libraries (mean 1.44, peak 3.38) and OpenBLAS (mean 1.42, peak 2.57) were accepted on their first attempts.

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.73 ns per call for Eigen against 2.7 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, sweeps GEMM double, other shapes GEMM float, square GEMM float, sweeps GEMM float, other shapes

TRSM

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

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

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

TRMM

X.noalias() = A.triangularView<Lower>() * B against ?trmm with the m-by-m lower triangle on the left and n columns in B, no transposition, non-unit diagonal; (m(m+1)n) flops, TRSM’s count. ?trmm overwrites B, so the reference arm copies B into the destination and multiplies in place; the Eigen arm writes the product to the destination, which noalias() zero-fills before accumulating. Each arm makes the one pass over the destination its interface requires, and neither allocates inside the timed region.

The same shapes as TRSM: square, then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of columns, then the remaining shapes with 4096 columns against a small triangle.

TRMM double, square TRMM double, sweeps TRMM double, other shapes TRMM float, square TRMM float, sweeps TRMM float, other shapes

SYMM

C.noalias() += A.selfadjointView<Lower>() * B against ?symm (?hemm for a complex scalar) with the m-by-m symmetric matrix stored in its lower triangle, on the left, and n columns in B; (2m^2n) flops, the count of the general product of the same shape. C accumulates across iterations and is never reset, as in GEMM.

The same shapes as TRSM.

SYMM double, square SYMM double, sweeps SYMM double, other shapes SYMM float, square SYMM float, sweeps SYMM float, other shapes

SYRK

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

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

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

POTRF

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

POTRF double POTRF float

PSTRF

LDLT<Ref<MatrixXd>> in place against ?pstrf, lower triangle, symmetric positive definite operand; (n(n-1)(n-2)/3 + 2n(n-1)) flops for both, (n^3/3) to leading order. The two compute different factors of the same pivoted matrix, (P^T A P = L L^T) for LAPACK and (L D L^T) for Eigen, and pivot on the same entry, the largest diagonal element of the remaining Schur complement. Both arms copy the operand into a destination allocated once and factorize the copy, as GETRF does. LDLT::compute also evaluates the operand’s L1 norm for rcond(), which ?pstrf does not. Each result is checked by applying the stored factors to a random vector and comparing with (Ax).

PSTRF double PSTRF float

SYTRF

BunchKaufman<Ref<MatrixXd>> in place against ?sytrf (?hetrf for a complex scalar), lower triangle, symmetric indefinite operand; (n(n-1)(n-2)/3 + 2n(n-1)) flops for both, (n^3/3) to leading order. Both arms copy the operand into a destination allocated once and factorize the copy, as GETRF does; pivot and workspace arrays are set up once per shape. Each result is checked by applying the stored factors, with the pivot blocks of D, to a random vector and comparing with (Ax).

SYTRF double SYTRF float

GETRF

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

GETRF double GETRF float

GEQRF

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

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

GEQRF double, square GEQRF double, sweeps GEQRF float, square GEQRF float, sweeps

GELS

Full-rank least squares (\min \lVert AX - B \rVert) through Householder QR with A m-by-n, m ≥ n, and B m-by-nrhs: HouseholderQR<Ref<MatrixXd>> followed by qr.solve(B) against ?gels (trans = 'N'); (2mn^2 - 2n^3/3) flops for the factorization plus (\text{nrhs},(4mn - n^2)) for applying (Q^T) and solving with R. ?gels overwrites A and B, so the reference arm copies both into destinations allocated once. The Eigen arm factorizes a copy of A through the in-place HouseholderQR and writes qr.solve(B) to a preallocated X; solve() copies B into a temporary it allocates, which is the cost of the expression a user writes, so it is timed. The solution is checked through the normal equations on a well-conditioned operand.

Square shapes with one right-hand side, then the tall-skinny sweeps with m fixed at 4096, 10000 and 100000, then right-hand-side sweeps: 16 to 256 columns of B at m = n = 1024 and 16 to 1024 at 4096 by 256.

GELS double, square GELS double, sweeps GELS float, square GELS float, sweeps

SYEV

SelfAdjointEigenSolver with eigenvectors against ?syev (jobz = 'V', lower triangle), the like-for-like pair: tridiagonalization followed by implicit QR iteration on both sides; (9n^3) flops, the count of that algorithm (Golub & Van Loan, section 8.3.3). Neither works in place: the solver copies the operand internally and the reference arm pays the same one copy. Sizes to 2048, 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, sweeps GESDD float, square GESDD float, sweeps

GEEV

EigenSolver with eigenvectors against ?geev (jobvr = 'V'), a dense random nonsymmetric operand: Hessenberg reduction, QR iteration to the Schur form and back-substitution for the eigenvectors on both sides; (25n^3) flops, the count of the Hessenberg QR algorithm with Schur vectors (Golub & Van Loan, section 7.5.6). Sizes to 1024, where a call of EigenSolver takes 2.0 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.06 1.21 0.62 0.29 0.94
AXPY float Arm Performance Libraries 6.49 1.80 0.91 0.75 2.55
AXPY float OpenBLAS 3.97 1.78 1.11 1.03 3.01
AXPY double Apple Accelerate 3.39 1.02 0.41 0.32 0.90
AXPY double Arm Performance Libraries 5.02 1.38 0.80 0.95 1.98
AXPY double OpenBLAS 3.99 1.38 0.74 1.09 2.13
DOT float Apple Accelerate 3.32 2.09 1.15 0.52 0.98
DOT float Arm Performance Libraries 4.30 2.22 1.54 2.11 5.43
DOT float OpenBLAS 12.73 6.95 1.67 1.56 3.88
DOT double Apple Accelerate 3.57 1.51 1.01 0.58 0.92
DOT double Arm Performance Libraries 4.96 1.71 1.35 2.44 2.82
DOT double OpenBLAS 13.60 3.26 1.34 2.57 2.74
GEMV float Apple Accelerate 1.75 0.69 0.88 0.97 –
GEMV float Arm Performance Libraries 3.43 15.27 43.28 40.54 –
GEMV float OpenBLAS 2.46 1.37 5.73 1.88 –
GEMV double Apple Accelerate 2.30 0.53 0.78 1.17 –
GEMV double Arm Performance Libraries 2.76 1.96 6.40 1.30 –
GEMV double OpenBLAS 3.73 2.91 8.38 1.42 –
GEMM float Apple Accelerate 2.20 0.80 0.99 1.11 –
GEMM float Arm Performance Libraries 2.36 5.02 4.04 1.76 –
GEMM float OpenBLAS 2.33 4.70 14.81 14.32 –
GEMM double Apple Accelerate 1.77 0.89 1.04 1.16 –
GEMM double Arm Performance Libraries 3.23 2.98 1.51 1.23 –
GEMM double OpenBLAS 1.99 5.14 8.26 7.77 –
TRSM float Apple Accelerate 0.71 0.85 0.48 0.80 –
TRSM float Arm Performance Libraries 2.34 2.37 3.07 7.09 –
TRSM float OpenBLAS 3.97 4.48 4.11 7.21 –
TRSM double Apple Accelerate 0.80 0.97 0.60 0.99 –
TRSM double Arm Performance Libraries 2.01 1.63 2.72 5.38 –
TRSM double OpenBLAS 2.32 2.22 2.86 5.17 –
TRMM float Apple Accelerate 0.07 0.51 0.65 0.59 –
TRMM float Arm Performance Libraries 0.46 1.18 6.00 7.48 –
TRMM float OpenBLAS 0.15 1.37 6.70 7.93 –
TRMM double Apple Accelerate 0.25 0.60 0.71 0.83 –
TRMM double Arm Performance Libraries 0.75 1.56 4.53 5.50 –
TRMM double OpenBLAS 0.27 1.53 4.90 5.83 –
SYMM float Apple Accelerate 0.34 0.47 0.88 1.02 –
SYMM float Arm Performance Libraries 0.70 2.32 4.41 1.65 –
SYMM float OpenBLAS 0.40 2.55 12.74 13.14 –
SYMM double Apple Accelerate 0.41 0.80 0.99 1.15 –
SYMM double Arm Performance Libraries 0.67 1.93 1.39 1.27 –
SYMM double OpenBLAS 0.36 3.04 7.65 7.82 –
SYRK float Apple Accelerate 0.20 0.36 0.71 0.91 –
SYRK float Arm Performance Libraries 1.48 2.94 10.72 12.14 –
SYRK float OpenBLAS 0.59 2.19 10.14 12.63 –
SYRK double Apple Accelerate 0.40 0.38 0.83 1.03 –
SYRK double Arm Performance Libraries 1.59 2.65 6.93 6.71 –
SYRK double OpenBLAS 0.60 2.49 7.07 7.09 –
POTRF float Apple Accelerate 0.61 0.42 0.35 0.64 –
POTRF float Arm Performance Libraries 0.98 1.54 2.28 4.86 –
POTRF float OpenBLAS 2.17 1.68 2.15 5.01 –
POTRF double Apple Accelerate 0.69 0.62 0.47 1.06 –
POTRF double Arm Performance Libraries 1.09 1.43 1.59 2.63 –
POTRF double OpenBLAS 2.33 1.40 2.10 4.18 –
PSTRF float Apple Accelerate 1.91 1.17 1.88 1.99 –
PSTRF float Arm Performance Libraries 1.83 3.75 6.52 5.63 –
PSTRF float OpenBLAS 1.51 2.48 3.78 4.58 –
PSTRF double Apple Accelerate 2.03 2.07 1.59 1.60 –
PSTRF double Arm Performance Libraries 1.93 2.21 2.38 3.86 –
PSTRF double OpenBLAS 1.67 1.77 2.10 3.85 –
SYTRF float Apple Accelerate 1.94 1.16 1.80 1.12 –
SYTRF float Arm Performance Libraries 2.34 2.39 5.54 3.08 –
SYTRF float OpenBLAS 1.48 2.30 5.31 3.33 –
SYTRF double Apple Accelerate 2.03 1.58 1.93 1.24 –
SYTRF double Arm Performance Libraries 2.47 1.39 1.51 2.03 –
SYTRF double OpenBLAS 1.48 1.63 2.26 2.44 –
GETRF float Apple Accelerate 1.84 1.19 0.94 1.54 –
GETRF float Arm Performance Libraries 0.77 1.04 2.05 3.20 –
GETRF float OpenBLAS 1.72 2.29 2.50 4.78 –
GETRF double Apple Accelerate 1.99 1.01 0.94 1.38 –
GETRF double Arm Performance Libraries 0.81 0.94 1.89 2.41 –
GETRF double OpenBLAS 2.17 1.66 2.14 3.86 –
GEQRF float Apple Accelerate 1.51 0.93 1.01 1.18 –
GEQRF float Arm Performance Libraries 0.72 1.51 3.28 4.57 –
GEQRF float OpenBLAS 1.36 1.55 2.63 5.32 –
GEQRF double Apple Accelerate 1.64 1.39 1.12 1.32 –
GEQRF double Arm Performance Libraries 0.85 1.27 1.91 3.72 –
GEQRF double OpenBLAS 1.53 1.69 2.70 4.53 –
GELS float Apple Accelerate 2.26 1.46 1.66 1.57 –
GELS float Arm Performance Libraries 1.45 1.94 3.85 4.87 –
GELS float OpenBLAS 1.66 1.92 2.99 5.48 –
GELS double Apple Accelerate 2.40 1.57 1.52 1.63 –
GELS double Arm Performance Libraries 1.55 1.29 2.04 3.75 –
GELS double OpenBLAS 1.75 1.72 2.90 4.55 –
SYEV float Apple Accelerate 1.51 1.77 2.90 2.94 –
SYEV float Arm Performance Libraries 1.42 2.07 3.13 3.99 –
SYEV float OpenBLAS 1.13 1.59 2.16 2.30 –
SYEV double Apple Accelerate 1.45 1.50 1.43 1.36 –
SYEV double Arm Performance Libraries 1.33 1.45 1.64 1.75 –
SYEV double OpenBLAS 1.14 1.37 1.47 1.37 –
GESDD float Apple Accelerate 2.40 0.95 0.91 0.73 –
GESDD float Arm Performance Libraries 1.85 2.35 6.16 19.90 –
GESDD float OpenBLAS 1.55 0.99 2.61 3.49 –
GESDD double Apple Accelerate 2.10 0.82 0.70 0.77 –
GESDD double Arm Performance Libraries 1.51 0.83 1.96 3.05 –
GESDD double OpenBLAS 1.46 0.84 1.86 1.99 –
GEEV float Apple Accelerate 5.20 2.44 0.55 – –
GEEV float Arm Performance Libraries 3.16 2.23 0.89 – –
GEEV float OpenBLAS 2.69 1.70 0.53 – –
GEEV double Apple Accelerate 4.97 2.16 0.51 – –
GEEV double Arm Performance Libraries 2.61 1.24 0.51 – –
GEEV double OpenBLAS 2.60 1.55 0.61 – –

Observations

  • Against Accelerate. Eigen’s SME GEMM matches Accelerate’s (1.04 to 1.16 in the bands from n = 192 in double) and is ahead of Arm Performance Libraries (1.2 to 1.5 from n = 192 in double, and 2.3 times in float at n = 1024). The vector operations favor Accelerate at the larger sizes: AXPY 0.41 and 0.32 in double from n = 192, DOT 0.58 from n = 1536. Eigen trails Accelerate on SYRK (0.38 to 0.40 up to n = 128), on GESDD (0.70 to 0.82 from n = 24) and on TRMM at every size (0.25 to 0.83).
  • The new operations. PSTRF, SYTRF and GELS are ahead of all three libraries in every band: PSTRF 1.6 to 3.9, SYTRF 1.2 to 2.5 and GELS 1.3 to 4.6 times in double. SYMM is level with Accelerate from n = 192 (0.99 to 1.15). TRMM is 0.6 to 0.8 times Accelerate and 4.5 to 5.8 times Arm Performance Libraries and OpenBLAS above n = 192.
  • OpenBLAS runs the Homebrew build’s vortexm4 kernels without SME; Eigen’s SME level-3 kernels are 5 to 8 times faster in double for GEMM, SYMM, SYRK and TRMM above n = 192.
  • GEEV trails all three libraries at n = 192 to 1024 (0.51 to 0.61 in double); it leads at the small end.

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 logged-in sessions and their background services. Runs that they disturbed beyond the limits above were repeated; smaller disturbances remain in the numbers, and the first three AXPY runs were measured under the looser limits described above.
  • 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, TRMM, SYMM, 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.
  • PSTRF compares two algorithms that pivot on the same entry but produce different factors, (L L^T) and (L D L^T), and charges both the same flop count.

Full tables

GFLOP/s per shape and library, with the Eigen ÷ library ratio. The Eigen column is the median over its three passes; each ratio is formed within the library’s own binary and run.

AXPY float
n Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2 3.9 1.0 3.87 0.6 6.44 1.3 3.03
3 5.8 1.4 4.10 0.9 6.15 1.8 3.28
4 10.4 2.0 5.25 1.2 8.61 1.8 5.77
6 10.8 2.8 3.87 1.7 6.21 2.3 4.76
8 18.8 3.8 4.95 2.6 7.28 4.5 3.94
12 22.2 5.7 3.81 3.4 6.47 4.7 4.71
16 24.4 8.2 3.01 5.0 4.86 7.9 3.09
24 26.5 11.1 2.41 7.2 3.69 10.3 2.57
32 17.7 13.8 1.29 9.4 1.87 12.8 1.38
48 18.4 17.9 1.03 11.9 1.52 12.6 1.46
64 21.9 20.8 1.04 13.7 1.64 9.1 2.42
96 26.0 24.9 1.04 16.7 1.56 15.4 1.70
100 25.9 25.0 1.03 16.0 1.63 15.3 1.73
128 27.1 26.3 1.03 19.2 1.41 17.8 1.53
192 28.3 28.5 0.99 23.2 1.22 20.6 1.37
256 28.9 31.7 0.91 25.6 1.13 22.2 1.31
384 29.5 34.7 0.85 29.7 0.99 24.3 1.22
512 26.5 38.0 0.70 31.4 0.85 25.5 1.04
768 26.9 56.9 0.47 34.4 0.79 26.8 1.00
1000 27.4 58.6 0.47 34.1 0.80 27.1 1.01
1001 27.5 58.1 0.47 34.0 0.81 27.3 1.01
1024 27.2 66.1 0.41 34.3 0.79 27.4 1.01
1536 28.5 101.6 0.28 36.8 0.77 28.4 1.01
2048 29.1 101.1 0.29 37.9 0.77 28.8 1.03
3072 29.8 101.6 0.29 39.3 0.76 29.4 1.01
4096 30.1 102.1 0.29 39.9 0.75 29.6 1.02
6144 30.4 102.3 0.30 41.0 0.74 29.9 1.02
8192 30.6 103.7 0.29 40.7 0.75 29.9 1.02
10000 30.6 102.5 0.30 40.9 0.75 29.8 1.03
12288 30.7 104.2 0.30 41.3 0.74 30.2 1.01
16384 31.0 103.3 0.30 42.8 0.72 28.5 1.09
32768 96.1 103.1 0.93 23.7 4.06 19.2 5.00
65536 96.5 103.6 0.93 23.9 4.03 19.2 5.07
100000 96.6 102.9 0.94 23.9 4.04 19.5 4.96
131072 96.5 103.1 0.93 24.0 4.01 19.2 5.03
262144 97.0 102.9 0.94 24.0 4.07 19.3 5.04
524288 97.3 104.0 0.94 24.0 4.04 19.2 5.07
1000000 97.4 103.1 0.94 21.1 4.62 16.3 5.97
1048576 97.3 104.1 0.94 23.8 3.97 18.6 5.22
2097152 22.7 36.0 0.63 23.7 0.96 19.3 1.18
4194304 17.8 16.6 1.07 18.0 1.00 18.5 0.96
8388608 17.6 15.4 1.14 17.6 1.00 17.4 1.01
16777216 15.8 15.3 1.03 15.8 1.00 16.2 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.2 1.0 5.37 0.6 8.33 1.3 4.05
3 7.1 1.5 4.85 1.0 7.26 1.8 4.02
4 9.7 1.9 5.08 1.3 7.15 1.8 5.34
6 11.0 3.0 3.71 1.8 5.83 2.2 5.20
8 12.4 3.9 3.19 2.6 4.71 2.7 4.52
12 13.3 5.4 2.48 3.7 3.57 3.5 3.84
16 8.9 6.7 1.32 4.6 1.90 4.3 2.07
24 9.4 8.9 1.06 6.1 1.54 4.4 2.14
32 11.2 10.3 1.08 6.9 1.65 8.7 1.29
48 13.0 12.3 1.07 8.4 1.52 8.2 1.59
64 13.6 13.1 1.05 9.6 1.41 8.0 1.71
96 14.2 14.3 0.99 11.3 1.25 12.9 1.10
100 14.2 14.5 0.97 11.5 1.23 12.5 1.14
128 14.5 15.8 0.92 12.6 1.16 14.5 1.00
192 14.8 17.2 0.86 14.5 1.02 16.2 0.95
256 13.2 18.9 0.70 15.5 0.85 16.9 0.78
384 13.4 28.7 0.47 17.3 0.78 18.4 0.73
512 13.6 33.1 0.41 17.3 0.80 19.2 0.71
768 14.2 50.8 0.28 19.1 0.75 20.1 0.70
1000 14.5 50.5 0.29 19.5 0.74 20.6 0.70
1001 14.5 49.7 0.29 18.9 0.77 20.8 0.70
1024 14.6 50.4 0.29 19.7 0.74 20.8 0.70
1536 14.9 50.9 0.29 20.4 0.73 21.3 0.70
2048 15.1 51.1 0.30 20.7 0.73 21.6 0.70
3072 15.2 52.8 0.29 21.1 0.72 18.0 0.85
4096 15.3 51.4 0.30 21.7 0.71 12.7 1.21
6144 15.3 51.3 0.30 21.4 0.72 18.1 0.85
8192 15.5 51.9 0.30 21.5 0.72 17.5 0.89
10000 12.7 51.4 0.25 11.7 1.08 10.9 1.16
12288 11.7 51.7 0.23 11.8 0.99 11.0 1.08
16384 48.1 52.1 0.92 11.9 4.03 10.9 4.41
32768 48.2 51.6 0.93 11.9 4.04 10.9 4.44
65536 48.3 51.5 0.94 12.0 4.05 10.9 4.43
100000 48.3 51.7 0.94 12.0 4.01 10.8 4.46
131072 48.3 51.6 0.94 12.0 4.03 10.9 4.43
262144 48.6 52.0 0.94 12.0 4.03 10.8 4.51
524288 48.7 52.0 0.94 11.9 3.95 10.4 4.67
1000000 11.3 21.5 0.53 11.8 0.96 10.7 1.06
1048576 11.4 19.0 0.60 11.8 0.96 10.8 1.05
2097152 8.9 8.3 1.07 9.3 0.97 8.8 1.00
4194304 8.8 7.7 1.14 8.8 1.00 8.7 1.01
8388608 7.9 7.6 1.04 7.9 0.99 8.1 0.97
16777216 7.7 7.6 1.02 7.7 0.99 7.7 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.91 0.9 6.25 0.3 16.78
3 6.9 1.7 4.03 1.2 5.69 0.5 14.57
4 8.6 2.7 3.25 1.8 4.74 0.6 13.74
6 9.9 3.5 2.86 2.4 4.04 0.9 11.14
8 13.4 4.6 2.94 3.6 3.73 1.1 11.90
12 19.8 6.1 3.31 5.1 3.86 1.6 12.44
16 18.9 7.6 2.50 6.8 2.78 1.9 9.77
24 27.8 10.2 2.73 9.7 2.86 2.5 10.89
32 37.0 12.9 2.86 11.9 3.11 3.1 12.02
48 46.4 17.7 2.65 16.4 2.84 3.4 13.59
64 46.8 21.6 2.17 20.3 2.30 9.4 4.99
96 45.8 28.4 1.61 26.2 1.75 8.5 5.37
100 45.9 28.9 1.59 26.4 1.74 8.1 5.67
128 46.6 30.5 1.53 30.9 1.51 16.1 2.89
192 46.7 33.6 1.39 34.4 1.36 20.8 2.25
256 46.7 36.5 1.28 34.0 1.37 23.4 2.00
384 46.7 39.0 1.20 32.8 1.42 27.2 1.72
512 46.6 40.5 1.15 29.9 1.56 29.7 1.57
768 46.1 42.3 1.09 27.5 1.68 32.2 1.43
1000 44.8 42.5 1.06 26.7 1.68 27.9 1.60
1001 44.4 42.2 1.05 26.5 1.68 27.6 1.61
1024 44.8 42.4 1.06 26.9 1.66 33.4 1.34
1536 43.1 41.7 1.04 25.1 1.72 34.9 1.24
2048 41.4 45.0 0.92 22.2 1.86 14.6 2.84
3072 39.6 61.1 0.65 20.8 1.90 36.4 1.09
4096 38.0 74.7 0.52 20.0 1.44 20.4 1.87
6144 37.7 96.1 0.39 19.6 1.93 24.0 1.56
8192 37.1 112.1 0.33 19.2 1.93 26.5 1.40
10000 36.6 125.5 0.29 18.8 1.95 36.7 1.00
12288 36.6 134.4 0.27 19.0 1.93 37.3 0.98
16384 129.0 149.2 0.89 18.7 6.89 36.3 3.55
32768 163.2 178.8 0.93 17.9 9.11 25.5 6.40
65536 189.0 199.0 0.96 17.7 10.64 26.2 7.22
100000 199.4 207.0 0.97 17.6 11.30 27.2 7.32
131072 204.4 205.9 0.98 17.6 11.65 26.8 7.64
262144 212.5 214.9 0.99 17.5 12.20 27.2 7.78
524288 217.6 218.1 1.00 17.6 12.44 27.0 8.05
1000000 219.3 220.2 0.99 17.8 12.29 23.7 9.32
1048576 220.4 222.0 1.00 17.6 12.53 27.0 7.25
2097152 28.4 35.0 0.83 16.7 1.58 26.4 1.08
4194304 20.3 18.6 1.05 16.8 1.21 21.9 0.97
8388608 19.1 18.4 1.04 17.9 1.07 18.4 1.02
16777216 18.5 18.1 1.02 17.4 1.07 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 5.4 1.5 3.71 0.8 6.69 0.3 16.83
3 8.1 1.9 4.30 1.2 6.96 0.5 16.99
4 10.8 2.5 4.27 1.7 6.28 0.6 17.65
6 12.1 3.3 3.75 2.3 5.25 0.9 13.72
8 12.9 4.1 3.20 3.2 4.04 1.1 11.32
12 17.6 5.4 3.26 4.6 3.82 1.5 10.99
16 19.3 6.8 2.79 6.4 3.11 1.9 10.00
24 20.6 9.2 2.23 8.2 2.50 2.5 8.11
32 21.4 11.2 1.91 11.0 1.95 4.6 4.61
48 21.5 14.4 1.50 14.0 1.53 5.5 3.92
64 22.3 15.7 1.42 11.2 1.99 7.9 2.82
96 22.6 17.6 1.28 15.6 1.45 10.2 2.22
100 22.5 18.0 1.25 15.8 1.42 10.1 2.22
128 22.8 18.5 1.23 16.6 1.37 11.8 1.93
192 22.9 19.7 1.16 17.3 1.32 13.8 1.66
256 23.0 20.5 1.12 17.7 1.30 14.8 1.56
384 23.0 21.2 1.08 18.1 1.27 16.0 1.44
512 22.4 21.5 1.04 18.4 1.22 16.6 1.35
768 21.6 21.1 1.02 18.6 1.16 17.3 1.25
1000 20.8 22.3 0.91 18.6 1.12 17.4 1.19
1001 20.7 22.3 0.91 18.6 1.11 17.4 1.19
1024 20.7 22.9 0.89 7.3 2.85 17.6 1.18
1536 19.7 30.9 0.64 18.9 1.04 18.0 1.09
2048 19.2 37.8 0.51 10.5 1.83 7.0 2.74
3072 18.8 48.5 0.39 12.2 1.55 18.4 1.02
4096 18.6 56.6 0.33 13.6 1.36 10.3 1.81
6144 18.4 67.7 0.27 15.1 1.22 15.0 1.23
8192 64.6 75.0 0.89 15.7 4.10 15.3 4.21
10000 70.1 79.8 0.91 16.1 4.34 15.2 4.59
12288 75.2 84.4 0.92 13.3 5.61 12.9 5.82
16384 81.8 89.8 0.93 13.0 6.28 12.7 6.44
32768 94.5 99.7 0.96 13.4 7.07 13.1 7.21
65536 102.3 103.1 0.98 13.6 7.53 13.4 7.64
100000 105.5 106.2 0.98 13.8 7.63 13.7 7.72
131072 106.4 107.5 0.99 13.7 7.79 13.6 7.78
262144 108.9 109.2 0.99 13.7 7.99 13.5 8.06
524288 110.3 111.0 1.00 13.5 8.19 13.5 6.20
1000000 14.6 33.0 0.44 13.2 1.11 13.3 1.10
1048576 14.6 18.3 0.79 13.0 1.13 13.4 1.09
2097152 9.3 9.2 1.01 10.2 0.91 10.9 0.88
4194304 9.5 9.2 1.04 9.2 1.03 9.3 1.01
8388608 9.2 9.0 1.03 9.1 1.01 9.1 1.00
16777216 9.1 8.7 1.05 9.0 1.01 9.0 1.01
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.08 0.6 2.42 0.4 2.94
3x3 2.4 1.2 1.94 1.2 2.07 1.0 2.39
4x4 5.0 2.6 1.89 2.1 2.35 1.8 2.81
6x6 9.0 4.1 2.20 4.3 2.11 3.7 2.47
8x8 15.3 9.5 1.60 7.3 2.11 6.2 2.47
12x12 27.4 18.6 1.47 2.6 10.36 11.9 2.32
16x16 37.1 29.0 1.28 3.6 10.31 19.0 1.98
24x24 48.6 46.2 1.05 5.0 9.80 28.6 1.70
32x32 66.1 58.0 1.14 5.9 11.28 37.7 1.75
48x48 57.5 54.7 0.97 6.8 8.59 51.0 1.13
64x64 74.0 154.4 0.48 7.0 10.47 58.6 1.26
96x96 73.3 149.5 0.49 2.3 32.51 68.9 1.06
100x100 58.1 140.9 0.41 2.3 25.21 69.1 0.84
128x128 169.9 272.7 0.62 7.1 23.83 69.4 2.33
192x192 245.2 256.3 0.96 6.4 38.31 46.6 5.27
200x200 202.2 170.6 1.19 6.4 31.48 48.4 3.98
256x256 304.4 350.7 0.87 5.9 51.62 45.8 6.60
257x257 174.5 223.1 0.78 6.7 26.07 40.7 4.27
384x384 277.1 347.3 0.80 5.8 48.14 46.1 5.94
500x500 274.0 243.6 1.12 6.4 42.67 46.5 5.88
512x512 305.6 419.2 0.73 6.6 46.46 46.4 6.54
768x768 310.2 401.6 0.77 5.7 54.79 46.8 6.55
1000x1000 276.3 307.7 0.90 5.6 49.25 47.5 5.81
1001x1001 273.5 299.1 0.91 5.6 49.24 44.0 6.21
1024x1024 304.0 422.5 0.72 6.3 48.52 44.0 6.92
1536x1536 258.3 321.8 0.80 2.0 148.16 44.7 5.67
2048x2048 67.7 63.3 1.03 1.7 43.91 42.6 1.59
3072x3072 36.7 36.7 1.00 1.7 21.15 25.0 1.47
4096x4096 36.7 35.5 1.03 0.9 39.75 28.0 1.31
4097x4097 35.6 35.0 1.02 1.8 20.02 26.1 1.36
8x10000 37.4 16.6 2.26 5.8 6.47 10.5 3.56
100x10000 43.5 147.2 0.30 5.7 7.70 50.6 0.86
1000x10000 36.3 35.9 1.01 1.9 18.70 29.4 1.23
4000x10000 36.3 36.1 1.00 1.9 19.50 23.3 1.55
10000x8 250.9 264.3 0.95 6.5 38.85 42.5 5.83
10000x100 341.4 382.6 0.89 6.8 50.38 41.9 8.13
10000x1000 36.6 36.5 1.00 1.7 22.13 35.7 1.02
10000x4000 36.2 36.1 1.00 1.8 19.81 28.0 1.30
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.18 0.5 2.93 0.4 3.84
3x3 2.7 1.2 2.21 1.1 2.46 0.8 3.32
4x4 5.2 2.7 1.92 1.9 2.68 1.5 3.45
6x6 10.7 2.8 3.77 4.1 2.61 2.2 4.73
8x8 15.8 9.2 1.72 4.0 3.94 4.2 3.78
12x12 20.9 4.7 4.41 7.1 2.95 6.0 3.48
16x16 27.9 21.9 1.27 13.3 2.10 7.6 3.67
24x24 30.5 28.2 1.08 17.7 1.72 9.7 3.13
32x32 35.4 52.2 0.68 19.3 1.84 12.4 2.86
48x48 37.5 64.9 0.58 23.4 1.60 17.0 2.20
64x64 36.6 124.0 0.30 19.9 1.83 12.9 2.84
96x96 35.4 133.0 0.27 23.3 1.49 18.0 1.97
100x100 31.9 87.9 0.36 27.1 1.16 18.1 1.77
128x128 154.4 169.0 0.92 22.4 6.91 16.6 8.99
192x192 136.7 174.3 0.78 21.2 6.46 16.4 8.23
200x200 127.5 137.4 0.93 22.9 5.63 17.0 7.50
256x256 153.7 205.9 0.75 21.1 7.29 16.3 9.33
257x257 101.5 142.8 0.71 20.0 5.24 15.8 6.35
384x384 156.0 201.9 0.77 22.4 6.98 16.9 9.17
500x500 138.1 158.3 0.87 23.3 5.92 16.9 8.16
512x512 152.8 211.7 0.72 21.1 7.24 16.9 9.00
768x768 152.3 211.7 0.72 22.5 6.78 16.8 9.09
1000x1000 142.8 181.0 0.79 23.8 5.88 17.0 8.42
1001x1001 140.0 175.3 0.80 23.2 6.04 16.1 8.63
1024x1024 151.4 210.4 0.72 20.8 7.32 17.2 8.81
1536x1536 24.8 24.7 1.00 19.8 1.27 16.5 1.43
2048x2048 18.4 15.2 1.21 15.9 1.16 9.1 2.03
3072x3072 18.3 17.2 1.07 13.1 1.40 16.1 1.14
4096x4096 18.2 13.4 1.33 13.8 1.32 11.9 1.53
4097x4097 17.9 14.3 1.25 13.1 1.38 15.6 1.15
8x10000 22.9 25.4 0.90 14.8 1.55 4.3 5.32
100x10000 20.4 92.2 0.22 21.0 0.97 16.5 1.24
1000x10000 18.2 18.0 1.01 11.9 1.53 15.8 1.15
4000x10000 18.0 17.9 1.01 14.1 1.28 15.3 1.18
10000x8 124.6 136.8 0.91 20.7 6.01 11.4 10.85
10000x100 172.9 198.8 0.88 20.5 8.44 11.2 11.63
10000x1000 18.3 18.1 1.01 17.4 1.05 11.1 1.66
10000x4000 18.1 17.9 1.01 16.1 1.12 11.0 1.65
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.2 0.8 2.76 1.0 2.15 0.5 4.19
3x3x3 3.7 1.2 3.18 3.0 1.34 1.5 2.51
4x4x4 13.6 8.0 1.70 7.3 1.87 3.9 3.50
6x6x6 16.2 6.7 2.42 5.1 3.17 8.6 1.89
8x8x8 41.6 24.6 1.68 11.5 3.61 19.1 2.18
12x12x12 79.4 27.0 2.94 23.7 3.35 40.5 1.93
16x16x16 81.3 58.2 1.40 40.8 1.99 63.3 1.28
24x24x24 91.6 127.3 0.72 64.9 1.41 77.4 1.19
32x32x32 193.0 349.3 0.62 77.7 2.48 94.3 2.01
48x48x48 392.7 561.8 0.73 89.9 4.37 103.7 3.76
64x64x64 749.6 984.1 0.80 95.1 7.84 106.2 7.06
96x96x96 1048.4 1287.9 0.81 102.6 10.26 108.9 9.41
100x100x100 746.1 686.2 1.11 96.3 7.75 101.3 7.33
128x128x128 1279.8 1452.9 0.88 153.5 8.37 109.9 11.52
160x160x160 1387.7 1552.5 0.89 192.3 7.25 109.9 12.55
192x192x192 1463.8 1610.1 0.91 220.5 6.64 91.7 15.90
200x200x200 1311.9 1208.0 1.09 223.1 5.88 108.1 12.12
224x224x224 1533.7 1672.9 0.92 267.6 5.73 111.1 13.77
256x256x256 1585.0 1701.6 0.93 251.1 6.31 110.7 14.28
257x257x257 1336.8 1173.3 1.14 271.3 4.93 104.4 12.80
288x288x288 1625.3 1741.0 0.93 318.5 5.11 111.9 14.51
320x320x320 1656.6 1754.9 0.95 348.2 4.76 112.1 14.77
384x384x384 1709.8 1798.8 0.95 388.1 4.40 106.7 16.02
448x448x448 1751.1 1826.3 0.96 417.9 4.19 113.0 15.50
500x500x500 1641.2 1559.7 1.05 536.1 3.06 111.3 14.74
512x512x512 1754.5 1775.1 0.99 489.5 3.58 113.0 15.52
768x768x768 1845.1 1897.7 0.97 675.6 2.74 113.7 16.23
1000x1000x1000 1800.6 1771.3 1.02 771.1 2.35 113.1 15.91
1001x1001x1001 1797.1 1725.6 1.04 739.6 2.43 111.4 16.14
1024x1024x1024 1671.3 1668.3 1.00 714.7 2.34 113.6 14.72
1536x1536x1536 1594.0 1459.1 1.09 906.1 1.76 113.8 14.02
2048x2048x2048 1615.7 1540.4 1.05 932.1 1.73 113.5 14.26
3072x3072x3072 1638.3 1468.2 1.12 993.9 1.65 113.5 14.43
4096x4096x4096 1683.5 1494.0 1.13 861.6 1.95 113.9 14.83
4097x4097x4097 1595.4 1360.9 1.17 935.0 1.71 113.1 14.10
64x64x1024 1263.3 1081.9 1.17 76.1 16.61 100.4 12.55
64x1024x64 918.5 1191.4 0.77 155.5 5.92 109.4 8.40
256x256x1024 1609.7 1644.3 0.98 296.7 5.43 110.3 14.60
1024x64x64 763.4 994.3 0.78 96.8 7.88 107.0 7.13
1024x256x256 1419.4 1521.9 0.94 274.3 5.17 112.5 12.61
4096x96x96 937.0 1161.0 0.81 111.0 8.43 109.4 8.56
4096x128x128 1042.9 1291.9 0.81 139.0 7.49 110.5 9.44
4096x144x144 1118.3 1339.4 0.83 161.1 6.96 111.3 10.05
4096x160x160 1160.5 1382.6 0.84 183.5 6.29 111.6 10.40
4096x176x176 1220.5 1427.2 0.86 202.5 6.01 111.9 10.91
8192x128x128 1054.6 1084.0 0.98 151.2 6.97 110.6 9.44
10000x8x8 123.6 421.7 0.29 45.4 2.72 73.3 1.70
10000x100x100 940.8 1109.8 0.85 183.8 5.13 111.0 8.45
10000x1000x1000 1661.4 1409.3 1.18 810.3 2.05 113.4 14.65
10000x4000x4000 1758.0 1475.2 1.19 916.7 1.92 113.7 15.24
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 4.6 0.9 5.35 1.0 4.71 0.6 7.67
3x3x3 4.9 1.6 3.06 0.7 6.63 1.7 2.85
4x4x4 9.3 6.2 1.51 1.6 5.72 4.2 2.16
6x6x6 11.9 11.1 1.06 4.7 2.51 9.3 1.27
8x8x8 28.0 17.8 1.58 9.3 2.99 18.0 1.56
12x12x12 36.4 20.9 1.74 20.2 1.79 30.7 1.19
16x16x16 42.2 55.8 0.76 27.8 1.52 38.9 1.09
24x24x24 66.2 98.0 0.72 39.9 1.65 46.5 1.42
32x32x32 137.2 206.4 0.70 36.0 3.81 48.2 2.81
48x48x48 228.6 305.8 0.76 50.6 4.51 52.0 4.34
64x64x64 343.2 361.3 0.96 90.8 3.78 29.3 11.68
96x96x96 407.0 410.1 0.99 137.2 2.97 53.3 7.60
100x100x100 333.7 282.7 1.18 129.9 2.57 52.6 6.31
128x128x128 434.5 432.6 1.00 170.4 2.55 43.9 9.84
160x160x160 444.4 446.6 1.00 198.8 2.24 54.6 8.14
192x192x192 455.1 455.0 1.00 223.5 2.04 49.9 9.11
200x200x200 449.1 438.5 1.03 217.5 2.06 55.2 8.13
224x224x224 462.6 461.9 1.00 242.9 1.91 55.4 8.34
256x256x256 467.2 458.4 1.02 260.3 1.79 52.3 8.93
257x257x257 431.8 348.3 1.24 235.9 1.83 53.8 8.03
288x288x288 471.5 470.2 1.00 280.9 1.68 55.9 8.43
320x320x320 475.0 473.4 1.00 289.9 1.64 56.0 8.47
384x384x384 479.8 477.9 1.00 303.6 1.58 53.2 9.01
448x448x448 477.1 480.8 0.99 329.1 1.45 56.5 8.45
500x500x500 469.4 439.2 1.07 336.0 1.40 56.4 8.32
512x512x512 468.3 440.4 1.06 349.6 1.34 56.5 8.29
768x768x768 456.5 476.6 0.96 393.4 1.16 56.8 8.02
1000x1000x1000 432.8 419.1 1.03 406.1 1.07 56.9 7.61
1001x1001x1001 422.6 406.4 1.04 380.0 1.12 56.4 7.43
1024x1024x1024 431.3 385.3 1.12 368.5 1.17 56.9 7.51
1536x1536x1536 441.7 378.2 1.17 361.5 1.22 56.8 7.55
2048x2048x2048 435.9 386.0 1.13 346.8 1.23 56.9 7.72
3072x3072x3072 440.8 384.3 1.11 347.3 1.27 56.7 7.88
4096x4096x4096 449.4 386.5 1.16 362.2 1.22 57.1 7.92
4097x4097x4097 438.0 358.0 1.22 357.1 1.23 56.7 7.77
64x64x1024 420.4 397.6 1.06 146.7 2.87 49.8 8.43
64x1024x64 385.9 385.1 1.00 155.6 2.48 54.5 7.07
256x256x1024 470.0 467.4 1.01 303.7 1.55 55.5 8.46
1024x64x64 351.8 350.8 1.00 113.1 3.02 53.3 6.60
1024x256x256 445.7 441.5 1.01 275.0 1.62 56.2 7.94
4096x96x96 372.9 354.6 1.05 56.2 6.58 54.5 6.90
4096x128x128 406.7 355.7 1.14 55.6 7.24 55.0 7.39
4096x144x144 414.8 386.8 1.07 58.0 7.16 55.5 7.41
4096x160x160 411.3 373.3 1.11 57.5 7.16 55.1 7.45
4096x176x176 413.0 365.5 1.13 57.4 7.05 55.9 7.42
8192x128x128 352.0 290.6 1.21 55.9 6.30 55.0 6.45
10000x8x8 55.1 217.3 0.25 24.4 2.28 36.1 1.53
10000x100x100 340.4 362.0 0.94 55.4 6.19 55.4 6.14
10000x1000x1000 438.9 378.8 1.11 406.3 1.11 56.5 7.77
10000x4000x4000 464.8 389.2 1.18 373.9 1.24 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.45 0.4 1.10 0.4 1.17
3x3 1.2 3.1 0.37 1.1 1.09 0.7 1.67
4x4 6.1 6.4 0.96 4.0 1.54 0.6 9.97
6x6 7.0 12.7 0.56 2.4 2.97 2.2 3.21
8x8 20.6 22.0 0.94 5.0 4.12 3.6 5.71
12x12 28.8 29.7 0.97 7.3 3.93 5.6 5.11
16x16 47.1 39.8 1.18 10.9 4.30 5.5 8.58
24x24 57.0 49.1 1.16 16.6 3.44 9.0 6.34
32x32 67.3 54.3 1.24 18.6 3.63 10.6 6.32
48x48 77.9 51.9 1.50 29.7 2.62 15.4 5.07
64x64 84.8 99.2 0.85 37.1 2.29 15.6 5.44
96x96 93.1 156.7 0.59 50.2 1.85 27.2 3.43
100x100 91.2 127.1 0.72 50.0 1.82 27.2 3.36
128x128 95.6 239.3 0.40 57.6 1.66 33.3 2.87
192x192 129.5 339.4 0.38 69.0 1.88 40.1 3.23
200x200 130.5 257.7 0.51 71.7 1.82 44.3 2.95
256x256 156.3 441.1 0.35 68.4 2.28 51.1 3.06
257x257 168.5 275.0 0.61 73.4 2.29 49.0 3.44
384x384 232.5 603.7 0.39 84.3 2.76 60.6 3.84
500x500 289.8 580.4 0.50 93.7 3.09 68.5 4.23
512x512 296.1 668.1 0.44 84.8 3.49 70.8 4.18
768x768 400.6 888.6 0.45 94.9 4.23 80.6 4.97
1000x1000 487.3 843.6 0.58 105.4 4.62 86.1 5.66
1001x1001 475.2 795.7 0.60 103.5 4.59 83.9 5.66
1024x1024 457.3 765.3 0.60 96.6 4.73 87.1 5.25
1536x1536 591.6 962.5 0.61 104.7 5.65 94.3 6.28
2048x2048 613.4 844.0 0.73 96.4 6.36 98.0 6.26
3072x3072 792.4 971.9 0.82 107.0 7.40 102.4 7.74
4096x4096 851.9 926.3 0.92 100.8 8.45 105.3 8.09
4097x4097 826.8 862.5 0.96 103.4 7.99 104.3 7.93
64x4096 81.8 180.9 0.45 40.8 2.00 20.1 4.10
256x4096 173.1 523.9 0.33 67.9 2.55 52.5 3.29
1024x8 189.4 58.5 3.23 44.2 4.28 37.8 5.03
1024x64 367.6 547.0 0.67 85.5 4.30 76.2 4.83
1024x256 443.2 718.7 0.62 94.8 4.68 84.8 5.23
1024x4096 447.0 722.8 0.62 92.8 4.81 86.9 5.14
4096x8 139.8 43.2 3.31 24.5 5.71 42.1 3.32
4096x64 564.9 493.2 1.15 74.0 7.53 88.2 6.41
4096x256 804.1 875.9 0.92 94.2 8.53 100.9 7.98
4096x1024 843.2 984.1 0.86 100.9 8.34 104.6 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.6 1.1 0.51 0.5 1.24 0.5 1.07
3x3 1.2 3.0 0.41 1.0 1.21 0.9 1.33
4x4 4.6 5.5 0.83 3.9 1.20 1.7 2.78
6x6 6.7 9.4 0.72 1.9 3.59 2.8 2.37
8x8 14.7 13.1 1.13 4.6 3.22 3.9 3.80
12x12 20.3 17.5 1.15 7.9 2.58 6.4 3.18
16x16 25.0 20.0 1.25 9.9 2.47 7.9 3.16
24x24 30.8 9.0 3.44 15.1 2.03 10.8 2.82
32x32 34.4 18.5 1.86 18.0 1.91 13.3 2.57
48x48 39.3 35.9 1.09 23.3 1.69 17.9 2.20
64x64 42.6 59.1 0.72 25.2 1.69 13.9 3.07
96x96 45.1 85.3 0.53 32.7 1.37 26.6 1.70
100x100 45.2 62.7 0.72 32.9 1.37 26.2 1.72
128x128 47.5 111.3 0.43 32.1 1.48 25.6 1.85
192x192 70.6 147.8 0.48 40.6 1.73 32.7 2.16
200x200 72.6 144.8 0.50 42.4 1.72 36.8 1.97
256x256 80.3 184.8 0.43 37.9 2.12 37.2 2.16
257x257 91.3 120.3 0.76 44.3 2.06 38.5 2.38
384x384 113.1 234.9 0.48 46.2 2.45 44.1 2.57
500x500 137.1 220.8 0.62 50.1 2.74 46.1 2.98
512x512 135.4 222.8 0.61 43.4 3.12 46.7 2.91
768x768 177.5 285.5 0.62 49.5 3.59 49.9 3.56
1000x1000 207.6 291.5 0.71 54.3 3.82 51.4 4.04
1001x1001 200.0 267.2 0.75 53.5 3.74 50.6 3.95
1024x1024 197.7 259.8 0.76 45.7 4.32 51.3 3.85
1536x1536 239.8 275.8 0.87 53.4 4.49 52.6 4.56
2048x2048 248.0 257.2 0.96 48.1 5.15 53.6 4.63
3072x3072 299.0 289.8 1.03 53.2 5.62 54.4 5.50
4096x4096 318.6 305.9 1.04 52.8 6.04 55.3 5.76
4097x4097 304.1 289.9 1.05 53.1 5.73 54.9 5.53
64x4096 41.3 87.2 0.47 26.5 1.54 21.5 1.92
256x4096 82.4 196.7 0.42 37.6 2.19 40.0 2.06
1024x8 107.1 72.7 1.48 22.1 4.84 31.6 3.39
1024x64 180.9 215.4 0.84 44.2 4.10 47.8 3.78
1024x256 199.8 253.9 0.79 45.3 4.41 50.7 3.94
1024x4096 194.8 197.4 0.99 43.9 4.43 50.7 3.84
4096x8 63.6 45.4 1.40 21.7 2.91 24.9 2.58
4096x64 222.0 179.9 1.23 46.7 4.73 48.2 4.62
4096x256 297.7 266.6 1.12 51.6 5.77 53.4 5.57
4096x1024 314.5 286.3 1.10 52.8 5.95 54.8 5.74
TRMM 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.0 1.1 0.04 0.1 0.42 0.6 0.09
3x3 0.1 3.0 0.04 0.3 0.42 1.4 0.09
4x4 0.3 6.7 0.04 0.7 0.43 3.0 0.11
6x6 0.9 14.5 0.06 2.1 0.41 5.8 0.15
8x8 2.0 25.8 0.08 4.0 0.50 11.3 0.18
12x12 5.3 39.3 0.14 9.7 0.52 25.3 0.21
16x16 10.2 46.9 0.22 17.5 0.59 29.3 0.34
24x24 21.6 55.0 0.39 33.8 0.64 41.6 0.52
32x32 20.6 62.1 0.33 45.4 0.46 49.6 0.41
48x48 39.0 75.1 0.52 62.8 0.62 62.6 0.62
64x64 81.1 156.1 0.52 65.9 1.22 37.1 2.18
96x96 188.1 330.4 0.58 82.8 2.27 77.6 2.42
100x100 158.4 249.5 0.64 75.7 2.09 72.9 2.16
128x128 272.6 473.1 0.68 87.4 3.10 47.5 5.74
192x192 412.7 691.8 0.69 94.1 4.38 68.4 6.03
200x200 418.8 568.3 0.76 98.7 4.24 88.9 4.65
256x256 537.6 843.3 0.70 100.6 5.34 96.3 5.54
257x257 469.6 639.8 0.74 98.4 4.77 90.8 5.16
384x384 676.0 1142.2 0.69 107.8 6.27 93.3 7.24
500x500 696.3 1177.2 0.59 111.9 6.24 100.6 6.92
512x512 772.8 1245.4 0.62 113.0 6.84 104.5 7.38
768x768 892.4 1512.4 0.59 116.3 7.68 107.1 8.34
1000x1000 903.1 1477.3 0.61 117.9 7.66 107.6 8.44
1001x1001 898.7 1462.1 0.61 117.1 7.65 104.9 8.60
1024x1024 750.6 1408.8 0.53 117.9 6.37 109.2 6.84
1536x1536 920.9 1589.1 0.58 117.6 7.83 110.5 8.32
2048x2048 737.4 1480.8 0.50 118.6 6.22 110.9 6.66
3072x3072 922.3 1488.0 0.62 118.6 7.79 111.4 8.27
4096x4096 938.6 1494.4 0.63 117.2 8.02 112.3 8.36
4097x4097 906.9 1419.9 0.64 117.9 7.72 111.1 8.17
64x4096 375.9 419.2 0.90 70.8 5.28 72.3 5.20
256x4096 761.1 1054.3 0.73 104.0 7.19 99.3 7.67
1024x8 163.0 39.4 4.14 45.6 3.58 47.2 3.46
1024x64 499.2 951.5 0.53 99.3 5.03 95.6 5.20
1024x256 653.6 1308.0 0.50 113.8 5.75 106.3 6.14
1024x4096 630.7 1321.8 0.48 116.6 5.43 108.7 5.80
4096x8 137.2 13.2 10.32 21.8 6.29 44.5 3.09
4096x64 579.8 584.8 1.00 76.3 7.60 93.7 6.06
4096x256 876.5 1127.3 0.78 105.8 8.29 107.5 8.02
4096x1024 983.1 1418.2 0.69 117.2 8.39 111.4 8.68
TRMM 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.1 0.3 0.30 0.1 0.71 0.6 0.16
3x3 0.2 0.7 0.36 0.4 0.69 1.4 0.17
4x4 0.6 5.7 0.10 0.8 0.76 3.1 0.19
6x6 1.6 4.6 0.36 2.2 0.72 6.1 0.26
8x8 3.2 19.0 0.17 3.9 0.82 10.2 0.31
12x12 6.8 25.9 0.27 9.2 0.74 16.9 0.40
16x16 11.1 30.1 0.37 13.2 0.84 21.6 0.52
24x24 8.7 37.3 0.23 23.1 0.38 27.8 0.31
32x32 18.1 24.1 0.75 22.0 0.84 32.3 0.56
48x48 39.2 65.1 0.60 35.0 1.12 37.7 1.02
64x64 70.2 104.5 0.69 27.4 2.56 18.1 3.86
96x96 120.7 164.2 0.74 41.7 2.89 42.7 2.79
100x100 96.7 141.6 0.73 41.3 2.34 42.1 2.28
128x128 150.7 212.9 0.71 40.6 3.71 33.4 4.48
192x192 195.4 265.7 0.74 49.1 3.97 41.1 4.75
200x200 192.0 256.8 0.75 51.0 3.75 48.5 3.96
256x256 235.0 315.9 0.75 52.1 4.51 45.5 5.16
257x257 204.6 276.0 0.75 51.9 3.93 48.2 4.24
384x384 275.0 382.4 0.72 55.7 4.93 52.3 5.25
500x500 273.5 381.6 0.72 56.2 4.85 52.7 5.19
512x512 292.6 377.1 0.78 56.0 5.22 53.4 5.48
768x768 294.9 428.8 0.71 58.3 5.06 54.8 5.31
1000x1000 276.1 425.0 0.65 58.9 4.68 55.3 5.00
1001x1001 261.6 424.2 0.62 59.0 4.44 55.0 4.76
1024x1024 280.0 408.7 0.68 58.8 4.76 55.4 5.07
1536x1536 321.9 378.5 0.85 59.5 5.41 55.4 5.81
2048x2048 306.8 393.7 0.78 59.3 5.17 55.8 5.50
3072x3072 338.2 398.1 0.84 59.4 5.69 55.9 6.05
4096x4096 341.0 401.0 0.84 59.8 5.72 56.5 6.03
4097x4097 328.3 380.4 0.86 59.5 5.53 55.8 5.76
64x4096 159.1 188.2 0.85 39.5 4.02 41.5 3.84
256x4096 205.8 347.9 0.59 53.9 3.86 51.0 4.04
1024x8 119.3 97.0 1.20 22.5 5.30 31.1 3.83
1024x64 272.8 313.4 0.87 51.4 5.29 50.8 5.37
1024x256 303.1 392.3 0.77 57.1 5.37 54.5 5.52
1024x4096 212.6 403.0 0.53 57.9 3.36 54.7 3.89
4096x8 59.8 44.8 1.34 15.0 3.99 24.3 2.48
4096x64 231.9 214.3 1.09 45.1 5.14 48.6 4.71
4096x256 325.2 336.6 0.97 55.8 5.83 54.5 5.87
4096x1024 356.3 379.0 0.94 59.0 6.04 55.9 6.28
SYMM 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 1.2 0.17 0.9 0.23 0.8 0.26
3x3 0.6 2.4 0.26 1.8 0.33 2.1 0.29
4x4 1.5 9.3 0.16 2.5 0.61 5.3 0.28
6x6 4.1 15.6 0.26 3.2 1.29 9.6 0.43
8x8 9.7 24.5 0.38 6.9 1.40 19.2 0.50
12x12 18.6 26.8 0.68 17.7 1.05 35.6 0.54
16x16 30.3 28.1 1.07 31.0 0.98 51.2 0.60
24x24 48.2 29.6 1.59 55.8 0.86 62.8 0.77
32x32 46.4 279.1 0.17 70.4 0.66 76.9 0.60
48x48 126.7 454.6 0.28 86.0 1.47 84.8 1.49
64x64 258.1 732.8 0.36 90.1 2.87 57.9 4.46
96x96 525.3 1031.6 0.51 103.2 5.07 100.5 5.23
100x100 410.6 698.5 0.59 97.2 4.23 94.2 4.35
128x128 740.9 1232.3 0.61 106.3 6.97 73.4 10.05
192x192 957.0 1435.5 0.67 112.3 8.50 89.2 10.73
200x200 906.4 1160.6 0.78 112.5 8.08 104.6 8.67
256x256 1144.8 1560.2 0.73 113.9 10.05 108.6 10.54
257x257 979.5 1188.9 0.82 110.8 8.85 103.0 9.51
384x384 1483.0 1704.1 0.87 353.3 4.20 105.3 14.09
500x500 1491.3 1608.2 0.93 439.3 3.42 109.9 13.57
512x512 1615.1 1679.6 0.96 453.4 3.56 111.8 14.45
768x768 1756.9 1838.1 0.94 618.7 2.84 112.6 15.62
1000x1000 1722.2 1686.9 1.02 725.7 2.37 112.2 15.39
1001x1001 1717.9 1688.0 1.02 693.9 2.47 110.5 15.55
1024x1024 1683.7 1627.8 1.03 711.4 2.37 113.0 14.90
1536x1536 1635.9 1468.9 1.11 894.4 1.83 113.1 14.47
2048x2048 1458.9 1566.1 0.95 936.3 1.56 113.2 12.33
3072x3072 1525.0 1466.1 1.03 1002.3 1.52 113.0 13.50
4096x4096 1428.5 1487.3 0.96 893.1 1.77 113.5 12.57
4097x4097 1440.8 1350.5 1.06 903.1 1.60 112.7 12.93
64x4096 811.7 1190.3 0.69 101.9 7.94 109.5 7.41
256x4096 1488.4 1617.4 0.92 474.2 3.17 113.0 13.17
1024x8 244.9 62.5 3.92 48.6 5.04 46.0 5.33
1024x64 1072.0 1094.6 0.98 107.3 9.97 96.8 11.10
1024x256 1539.8 1527.2 1.01 341.5 4.49 109.3 14.08
1024x4096 1538.0 1500.5 1.03 781.7 1.97 113.3 13.45
4096x8 173.7 46.0 3.80 9.6 18.05 27.6 6.28
4096x64 876.8 667.4 1.31 74.7 11.69 82.1 10.68
4096x256 1394.4 1211.3 1.15 265.3 5.26 104.0 13.37
4096x1024 1447.8 1402.2 1.05 700.8 2.07 111.5 12.63
SYMM 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 1.2 0.16 0.9 0.22 0.8 0.22
3x3 0.6 2.3 0.24 1.8 0.31 2.2 0.26
4x4 1.4 8.3 0.17 2.6 0.55 5.0 0.29
6x6 4.0 13.0 0.31 3.2 1.26 9.8 0.41
8x8 8.5 12.3 0.69 5.7 1.48 18.9 0.40
12x12 13.3 13.5 0.98 15.0 0.88 28.3 0.47
16x16 21.4 14.2 1.53 22.0 0.97 34.5 0.62
24x24 51.5 14.9 3.26 34.7 1.48 41.7 1.32
32x32 41.5 150.3 0.65 37.1 1.09 44.1 0.94
48x48 99.8 257.2 0.39 48.2 2.07 48.8 2.05
64x64 168.9 300.8 0.57 39.7 4.23 28.8 5.87
96x96 263.2 363.9 0.73 130.6 2.01 52.0 5.06
100x100 233.0 304.0 0.77 125.4 1.85 51.6 4.52
128x128 311.8 395.5 0.79 164.5 1.90 43.7 7.13
192x192 364.6 430.2 0.85 212.4 1.72 49.7 7.32
200x200 367.7 405.4 0.91 215.2 1.71 54.9 6.68
256x256 414.2 440.9 0.94 247.0 1.68 52.4 7.87
257x257 383.8 393.3 0.98 230.3 1.67 53.9 7.11
384x384 455.9 465.3 0.98 296.3 1.54 53.3 8.51
500x500 454.2 448.2 1.02 333.0 1.36 56.4 8.04
512x512 456.0 446.4 1.02 340.3 1.34 56.5 8.07
768x768 459.9 443.6 1.04 393.3 1.17 56.9 8.10
1000x1000 434.2 406.7 1.07 411.1 1.06 56.9 7.55
1001x1001 424.5 402.9 1.06 385.8 1.10 56.5 7.48
1024x1024 428.7 404.5 1.04 371.4 1.16 56.9 7.54
1536x1536 433.7 382.9 1.10 360.3 1.21 56.8 7.64
2048x2048 426.0 386.5 1.09 342.2 1.29 56.8 7.51
3072x3072 452.1 383.6 1.15 349.7 1.29 56.6 7.99
4096x4096 457.5 384.4 1.19 359.1 1.28 57.0 8.03
4097x4097 451.8 360.4 1.25 354.0 1.29 56.7 7.96
64x4096 366.2 355.2 1.04 162.3 2.25 54.7 6.70
256x4096 392.1 367.9 1.07 322.7 1.21 56.5 6.96
1024x8 139.4 37.6 3.72 33.3 4.18 32.7 4.19
1024x64 365.9 370.6 0.99 173.1 2.12 52.4 6.85
1024x256 435.2 442.6 0.98 314.9 1.37 56.0 7.77
1024x4096 428.7 408.1 1.04 321.4 1.34 56.8 7.55
4096x8 81.3 26.4 3.10 21.4 3.80 19.0 4.28
4096x64 302.8 260.6 1.15 128.8 2.35 45.8 6.69
4096x256 395.7 349.7 1.12 283.9 1.39 54.0 7.55
4096x1024 419.7 374.0 1.12 376.4 1.02 56.4 7.52
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.1 1.2 0.12 0.1 1.38 0.4 0.36
3x3 0.4 3.3 0.12 0.3 1.34 1.0 0.39
4x4 0.9 7.4 0.12 0.6 1.45 2.2 0.42
6x6 2.3 14.3 0.16 1.7 1.31 4.7 0.48
8x8 5.7 31.9 0.18 3.7 1.54 8.2 0.70
12x12 13.6 33.7 0.40 7.8 1.75 13.1 1.05
16x16 21.0 29.2 0.72 12.7 1.65 18.2 1.15
24x24 32.1 75.3 0.43 24.4 1.31 34.3 0.93
32x32 59.0 215.9 0.31 35.8 1.65 44.2 0.93
48x48 95.7 418.5 0.24 52.0 1.82 62.4 1.53
64x64 210.2 729.4 0.31 61.7 3.41 70.6 2.54
96x96 372.4 1108.5 0.36 71.1 5.24 85.1 3.45
100x100 263.6 589.0 0.49 64.7 4.07 77.7 2.58
128x128 513.8 1324.8 0.42 77.1 6.66 52.1 8.15
192x192 621.8 1545.3 0.42 87.4 7.11 71.7 8.65
200x200 565.3 1088.1 0.54 85.5 6.61 93.3 5.58
256x256 858.5 1660.8 0.53 93.6 9.11 97.7 8.78
257x257 794.6 1097.9 0.76 91.8 8.66 91.9 6.88
384x384 1140.8 1773.6 0.65 101.8 11.21 95.1 11.40
500x500 1246.2 1552.6 0.81 106.3 11.72 104.1 10.27
512x512 1333.9 1789.9 0.75 100.4 13.29 99.2 12.11
768x768 1590.0 1888.7 0.85 112.9 14.09 108.6 13.68
1000x1000 1524.3 1750.1 0.92 114.5 13.31 109.8 12.49
1001x1001 1537.0 1706.8 0.93 114.2 13.46 107.0 12.83
1024x1024 1462.9 1790.9 0.83 110.9 13.19 105.6 12.92
1536x1536 1327.7 1879.1 0.71 117.2 11.32 111.6 11.89
2048x2048 1312.8 1497.1 0.88 115.3 11.40 109.5 11.99
3072x3072 1410.6 1444.9 0.98 114.3 12.34 110.8 12.77
4096x4096 1498.5 1478.1 1.01 114.5 13.09 111.7 13.41
4097x4097 1459.3 1413.7 1.03 115.4 12.64 111.1 13.14
64x4096 610.0 1345.0 0.46 59.8 10.20 50.4 11.77
256x4096 1337.0 1787.1 0.75 97.2 13.75 84.6 13.91
1024x4096 1218.4 1418.9 0.86 114.7 10.62 105.3 11.30
4096x8 101.6 51.2 2.03 19.6 5.18 57.4 1.75
4096x64 589.8 376.2 1.58 96.6 6.07 112.7 5.24
4096x256 1102.4 868.1 1.27 113.5 9.69 113.5 9.72
4096x1024 1414.7 1441.3 0.98 116.6 12.10 111.8 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.14 0.1 1.73 0.3 0.48
3x3 0.4 1.6 0.26 0.3 1.54 0.9 0.46
4x4 1.0 4.1 0.24 0.6 1.70 1.9 0.53
6x6 2.5 5.2 0.49 1.7 1.50 4.4 0.58
8x8 5.3 5.9 0.89 2.9 1.79 7.4 0.72
12x12 10.2 11.5 0.89 6.9 1.47 14.7 0.69
16x16 14.7 33.9 0.43 10.3 1.43 17.7 0.84
24x24 15.4 75.2 0.22 19.1 0.80 26.4 0.58
32x32 37.0 148.1 0.27 25.5 1.45 32.8 1.12
48x48 70.6 249.7 0.29 35.0 2.02 40.9 1.67
64x64 111.2 312.7 0.36 39.9 2.78 18.9 5.75
96x96 181.5 377.7 0.49 41.5 4.38 45.6 3.87
100x100 161.7 252.7 0.65 39.6 4.08 44.7 3.58
128x128 238.0 410.2 0.58 30.2 7.88 34.0 6.88
192x192 252.9 441.1 0.57 48.9 5.18 42.3 5.95
200x200 302.0 413.6 0.75 49.1 6.09 51.0 5.92
256x256 315.2 452.1 0.70 41.1 7.67 44.9 7.01
257x257 323.1 334.5 0.97 49.1 6.58 49.3 6.53
384x384 393.8 471.8 0.84 47.4 8.30 49.8 7.91
500x500 414.9 430.0 0.97 55.7 7.44 54.4 7.62
512x512 407.5 458.6 0.89 50.1 8.14 50.6 8.04
768x768 430.7 485.6 0.89 58.0 7.42 55.5 7.82
1000x1000 407.7 467.6 0.86 58.8 6.97 56.1 7.26
1001x1001 390.1 462.2 0.85 58.3 6.63 55.5 7.03
1024x1024 377.8 392.7 0.96 58.4 6.47 53.8 7.07
1536x1536 377.8 378.6 1.00 58.8 6.35 54.8 6.89
2048x2048 375.6 388.6 0.97 57.4 6.55 55.4 6.78
3072x3072 395.0 393.3 1.00 58.9 6.71 55.7 7.09
4096x4096 412.3 391.8 1.05 58.5 7.05 56.4 7.32
4097x4097 413.2 366.8 1.13 59.7 6.93 56.0 7.38
64x4096 239.2 407.0 0.59 33.5 7.16 27.1 8.83
256x4096 378.8 409.5 0.92 51.7 7.35 45.0 8.41
1024x4096 373.0 394.0 0.95 56.9 6.50 53.5 6.97
4096x8 64.1 18.7 3.77 13.2 4.79 23.7 2.70
4096x64 282.5 114.0 2.51 52.1 5.28 55.9 5.06
4096x256 351.5 300.5 1.16 58.9 5.97 56.6 6.28
4096x1024 411.6 386.9 1.06 58.8 7.00 56.2 7.32
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.94 0.4 1.15 0.1 3.74
3 0.8 0.9 0.94 0.9 0.93 0.3 2.96
4 1.1 1.3 0.83 1.3 0.85 0.5 2.37
6 1.6 2.1 0.73 2.2 0.70 0.9 1.71
8 2.3 6.8 0.33 2.9 0.79 1.4 1.59
12 3.9 7.8 0.51 4.0 0.98 2.3 1.68
16 5.7 17.3 0.33 3.3 1.73 3.0 1.92
24 9.4 23.6 0.40 5.8 1.61 3.7 2.52
32 13.1 32.8 0.40 6.6 1.95 4.0 3.24
48 20.4 47.9 0.42 10.9 1.87 12.1 1.69
64 19.6 57.8 0.34 9.9 1.98 16.2 1.21
96 28.8 54.2 0.53 24.4 1.19 22.5 1.28
100 29.2 54.1 0.54 23.9 1.23 21.9 1.33
128 36.3 95.8 0.38 30.8 1.19 26.7 1.36
192 47.4 167.8 0.28 41.8 1.14 46.7 1.02
200 48.4 143.9 0.34 42.8 1.14 44.8 1.08
256 79.7 245.7 0.33 47.0 1.70 42.9 1.79
257 69.5 191.3 0.37 46.4 1.50 52.8 1.25
384 126.6 366.6 0.35 60.0 2.11 68.5 1.82
500 161.0 458.6 0.35 62.7 2.57 68.4 2.33
512 180.4 506.4 0.36 55.0 3.28 68.1 2.64
768 276.5 753.3 0.37 79.2 3.51 84.2 3.29
1000 355.3 830.9 0.43 97.9 3.63 88.9 3.99
1001 345.5 806.6 0.43 99.0 3.49 86.7 3.98
1024 285.3 854.6 0.33 83.8 3.41 88.8 3.22
1536 469.8 1111.3 0.42 108.4 4.34 97.3 4.82
2048 422.0 969.4 0.44 101.9 4.11 100.3 4.29
3072 602.2 1024.2 0.59 115.4 5.21 105.5 5.71
4096 548.9 452.6 1.22 81.5 6.74 105.8 5.17
4097 539.7 668.1 0.81 124.8 4.32 104.9 5.15
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.14 0.4 1.28 0.1 3.83
3 0.9 1.1 0.83 0.8 1.17 0.3 3.17
4 1.1 1.8 0.63 1.2 0.92 0.5 2.43
6 1.5 2.0 0.76 2.1 0.75 0.9 1.75
8 2.3 4.5 0.51 2.7 0.85 1.3 1.81
12 4.1 8.0 0.52 4.0 1.03 2.1 1.94
16 5.8 9.4 0.62 2.9 1.99 2.8 2.07
24 9.2 16.3 0.56 5.1 1.82 4.0 2.28
32 12.1 20.7 0.59 5.5 2.20 4.2 2.86
48 14.9 11.8 1.26 8.8 1.71 10.7 1.39
64 14.8 20.9 0.71 12.3 1.19 14.1 1.05
96 19.5 38.4 0.51 16.7 1.16 18.5 1.05
100 19.1 33.0 0.58 16.4 1.16 18.7 1.02
128 23.0 55.7 0.41 21.1 1.09 21.7 1.06
192 27.9 86.7 0.32 26.9 1.04 32.0 0.87
200 28.2 87.6 0.32 28.1 1.00 31.4 0.90
256 49.1 113.0 0.43 34.6 1.43 29.2 1.67
257 43.7 94.6 0.46 33.7 1.31 33.5 1.29
384 81.7 178.2 0.46 50.6 1.63 38.2 2.13
500 101.5 200.2 0.51 58.9 1.72 42.1 2.40
512 102.3 217.6 0.47 57.1 1.80 40.1 2.54
768 155.8 279.1 0.56 77.4 2.02 45.9 3.40
1000 190.5 313.2 0.61 89.0 2.15 49.3 3.79
1001 185.9 285.7 0.65 89.3 2.09 48.6 3.81
1024 153.4 296.8 0.52 84.6 1.81 46.8 3.28
1536 212.2 304.1 0.70 86.3 2.46 50.6 4.19
2048 179.5 165.1 1.09 65.5 2.73 51.4 3.49
3072 234.7 185.6 1.26 54.8 4.28 53.1 4.44
4096 239.5 178.0 1.35 112.8 2.13 54.1 4.40
4097 240.9 231.6 1.04 118.1 2.05 53.8 4.47
PSTRF 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.0 4.53 0.1 2.14 0.1 1.98
3 0.4 0.1 2.90 0.2 2.12 0.2 1.83
4 0.5 0.2 2.01 0.3 1.75 0.3 1.39
6 0.7 0.5 1.49 0.4 1.52 0.5 1.23
8 1.1 0.7 1.48 0.6 1.69 0.7 1.38
12 1.7 1.3 1.27 1.0 1.70 1.3 1.37
16 2.6 2.0 1.27 1.3 2.02 1.6 1.56
24 4.4 3.6 1.21 1.3 3.38 2.4 1.82
32 6.4 5.2 1.22 1.8 3.57 3.0 2.12
48 10.1 8.4 1.21 2.6 3.86 4.2 2.46
64 13.0 11.2 1.16 3.3 3.88 4.9 2.67
96 19.5 16.5 1.18 4.9 4.03 7.0 2.80
100 17.4 17.1 1.02 5.0 3.48 7.1 2.43
128 25.7 21.2 1.21 6.2 4.08 7.7 3.33
192 40.1 21.7 1.85 5.9 6.84 10.8 3.70
200 40.5 21.3 1.90 6.0 6.74 12.2 3.27
256 48.9 23.8 2.07 6.6 7.46 13.5 3.61
257 48.7 28.3 1.71 6.9 7.05 14.7 3.31
384 72.7 39.4 1.85 10.4 7.01 19.4 3.75
500 95.4 58.9 1.62 14.2 6.82 25.2 3.67
512 75.7 30.5 2.50 11.9 6.34 18.9 4.00
768 122.3 51.4 2.38 20.0 6.10 29.1 4.18
1000 171.9 120.9 1.42 27.8 6.20 40.7 4.21
1001 170.3 117.2 1.45 27.6 6.17 40.3 4.21
1024 113.1 50.0 2.21 21.4 5.31 29.3 3.86
1536 195.1 91.7 2.13 31.9 6.13 40.7 4.74
2048 180.5 88.1 2.05 33.7 5.35 42.9 4.24
3072 272.3 144.8 1.89 47.5 5.73 55.3 4.79
4096 238.9 117.3 2.04 46.3 5.16 54.5 4.39
4097 280.5 152.4 1.84 48.0 5.84 59.1 4.74
PSTRF 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 3.81 0.1 1.71 0.1 1.57
3 0.4 0.1 2.94 0.2 2.11 0.2 1.81
4 0.5 0.2 2.21 0.2 2.06 0.3 1.58
6 0.7 0.4 1.59 0.4 1.70 0.5 1.53
8 1.1 0.7 1.48 0.6 1.78 0.7 1.61
12 1.9 1.2 1.53 0.9 2.00 1.1 1.74
16 2.7 1.7 1.60 1.2 2.23 1.4 1.84
24 4.4 2.8 1.54 1.8 2.45 2.2 2.00
32 5.8 3.9 1.47 2.3 2.52 3.0 1.96
48 9.0 5.7 1.58 3.6 2.54 4.5 2.01
64 11.2 7.2 1.56 4.7 2.27 5.9 1.90
96 14.8 4.1 3.63 7.2 2.04 8.9 1.67
100 13.4 4.4 3.05 7.6 1.78 10.7 1.26
128 18.7 7.2 2.67 9.1 2.02 11.0 1.71
192 24.5 12.6 1.97 12.9 1.88 14.8 1.65
200 24.7 12.2 2.05 13.6 1.81 17.8 1.39
256 25.0 12.8 1.97 11.6 2.13 13.0 1.93
257 27.2 18.6 1.47 15.6 1.74 19.1 1.43
384 38.3 22.3 1.73 18.2 2.09 20.2 1.89
500 50.5 43.9 1.15 23.0 2.20 27.2 1.85
512 40.7 22.1 1.84 16.3 2.50 17.9 2.28
768 66.2 39.8 1.66 22.4 2.95 24.4 2.70
1000 101.0 94.5 1.07 30.7 3.29 33.8 2.98
1001 98.1 83.6 1.18 30.3 3.23 33.0 2.97
1024 71.6 40.4 1.77 23.0 3.03 24.4 2.94
1536 112.9 65.8 1.72 29.8 3.76 30.8 3.66
2048 99.1 57.0 1.75 28.1 3.53 29.7 3.34
3072 136.9 87.5 1.56 36.1 3.74 35.0 3.91
4096 145.7 90.4 1.61 36.1 4.03 35.3 4.13
4097 163.7 119.5 1.37 38.5 4.25 38.2 4.29
SYTRF 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 4.05 0.1 2.92 0.1 1.95
3 0.4 0.2 3.05 0.2 2.49 0.3 1.39
4 0.8 0.3 2.43 0.3 2.29 0.6 1.36
6 1.3 0.8 1.53 0.4 3.10 0.8 1.60
8 1.7 1.2 1.47 0.9 1.87 1.2 1.45
12 2.9 2.2 1.32 1.5 1.77 2.3 1.28
16 4.2 3.7 1.15 1.9 2.22 3.1 1.40
24 6.7 5.7 1.17 3.2 2.08 4.9 1.38
32 8.8 8.0 1.11 5.1 1.74 6.1 1.40
48 12.7 10.9 1.16 7.3 1.76 8.2 1.52
64 15.7 11.6 1.35 9.7 1.63 9.7 1.62
96 19.2 18.1 1.07 5.7 3.39 4.9 3.88
100 20.6 18.7 1.10 5.9 3.47 5.3 3.83
128 25.3 21.1 1.20 6.9 3.67 5.2 4.84
192 38.4 20.0 1.97 5.9 6.49 6.8 5.51
200 42.6 19.3 2.21 6.1 6.99 7.3 5.69
256 39.7 22.7 1.77 6.9 5.77 8.5 4.54
257 52.7 23.0 2.29 7.0 7.54 8.7 6.08
384 69.5 33.9 2.07 10.9 6.36 12.1 5.74
500 107.2 46.8 2.29 15.3 7.11 15.3 7.02
512 56.9 40.5 1.40 14.8 3.90 15.1 3.78
768 106.0 71.5 1.48 23.4 4.52 21.0 5.09
1000 178.0 101.7 1.75 30.2 5.91 26.3 6.77
1001 177.7 102.0 1.74 30.3 5.84 26.4 6.73
1024 77.3 62.3 1.23 28.0 2.76 25.6 3.07
1536 150.9 132.7 1.14 40.8 3.70 34.8 4.34
2048 118.7 106.6 1.11 42.2 2.81 39.6 3.03
3072 193.6 162.5 1.20 57.3 3.38 50.1 3.81
4096 143.3 131.5 1.09 55.4 2.61 54.4 2.63
4097 174.2 162.6 1.07 57.8 3.02 55.8 3.11
SYTRF 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 4.07 0.1 2.83 0.1 1.75
3 0.5 0.2 3.18 0.2 3.29 0.3 1.72
4 0.8 0.3 2.36 0.3 3.19 0.5 1.48
6 1.1 0.7 1.82 0.5 2.20 0.9 1.14
8 1.8 1.1 1.47 0.8 2.25 1.2 1.49
12 2.9 2.2 1.40 1.4 2.05 2.1 1.37
16 4.0 3.2 1.26 2.2 1.85 2.8 1.50
24 6.3 5.7 1.10 3.6 1.71 4.2 1.56
32 7.8 7.3 1.06 4.7 1.64 4.7 1.67
48 10.1 9.7 1.04 7.2 1.39 6.8 1.50
64 11.5 10.4 1.13 9.4 1.23 8.2 1.40
96 12.9 5.1 2.60 10.4 1.23 7.9 1.64
100 13.8 5.6 2.47 11.1 1.26 8.0 1.72
128 17.8 6.5 2.76 12.9 1.31 9.0 1.97
192 25.3 9.3 2.73 18.9 1.33 11.3 2.23
200 27.6 9.7 2.84 19.8 1.39 12.4 2.23
256 21.7 11.6 1.87 21.0 1.04 13.0 1.66
257 32.8 12.6 2.59 22.9 1.45 14.2 2.32
384 39.6 19.8 2.00 27.5 1.46 17.8 2.20
500 58.5 27.7 2.11 31.5 1.85 20.9 2.80
512 28.5 19.2 1.49 27.7 1.03 17.6 1.60
768 55.5 37.4 1.49 34.3 1.62 25.0 2.20
1000 93.4 55.1 1.70 38.4 2.41 28.8 3.25
1001 92.7 55.6 1.67 38.3 2.42 29.1 3.19
1024 44.5 31.4 1.42 34.7 1.28 24.9 1.79
1536 77.2 58.5 1.32 39.5 1.96 30.7 2.50
2048 55.0 51.6 1.07 37.3 1.47 31.2 1.76
3072 96.5 72.6 1.33 43.8 2.20 36.4 2.65
4096 91.7 72.9 1.26 43.2 2.12 37.1 2.47
4097 114.5 91.3 1.25 44.4 2.58 38.3 2.98
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.32 0.3 0.65 0.3 0.69
3 0.4 0.2 2.85 0.4 0.89 0.4 1.07
4 0.7 0.4 1.88 0.9 0.84 0.5 1.21
6 1.2 0.7 1.71 1.6 0.73 0.7 1.76
8 2.1 1.2 1.78 2.6 0.80 0.9 2.35
12 3.8 2.6 1.49 5.2 0.74 1.2 3.23
16 5.7 4.4 1.30 7.1 0.80 1.5 3.83
24 8.7 7.5 1.13 10.8 0.81 3.4 2.59
32 12.2 10.6 1.15 13.7 0.89 4.2 2.94
48 19.3 12.9 1.54 18.5 1.03 8.4 2.31
64 25.9 19.8 1.31 23.2 1.11 9.5 2.74
96 35.9 32.1 1.12 34.2 1.04 18.8 1.93
100 36.9 29.8 1.24 25.6 1.43 19.3 1.92
128 42.6 44.9 0.95 39.4 1.10 23.1 1.84
192 62.5 58.2 1.06 46.0 1.36 34.7 1.80
200 63.3 60.4 1.05 47.2 1.34 35.6 1.79
256 92.8 84.9 1.09 42.0 2.21 43.0 2.16
257 85.7 78.7 1.07 53.6 1.62 41.6 2.06
384 129.7 147.9 0.88 67.9 1.90 54.8 2.38
500 158.7 173.9 0.91 95.8 1.65 63.0 2.52
512 159.7 178.1 0.90 44.8 3.53 64.9 2.46
768 228.6 317.4 0.72 86.3 2.65 75.6 3.04
1000 282.7 370.9 0.76 148.5 1.90 82.0 3.45
1001 272.8 346.2 0.79 147.6 1.85 80.3 3.39
1024 267.2 216.0 1.24 68.4 3.91 83.7 3.18
1536 414.9 391.4 1.07 109.5 3.79 92.3 4.50
2048 444.9 204.1 2.18 109.8 4.05 96.0 4.62
3072 505.6 457.4 1.10 183.8 2.75 100.7 5.02
4096 500.1 257.7 1.93 161.1 3.10 103.3 4.85
4097 504.2 291.8 1.73 198.0 2.54 102.4 4.92
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 4.35 0.3 0.81 0.2 1.33
3 0.5 0.2 3.02 0.6 0.87 0.4 1.41
4 0.7 0.3 2.02 0.8 0.89 0.5 1.44
6 1.2 0.8 1.56 1.6 0.74 0.6 2.01
8 1.9 1.3 1.49 2.5 0.77 0.7 2.62
12 3.8 2.5 1.52 4.7 0.80 1.0 3.81
16 5.2 4.0 1.30 6.6 0.83 1.2 4.22
24 7.1 6.5 1.10 9.4 0.76 2.9 2.50
32 9.5 6.6 1.44 10.2 0.93 3.7 2.53
48 13.7 11.0 1.24 14.4 0.95 7.9 1.74
64 16.9 15.6 1.08 16.5 1.03 9.9 1.72
96 19.2 24.4 0.77 21.4 0.89 16.9 1.13
100 19.1 22.8 0.84 20.8 0.92 17.2 1.11
128 25.9 33.4 0.77 22.4 1.17 17.9 1.44
192 37.6 52.3 0.72 34.1 1.10 28.5 1.32
200 38.0 53.4 0.70 29.0 1.33 28.6 1.33
256 55.0 65.6 0.83 22.4 2.46 30.6 1.80
257 52.2 52.1 1.00 31.6 1.66 31.2 1.68
384 78.6 86.0 0.91 43.0 1.83 37.8 2.08
500 95.6 93.8 1.02 57.8 1.65 41.4 2.31
512 92.9 70.5 1.32 29.6 3.13 41.0 2.27
768 127.9 142.5 0.90 47.1 2.67 46.2 2.77
1000 147.7 198.1 0.74 94.7 1.56 48.1 3.07
1001 141.0 154.3 0.91 94.8 1.49 47.5 2.97
1024 143.8 84.5 1.70 45.6 3.10 48.2 2.99
1536 188.3 154.9 1.22 53.5 3.48 50.5 3.73
2048 173.8 101.5 1.72 58.7 2.94 51.3 3.39
3072 206.5 160.4 1.29 100.6 2.05 52.7 3.92
4096 224.1 155.9 1.44 104.8 2.13 53.7 4.17
4097 221.2 167.9 1.32 120.5 1.84 53.4 4.14
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 1.94 0.3 0.53 0.2 1.13
3x3 0.4 0.2 1.73 0.6 0.61 0.3 1.22
4x4 0.6 0.4 1.59 0.9 0.66 0.5 1.26
6x6 1.2 0.8 1.49 1.7 0.72 0.9 1.41
8x8 1.9 1.4 1.34 2.5 0.75 1.3 1.49
12x12 3.9 2.9 1.35 4.3 0.89 2.6 1.50
16x16 6.0 4.7 1.27 6.0 0.99 3.8 1.57
24x24 10.1 8.9 1.14 8.4 1.21 6.6 1.46
32x32 13.9 12.8 1.08 9.8 1.41 9.1 1.54
48x48 19.6 22.8 0.86 10.3 1.89 13.3 1.48
64x64 22.6 28.6 0.79 13.9 1.64 12.0 1.89
96x96 28.8 33.5 0.86 20.4 1.41 20.0 1.44
100x100 28.2 30.1 0.94 18.8 1.51 20.4 1.37
128x128 40.4 45.6 0.88 25.8 1.57 23.5 1.72
192x192 65.4 72.1 0.91 34.0 1.93 35.9 1.82
200x200 66.1 73.2 0.90 34.4 1.92 42.9 1.54
256x256 85.3 86.7 0.98 37.1 2.30 45.5 1.88
257x257 80.7 97.2 0.83 39.5 2.04 51.7 1.56
384x384 134.8 143.9 0.93 44.7 3.02 61.0 2.21
500x500 196.5 190.7 1.03 47.9 4.10 71.9 2.72
512x512 209.5 157.9 1.33 44.5 4.73 63.1 3.32
768x768 311.6 255.0 1.22 59.9 5.21 74.3 4.19
1000x1000 338.5 377.3 0.90 75.1 4.51 87.1 3.88
1001x1001 323.6 361.4 0.89 75.2 4.33 85.7 3.77
1024x1024 313.8 236.9 1.32 69.0 4.56 76.4 4.10
1536x1536 426.8 387.6 1.10 88.1 4.85 86.6 4.94
2048x2048 448.4 335.3 1.34 94.9 4.73 84.2 5.33
3072x3072 481.5 377.7 1.27 106.4 4.52 90.3 5.34
4096x4096 475.0 384.2 1.24 104.1 4.56 83.2 5.71
4097x4097 446.7 441.9 1.01 105.8 4.23 84.2 5.31
4096x8 21.3 9.9 2.15 9.9 2.18 10.0 2.14
4096x64 58.8 64.2 0.92 15.4 3.82 21.3 2.76
4096x256 131.6 122.0 1.08 34.7 3.80 43.9 3.00
4096x1024 264.4 291.0 0.91 72.4 3.65 77.7 3.40
10000x8 21.5 12.7 1.69 9.9 2.17 9.7 2.21
10000x100 86.3 57.8 1.49 21.1 4.09 22.9 3.77
10000x1000 295.1 298.8 0.99 75.0 3.93 82.9 3.56
10000x4000 514.3 407.9 1.26 109.0 4.73 87.6 5.87
100000x8 20.2 17.5 1.15 9.7 2.08 9.1 2.22
100000x64 63.2 48.2 1.31 15.5 4.06 19.0 3.34
100000x256 113.9 119.7 0.95 35.0 3.25 41.4 2.75
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.10 0.3 0.61 0.2 1.18
3x3 0.4 0.2 1.84 0.5 0.73 0.3 1.31
4x4 0.6 0.4 1.77 0.8 0.80 0.4 1.42
6x6 1.3 0.8 1.59 1.5 0.86 0.8 1.55
8x8 2.0 1.3 1.50 2.3 0.89 1.2 1.65
12x12 3.9 2.7 1.42 3.8 1.01 2.2 1.79
16x16 5.8 4.3 1.37 5.1 1.12 3.0 1.92
24x24 8.8 7.4 1.18 6.6 1.29 4.5 1.96
32x32 10.4 10.2 1.03 7.7 1.35 5.6 1.84
48x48 13.3 6.0 2.21 8.4 1.57 8.9 1.49
64x64 14.6 9.8 1.49 12.9 1.13 9.6 1.53
96x96 19.7 14.9 1.32 17.7 1.12 12.7 1.54
100x100 20.1 14.0 1.44 17.5 1.15 12.8 1.56
128x128 26.9 20.6 1.30 20.5 1.31 13.6 1.97
192x192 41.4 36.2 1.14 25.7 1.61 21.3 1.95
200x200 47.9 37.7 1.27 26.9 1.79 25.2 1.89
256x256 60.6 45.1 1.34 31.9 1.90 24.7 2.43
257x257 56.0 48.5 1.15 30.8 1.84 29.5 1.90
384x384 89.7 78.4 1.14 43.9 2.04 32.9 2.71
500x500 107.3 105.6 1.02 57.3 1.87 39.1 2.75
512x512 111.8 82.4 1.36 50.2 2.23 34.8 3.21
768x768 147.5 132.9 1.11 63.9 2.31 40.8 3.62
1000x1000 148.8 188.7 0.79 82.4 1.77 45.4 3.28
1001x1001 144.7 149.8 0.97 82.3 1.72 44.8 3.23
1024x1024 145.0 125.1 1.16 69.5 2.04 40.8 3.56
1536x1536 180.6 145.4 1.24 52.2 3.41 45.7 3.95
2048x2048 180.2 130.1 1.39 45.1 3.95 43.6 4.14
3072x3072 215.2 126.6 1.70 46.0 4.64 44.4 4.85
4096x4096 222.1 176.7 1.26 62.7 3.53 44.8 4.95
4097x4097 209.9 191.4 1.10 64.5 3.24 43.5 4.84
4096x8 10.8 6.9 1.57 7.1 1.52 6.9 1.58
4096x64 38.8 35.4 1.10 14.2 2.74 12.1 3.21
4096x256 73.3 83.8 0.88 23.3 3.15 24.5 3.00
4096x1024 126.4 113.6 1.11 35.9 3.51 41.7 3.03
10000x8 10.2 8.0 1.27 7.0 1.46 6.6 1.55
10000x100 44.3 45.4 0.98 17.9 2.48 12.1 3.67
10000x1000 147.0 116.4 1.26 38.7 3.81 41.5 3.54
10000x4000 245.2 190.4 1.29 112.6 2.18 43.8 5.61
100000x8 10.2 10.9 0.93 6.8 1.50 6.2 1.63
100000x64 32.1 27.4 1.18 13.9 2.31 10.5 3.07
100000x256 64.1 59.3 1.08 28.0 2.28 22.1 2.91
GELS float
m×n×nrhs Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2x1 0.2 0.1 3.05 0.1 1.38 0.1 1.39
3x3x1 0.3 0.1 2.59 0.2 1.34 0.2 1.45
4x4x1 0.5 0.2 2.38 0.4 1.33 0.3 1.53
6x6x1 1.0 0.5 2.17 0.7 1.43 0.6 1.74
8x8x1 1.6 0.8 1.97 1.1 1.40 0.9 1.77
12x12x1 3.1 1.6 1.96 2.0 1.59 1.7 1.85
16x16x1 4.9 2.6 1.89 2.8 1.71 2.5 1.96
24x24x1 8.5 4.7 1.80 4.5 1.91 4.4 1.94
32x32x1 12.0 7.0 1.72 5.7 2.11 6.2 1.94
48x48x1 14.3 11.3 1.26 7.1 2.02 7.6 1.89
64x64x1 18.0 15.3 1.18 9.6 1.87 8.1 2.20
96x96x1 24.5 17.4 1.42 13.6 1.80 13.8 1.77
100x100x1 24.2 18.5 1.31 13.0 1.86 14.2 1.70
128x128x1 35.5 21.2 1.68 17.4 2.04 17.4 2.04
192x192x1 59.3 31.3 1.90 23.9 2.47 28.3 2.09
200x200x1 59.8 39.1 1.52 24.3 2.46 31.3 1.91
256x256x1 78.9 44.3 1.79 27.8 2.84 35.4 2.22
257x257x1 74.7 54.8 1.37 29.0 2.57 38.8 1.93
384x384x1 127.7 81.0 1.58 35.5 3.60 49.2 2.57
500x500x1 185.0 113.4 1.63 39.4 4.70 59.4 3.08
512x512x1 196.6 95.9 2.06 37.4 5.26 53.6 3.66
768x768x1 295.5 157.6 1.88 51.4 5.74 65.5 4.51
1000x1000x1 326.2 229.6 1.42 64.7 5.04 77.9 4.19
1001x1001x1 313.1 221.7 1.41 64.7 4.83 76.7 4.08
1024x1024x1 304.3 163.6 1.86 60.6 5.02 69.2 4.40
1536x1536x1 417.7 271.3 1.54 78.6 5.33 80.4 5.18
2048x2048x1 442.5 260.1 1.69 86.4 5.12 79.6 5.59
3072x3072x1 474.1 313.5 1.51 98.8 4.79 86.6 5.47
4096x4096x1 470.1 278.5 1.69 98.4 4.78 80.9 5.80
4097x4097x1 440.4 304.8 1.44 100.0 4.40 81.8 5.40
1024x1024x16 266.6 166.2 1.61 51.3 5.20 69.3 3.85
1024x1024x64 280.9 172.7 1.63 41.5 6.77 70.3 3.98
1024x1024x256 326.0 186.1 1.76 26.2 12.43 72.4 4.50
4096x8x1 22.6 5.2 4.32 3.1 7.25 6.4 3.52
4096x64x1 57.0 31.5 1.80 10.2 5.59 15.9 3.58
4096x256x1 128.1 73.0 1.75 26.6 4.82 36.9 3.47
4096x256x16 103.9 78.0 1.33 20.9 4.98 38.9 2.67
4096x256x64 131.4 94.9 1.39 13.6 9.67 44.7 2.94
4096x256x256 220.0 144.8 1.52 6.3 34.62 54.8 4.02
4096x256x1024 359.2 208.3 1.72 5.2 68.05 70.1 5.13
4096x1024x1 260.7 202.0 1.29 62.5 4.17 71.4 3.65
10000x8x1 22.5 5.9 3.82 2.2 10.32 6.3 3.59
10000x100x1 83.2 39.8 2.09 12.0 6.97 18.6 4.48
10000x1000x1 289.1 205.4 1.41 58.6 4.93 75.7 3.82
10000x4000x1 508.8 344.0 1.48 99.2 5.13 85.4 5.94
100000x8x1 21.8 7.1 3.08 3.1 7.00 6.0 3.62
100000x64x1 61.3 30.6 1.99 10.3 6.01 14.3 4.29
100000x256x1 110.7 51.9 2.13 26.8 4.13 34.6 3.20
GELS double
m×n×nrhs Eigen GFLOP/s Apple Accelerate GFLOP/s Eigen ÷ Apple Accelerate Arm Performance Libraries GFLOP/s Eigen ÷ Arm Performance Libraries OpenBLAS GFLOP/s Eigen ÷ OpenBLAS
2x2x1 0.2 0.1 3.15 0.1 1.35 0.1 1.38
3x3x1 0.3 0.1 2.77 0.2 1.49 0.2 1.52
4x4x1 0.5 0.2 2.51 0.4 1.48 0.3 1.61
6x6x1 1.0 0.4 2.28 0.7 1.54 0.6 1.76
8x8x1 1.6 0.7 2.17 1.0 1.56 0.9 1.88
12x12x1 3.1 1.5 2.12 1.9 1.69 1.5 2.05
16x16x1 4.7 2.4 2.01 2.6 1.80 2.2 2.20
24x24x1 4.9 4.2 1.17 4.0 1.23 3.4 1.45
32x32x1 6.9 6.1 1.14 5.0 1.38 4.4 1.59
48x48x1 9.4 4.6 2.04 6.4 1.48 5.8 1.63
64x64x1 10.9 5.5 1.99 9.7 1.11 6.6 1.66
96x96x1 17.0 10.5 1.62 13.9 1.23 9.5 1.80
100x100x1 17.4 11.1 1.57 13.8 1.25 9.7 1.79
128x128x1 23.7 13.6 1.73 16.9 1.40 10.9 2.17
192x192x1 37.7 22.5 1.68 21.8 1.73 17.3 2.19
200x200x1 43.3 24.9 1.74 22.7 1.91 20.0 2.14
256x256x1 55.2 28.5 1.94 27.4 2.02 20.8 2.63
257x257x1 51.7 31.3 1.65 26.6 1.95 24.1 2.11
384x384x1 83.5 52.3 1.60 38.2 2.19 28.4 2.94
500x500x1 101.9 71.9 1.42 49.9 2.04 34.3 2.97
512x512x1 106.3 59.9 1.77 44.7 2.37 31.1 3.42
768x768x1 142.6 96.6 1.48 58.0 2.43 37.3 3.82
1000x1000x1 142.7 138.1 1.04 74.7 1.91 42.1 3.39
1001x1001x1 139.3 114.4 1.22 74.6 1.86 41.6 3.35
1024x1024x1 138.8 100.2 1.38 63.8 2.18 38.1 3.65
1536x1536x1 174.6 123.2 1.42 50.2 3.47 43.5 4.02
2048x2048x1 174.8 100.2 1.75 43.9 3.98 41.9 4.17
3072x3072x1 209.8 100.2 2.09 45.1 4.65 43.3 4.85
4096x4096x1 217.6 139.2 1.56 61.5 3.54 44.0 4.94
4097x4097x1 206.3 144.3 1.43 63.2 3.27 42.7 4.84
1024x1024x16 124.3 102.4 1.20 59.4 2.10 38.3 3.25
1024x1024x64 130.0 106.7 1.21 47.8 2.72 38.8 3.37
1024x1024x256 149.0 117.5 1.26 33.6 4.43 40.3 3.72
4096x8x1 11.3 4.1 2.76 4.7 2.40 5.1 2.21
4096x64x1 35.7 22.7 1.57 12.2 2.92 9.6 3.79
4096x256x1 71.2 51.0 1.40 21.7 3.28 21.3 3.34
4096x256x16 57.0 55.1 1.04 18.9 3.02 22.5 2.53
4096x256x64 71.8 66.6 1.08 14.9 4.82 25.9 2.77
4096x256x256 114.9 70.0 1.64 11.7 9.81 32.7 3.53
4096x256x1024 169.0 80.5 2.10 10.4 16.36 38.1 4.43
4096x1024x1 124.0 95.0 1.31 34.8 3.55 38.9 3.19
10000x8x1 10.4 4.5 2.34 4.6 2.27 4.9 2.13
10000x100x1 42.0 33.7 1.25 15.7 2.68 10.2 4.11
10000x1000x1 142.8 98.1 1.46 37.4 3.82 38.7 3.69
10000x4000x1 241.9 178.8 1.36 109.4 2.21 43.0 5.62
100000x8x1 10.9 5.5 2.00 4.6 2.39 4.8 2.29
100000x64x1 30.3 12.8 2.36 12.0 2.53 8.2 3.71
100000x256x1 62.0 25.7 2.41 25.7 2.41 19.0 3.26
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.41 0.6 1.32 0.7 1.23
3 0.8 0.4 1.71 0.5 1.50 0.6 1.24
4 1.0 0.7 1.40 0.7 1.49 0.9 1.13
6 1.6 1.2 1.34 1.2 1.39 1.5 1.09
8 2.1 1.9 1.09 1.6 1.29 2.1 1.04
12 3.5 3.0 1.21 2.4 1.44 3.2 1.08
16 4.9 4.1 1.21 3.2 1.52 4.3 1.13
24 7.5 6.1 1.24 5.0 1.52 6.6 1.12
32 10.2 7.4 1.39 6.3 1.60 8.4 1.22
48 15.3 9.7 1.60 8.7 1.75 9.9 1.54
64 20.2 12.1 1.71 10.3 1.92 12.1 1.67
96 27.2 12.7 2.12 10.4 2.65 14.9 1.83
100 28.2 14.3 2.00 10.7 2.60 14.6 1.94
128 33.3 12.4 2.71 11.6 2.84 16.1 2.07
192 41.5 14.1 2.95 14.0 2.97 19.5 2.11
200 42.6 14.4 2.97 14.5 2.93 18.7 2.27
256 44.7 15.3 2.93 15.0 2.95 19.4 2.31
257 43.3 15.6 2.77 15.6 2.78 21.2 2.05
384 50.1 18.2 2.75 16.0 3.14 23.1 2.17
500 52.4 18.7 2.80 15.6 3.35 24.9 2.12
512 51.5 18.9 2.72 15.5 3.32 24.5 2.11
768 56.7 18.7 3.03 16.1 3.53 25.9 2.19
1000 61.1 19.3 3.17 17.7 3.46 27.4 2.23
1001 53.5 19.4 2.77 18.8 2.84 27.6 1.94
1024 59.5 19.2 3.10 18.2 3.26 25.7 2.32
1536 62.5 22.8 2.74 16.2 3.85 26.7 2.35
2048 63.1 20.0 3.16 15.3 4.13 28.0 2.25
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.8 0.2 3.79 0.6 1.37 0.7 1.18
3 0.7 0.4 1.49 0.5 1.57 0.6 1.29
4 0.8 0.6 1.37 0.6 1.33 0.8 1.05
6 1.3 1.1 1.20 1.0 1.28 1.2 1.08
8 1.8 1.5 1.17 1.4 1.23 1.7 1.08
12 2.8 2.5 1.12 2.2 1.26 2.5 1.16
16 3.8 3.5 1.11 2.9 1.31 3.2 1.17
24 5.8 5.2 1.13 4.4 1.23 4.9 1.17
32 7.6 6.6 1.16 5.4 1.40 6.1 1.26
48 11.0 6.3 1.74 7.7 1.43 7.8 1.41
64 13.5 7.8 1.74 8.9 1.52 9.8 1.38
96 16.6 10.3 1.62 10.9 1.52 11.1 1.50
100 17.0 10.4 1.65 11.1 1.53 12.1 1.41
128 19.2 11.7 1.63 12.2 1.57 12.8 1.50
192 21.6 14.1 1.53 12.1 1.78 14.7 1.47
200 22.0 14.7 1.50 14.1 1.56 14.2 1.54
256 21.9 15.7 1.40 14.5 1.51 13.6 1.61
257 21.4 15.8 1.35 12.8 1.68 13.7 1.56
384 24.3 15.1 1.61 15.6 1.56 17.6 1.38
500 26.0 17.1 1.53 15.2 1.72 17.5 1.49
512 25.5 18.5 1.38 16.0 1.60 17.5 1.45
768 27.0 18.4 1.47 16.1 1.67 17.9 1.51
1000 28.6 21.3 1.34 16.9 1.70 19.6 1.46
1001 24.2 18.8 1.29 15.8 1.53 19.6 1.24
1024 27.8 20.5 1.36 15.6 1.78 18.6 1.50
1536 28.7 21.0 1.37 17.3 1.67 20.4 1.41
2048 26.8 19.8 1.35 14.7 1.83 20.0 1.34
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.5 0.1 20.56 0.4 6.52 0.4 7.03
3x3 1.5 0.3 4.71 0.7 2.30 0.7 2.23
4x4 2.1 0.6 3.41 1.0 2.12 1.1 1.97
6x6 2.2 1.3 1.65 1.7 1.28 1.8 1.19
8x8 2.5 2.2 1.13 2.3 1.08 2.6 0.95
12x12 2.9 4.0 0.71 2.8 1.01 4.3 0.66
16x16 5.5 5.5 1.04 3.3 1.67 5.5 0.95
24x24 7.8 8.7 0.90 4.7 1.68 7.8 0.99
32x32 10.0 12.7 0.79 6.3 1.58 12.4 0.80
48x48 16.8 19.4 0.88 8.8 1.92 18.4 0.90
64x64 22.6 30.2 0.76 11.6 1.94 26.4 0.85
96x96 41.1 35.9 1.16 12.0 3.43 35.1 1.17
100x100 41.7 36.8 1.13 11.8 3.56 36.5 1.14
128x128 54.5 48.1 1.13 16.7 3.28 46.1 1.17
192x192 92.4 86.2 1.08 23.4 3.95 49.2 1.87
200x200 95.7 90.7 1.06 24.0 3.98 50.2 1.91
256x256 107.3 103.2 1.04 26.1 4.13 48.9 2.18
257x257 114.9 119.1 0.96 26.8 4.29 56.8 2.02
384x384 164.8 169.4 0.97 28.5 5.79 63.4 2.60
500x500 212.2 240.4 0.88 30.9 6.85 77.0 2.76
512x512 186.2 187.9 0.99 30.2 6.17 64.9 2.88
768x768 252.3 302.0 0.84 29.5 8.52 77.6 3.25
1000x1000 317.4 451.5 0.70 31.6 10.02 96.0 3.31
1001x1001 312.7 439.2 0.71 31.5 9.86 96.0 3.26
1024x1024 267.3 309.9 0.86 31.5 8.42 81.1 3.30
1536x1536 339.5 488.8 0.69 19.3 17.62 95.1 3.58
2048x2048 318.9 413.2 0.77 14.2 22.47 93.8 3.39
4096x64 181.9 148.8 1.22 26.4 6.89 62.7 2.89
4096x256 356.8 282.6 1.26 28.4 12.61 105.3 3.39
4096x1024 459.0 463.5 0.99 25.4 18.08 118.8 3.86
10000x8 34.0 31.4 1.10 15.6 2.16 29.5 1.15
10000x100 285.8 262.6 1.09 38.4 7.41 69.8 4.10
10000x1000 690.9 713.5 0.97 29.3 23.58 169.1 4.11
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.5 0.1 20.67 0.4 6.28 0.4 6.81
3x3 1.2 0.3 3.97 0.6 2.05 0.6 1.97
4x4 1.7 0.6 2.62 0.9 1.91 0.9 1.79
6x6 1.8 1.2 1.53 1.5 1.19 1.6 1.10
8x8 1.9 1.9 0.94 2.1 0.91 2.2 0.88
12x12 2.1 3.4 0.65 3.1 0.69 3.3 0.65
16x16 4.1 4.7 0.90 4.1 0.99 4.3 0.96
24x24 4.9 7.4 0.66 5.4 0.90 5.7 0.84
32x32 7.4 10.7 0.71 10.2 0.71 9.7 0.77
48x48 11.0 13.3 0.84 13.7 0.81 14.5 0.75
64x64 15.4 18.4 0.84 21.8 0.71 20.6 0.75
96x96 25.2 27.7 0.92 28.0 0.90 28.0 0.90
100x100 26.6 30.4 0.87 29.7 0.90 28.9 0.92
128x128 34.7 38.1 0.91 37.2 0.94 35.4 0.98
192x192 53.6 68.8 0.78 40.5 1.32 38.3 1.40
200x200 55.7 71.5 0.78 42.4 1.31 38.3 1.45
256x256 63.6 77.2 0.82 43.1 1.49 39.0 1.63
257x257 68.1 87.9 0.78 44.9 1.52 43.9 1.55
384x384 93.4 127.3 0.73 48.6 1.92 51.1 1.83
500x500 117.1 180.9 0.65 54.8 2.14 59.8 1.96
512x512 107.1 134.3 0.80 49.8 2.14 51.2 2.10
768x768 138.9 212.5 0.65 55.0 2.52 63.7 2.18
1000x1000 167.3 320.8 0.52 61.4 2.73 74.7 2.24
1001x1001 165.0 279.1 0.59 60.7 2.73 75.6 2.18
1024x1024 142.4 217.1 0.66 56.0 2.54 63.5 2.24
1536x1536 171.1 245.7 0.70 56.1 3.04 75.6 2.27
2048x2048 121.7 144.7 0.84 39.7 3.06 69.1 1.75
4096x64 113.3 99.4 1.14 32.2 3.52 36.6 3.09
4096x256 196.6 185.7 1.06 39.4 4.98 62.1 3.15
4096x1024 229.6 248.6 0.92 43.9 5.22 75.1 3.06
10000x8 14.2 23.2 0.61 17.5 0.78 20.7 0.68
10000x100 142.4 156.5 0.92 44.6 3.19 37.7 3.78
10000x1000 356.7 327.3 1.09 58.6 6.10 93.2 3.83
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 18.90 0.4 7.47 0.4 6.60
3 1.8 0.3 6.36 0.6 3.25 0.6 2.98
4 2.4 0.5 5.01 0.8 2.85 0.9 2.57
6 3.6 0.9 3.77 1.4 2.67 1.5 1.99
8 5.0 1.4 3.53 2.0 2.52 2.3 2.18
12 7.4 2.1 3.42 2.9 2.59 3.5 2.13
16 10.1 2.6 3.75 3.8 2.63 4.7 2.14
24 13.9 4.2 3.05 5.6 2.49 6.7 2.10
32 17.3 5.6 3.08 7.0 2.45 8.8 2.03
48 21.2 8.1 2.67 9.2 2.27 11.8 1.80
64 22.4 9.8 2.31 11.5 1.93 13.7 1.63
96 26.0 11.7 2.22 10.8 2.41 16.6 1.59
100 25.8 12.0 2.15 11.1 2.32 17.2 1.53
128 26.5 14.4 1.84 14.3 1.86 19.7 1.33
192 28.6 27.1 1.05 22.0 1.29 33.2 0.87
200 28.4 28.9 1.00 23.4 1.22 35.9 0.79
256 28.9 38.0 0.76 26.8 1.07 41.9 0.69
257 27.3 37.4 0.72 27.8 0.99 42.2 0.65
384 31.3 57.4 0.55 34.3 0.88 58.4 0.55
500 33.3 75.9 0.44 42.7 0.78 71.6 0.46
512 32.4 44.7 0.72 30.5 1.06 48.7 0.67
768 34.6 89.3 0.39 46.0 0.75 83.1 0.42
1000 36.7 118.9 0.31 55.5 0.65 108.2 0.35
1001 32.9 121.4 0.27 55.6 0.59 107.6 0.30
1024 32.3 73.6 0.44 42.3 0.77 76.2 0.42
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.7 0.1 23.18 0.4 7.56 0.4 6.49
3 1.3 0.3 5.04 0.5 2.73 0.6 2.41
4 2.1 0.4 4.58 0.8 2.83 0.8 2.54
6 3.1 0.8 3.61 1.3 2.36 1.4 2.25
8 3.9 1.1 3.57 2.0 1.93 1.9 2.07
12 6.0 1.9 3.06 3.2 1.87 2.9 2.08
16 7.8 2.3 3.54 4.7 1.64 3.7 2.11
24 10.2 3.6 2.79 6.8 1.49 5.3 1.93
32 11.7 4.8 2.46 8.6 1.39 6.8 1.71
48 14.1 5.9 2.39 12.1 1.18 8.7 1.62
64 15.2 7.2 2.08 14.4 1.06 10.2 1.52
96 17.0 8.2 2.07 12.6 1.34 11.0 1.54
100 16.8 8.5 2.01 13.8 1.22 11.7 1.43
128 16.0 10.4 1.55 14.9 1.08 13.0 1.22
192 17.6 19.2 0.93 19.8 0.89 18.3 0.96
200 17.9 20.6 0.88 21.8 0.82 19.4 0.92
256 17.8 25.7 0.69 26.9 0.66 22.0 0.81
257 16.5 26.1 0.63 27.2 0.60 22.7 0.73
384 18.9 38.4 0.48 40.0 0.47 30.3 0.62
500 19.6 47.2 0.41 50.8 0.39 36.3 0.54
512 18.8 20.2 0.92 22.2 0.85 21.7 0.87
768 19.7 47.6 0.41 46.5 0.42 36.7 0.54
1000 20.5 75.7 0.27 67.4 0.30 51.5 0.40
1001 19.0 75.1 0.25 66.8 0.28 51.7 0.37
1024 13.4 41.2 0.33 38.6 0.35 35.7 0.38