Eigen vs. BLAS/LAPACK libraries, Raspberry Pi 5 (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 built for 64-bit Arm with NEON against OpenBLAS and Arm Performance Libraries on a Raspberry Pi 5.

Eigen’s dense kernels measured head-to-head against two BLAS/LAPACK libraries on a Raspberry Pi 5, one thread, in 64-bit mode: the operations and shapes of the Zen 5 page, with Eigen built for the Armv8-A NEON baseline, against OpenBLAS and Arm Performance Libraries. This is the first measurement of a Raspberry Pi on this site. The same cells in 32-bit mode, against OpenBLAS, are on the 32-bit page.

Conditions

CPU Raspberry Pi 5 Model B Rev 1.0 (Broadcom BCM2712): four Arm Cortex-A76 cores (lscpu: Cortex-A76, r4p1) at 2.4 GHz, L1d 64 KiB and L2 512 KiB per core, L3 2 MiB shared; 8 GiB LPDDR4X; Armv8.2-A with NEON, no SVE
OS Raspberry Pi OS 64-bit (Debian GNU/Linux 12, bookworm), Linux 6.12.109+rpt-rpi-v8, 4 KiB pages
Compiler GCC 12.2.0 (Debian 12.2.0-14+deb12u1), -O3 -DNDEBUG for the default aarch64 target, C++17
Eigen master 674e4a4e5 (5.0.1-dev), default configuration, no external BLAS. The measured tree, 3a00e9407, is that master plus the comparison harness; the library code under Eigen/ is master’s. Every Eigen kernel is the NEON code
OpenBLAS 0.3.34, built from source on the board with TARGET=CORTEXA76 and without OpenMP (library reports CORTEXA76 MAX_THREADS=4); no Fortran compiler was installed, so its LAPACK is the C translation of the reference LAPACK that OpenBLAS builds in that case (NOFORTRAN=1)
Arm Performance Libraries 26.07 (reports 26.7.0 release), GCC build, the sequential LP64 library libarmpl_lp64
Threads 1 for every arm: OPENBLAS_NUM_THREADS, ARMPL_NUM_THREADS, OMP_NUM_THREADS all set to 1; Eigen built without OpenMP
Method Google Benchmark, 10 repetitions of at least 0.2 s each per cell, median of the 10 rates; the process pinned to core 3 with taskset, the performance cpufreq governor (2.4 GHz), an active cooler
Date 2026-10-25 14:25 to 2026-10-26 04:12 (UTC−7): 34 runs, one per operation and library, about 12.7 hours of measurement
Harness benchmarks/comparison/run.py from Eigen merge request !2903 and the commits that add the five new operations, machine profile raspberry-pi5

GEMM at n = 1024 ran at 16.0 GFLOP/s in double and 33.1 in float in Eigen, against 17.0 and 32.8 for OpenBLAS, and 15.9 and 32.8 for Arm Performance Libraries.

How to read the numbers. Every rate is nominal GFLOP/s: the textbook operation count of the operation, stated in each section below, divided by the median wall time of one call. Both arms of a comparison are built into the same binary and run on the same freshly randomized operands, and the reference library’s result is validated against Eigen’s before it is timed. A ratio divides Eigen’s rate by the library’s rate from the same binary and the same run. Each of the two binaries, one per library, also measured every Eigen cell, so Eigen was measured twice: the Eigen line on each chart is the median of the two passes and the shaded band is their spread, the run-to-run noise on this board: within 3 % for 92 % of the cells and above 10 % for 1 %. For the eigenvalue and singular value decompositions the count is the one of the classical algorithm, so a divide-and-conquer or blocked implementation is credited with work it does not do; the ratios between arms are unaffected.

Each run covered one operation against one library, under an exclusive benchmark lock that keeps other timing jobs off the board. It started only after an idle gate (no compilers, one-minute load below 0.5, less than 0.2 of a core busy, SoC temperature below 70 °C) and was discarded and repeated if the whole machine reached 1.8 busy cores in any 4 s sample, or if the firmware’s throttle flags (vcgencmd get_throttled) changed during the run: 2 of 36 attempts were discarded, one for a disturbance (AXPY against OpenBLAS) and one for another (SYEV against Arm Performance Libraries). The flags read 0x0, no under-voltage and no throttling, before and after every accepted run. The SoC temperature peaked at 71.6 °C during the session.

The dotted vertical lines on the charts mark the sizes at which the operands of the call, inputs and outputs together, fill a core’s L1 data cache (64 KiB), its L2 cache (512 KiB) and the shared L3 cache (2 MiB).

AXPY

y += alpha * x against ?axpy, alpha = 0.75; (2n) flops. Lengths run from 2 to (2^{24}) (128 MiB per double vector), through every cache level into DRAM.

Short vectors. Up to about n = 32 the AXPY and DOT rates measure the cost of a call rather than the kernel. Eigen’s expression compiles inline into the calling loop, while a call into a shared library pays a cost of its own before it reads an element. That cost is fixed per call, so the ratios at the small end are ratios of fixed costs. The DOT cells in double at n = 2 show it directly: 1.98 ns per call for Eigen against 8.3 ns for OpenBLAS and 19.2 ns for Arm Performance Libraries. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

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.

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 29.3 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 11.1 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 Arm Performance Libraries 5.09 2.09 0.97 0.88 1.06
AXPY float OpenBLAS 2.59 1.55 1.20 1.12 1.09
AXPY double Arm Performance Libraries 3.62 1.31 0.77 0.88 1.05
AXPY double OpenBLAS 2.24 1.09 0.90 0.94 1.06
DOT float Arm Performance Libraries 6.49 2.53 1.46 1.03 1.00
DOT float OpenBLAS 3.49 1.71 1.27 1.04 1.00
DOT double Arm Performance Libraries 5.79 1.92 1.48 1.10 1.12
DOT double OpenBLAS 2.81 2.13 2.39 1.54 1.16
GEMV float Arm Performance Libraries 4.56 1.79 0.77 0.70 –
GEMV float OpenBLAS 2.98 3.02 0.85 0.34 –
GEMV double Arm Performance Libraries 4.63 1.59 1.02 0.54 –
GEMV double OpenBLAS 2.79 2.53 0.67 0.31 –
GEMM float Arm Performance Libraries 4.01 1.08 0.97 1.03 –
GEMM float OpenBLAS 1.39 0.96 0.97 1.01 –
GEMM double Arm Performance Libraries 2.74 0.96 0.94 1.05 –
GEMM double OpenBLAS 1.71 1.10 0.94 0.97 –
TRSM float Arm Performance Libraries 3.22 2.64 1.26 1.27 –
TRSM float OpenBLAS 2.95 3.18 1.40 0.98 –
TRSM double Arm Performance Libraries 2.63 1.58 1.07 1.10 –
TRSM double OpenBLAS 2.13 1.51 0.98 0.84 –
TRMM float Arm Performance Libraries 3.85 1.05 0.88 0.88 –
TRMM float OpenBLAS 0.70 0.90 0.93 0.86 –
TRMM double Arm Performance Libraries 3.51 0.86 0.83 0.80 –
TRMM double OpenBLAS 0.78 0.96 0.84 0.75 –
SYMM float Arm Performance Libraries 2.29 1.14 0.95 0.92 –
SYMM float OpenBLAS 0.86 0.99 0.95 0.92 –
SYMM double Arm Performance Libraries 2.04 1.02 0.88 0.82 –
SYMM double OpenBLAS 0.95 1.09 0.87 0.78 –
SYRK float Arm Performance Libraries 2.58 1.20 0.97 1.01 –
SYRK float OpenBLAS 0.71 0.91 0.97 1.01 –
SYRK double Arm Performance Libraries 2.07 1.00 0.96 1.03 –
SYRK double OpenBLAS 0.60 0.94 0.90 0.94 –
POTRF float Arm Performance Libraries 1.09 1.61 1.17 1.22 –
POTRF float OpenBLAS 1.47 1.53 1.09 1.02 –
POTRF double Arm Performance Libraries 1.07 1.28 1.07 1.12 –
POTRF double OpenBLAS 1.36 1.22 0.92 0.94 –
PSTRF float Arm Performance Libraries 2.49 1.95 1.38 1.73 –
PSTRF float OpenBLAS 1.60 1.75 1.36 1.51 –
PSTRF double Arm Performance Libraries 2.42 1.56 1.13 1.33 –
PSTRF double OpenBLAS 1.60 1.47 1.21 1.34 –
SYTRF float Arm Performance Libraries 3.72 1.87 1.14 1.08 –
SYTRF float OpenBLAS 1.58 1.64 1.51 1.02 –
SYTRF double Arm Performance Libraries 3.31 1.50 0.96 0.96 –
SYTRF double OpenBLAS 1.64 1.43 1.31 1.00 –
GETRF float Arm Performance Libraries 1.03 1.29 1.28 1.68 –
GETRF float OpenBLAS 1.76 1.50 1.12 0.95 –
GETRF double Arm Performance Libraries 0.96 0.99 1.02 1.38 –
GETRF double OpenBLAS 1.68 1.06 0.87 0.86 –
GEQRF float Arm Performance Libraries 0.64 1.22 1.23 1.17 –
GEQRF float OpenBLAS 1.33 1.57 1.15 1.17 –
GEQRF double Arm Performance Libraries 0.66 1.14 1.03 1.02 –
GEQRF double OpenBLAS 1.30 1.44 1.05 1.07 –
GELS float Arm Performance Libraries 1.94 1.96 1.63 1.28 –
GELS float OpenBLAS 1.50 1.73 1.35 1.21 –
GELS double Arm Performance Libraries 1.82 1.74 1.26 1.08 –
GELS double OpenBLAS 1.44 1.56 1.16 1.07 –
SYEV float Arm Performance Libraries 2.71 2.09 2.37 1.50 –
SYEV float OpenBLAS 3.01 3.20 2.66 1.28 –
SYEV double Arm Performance Libraries 2.13 1.50 1.28 0.87 –
SYEV double OpenBLAS 2.65 2.39 1.49 0.74 –
GESDD float Arm Performance Libraries 2.75 0.94 0.96 1.32 –
GESDD float OpenBLAS 2.45 1.09 1.08 0.98 –
GESDD double Arm Performance Libraries 1.86 0.65 0.81 1.07 –
GESDD double OpenBLAS 2.05 0.77 0.80 0.79 –
GEEV float Arm Performance Libraries 4.43 1.40 0.46 – –
GEEV float OpenBLAS 3.40 1.84 0.50 – –
GEEV double Arm Performance Libraries 3.69 1.23 0.45 – –
GEEV double OpenBLAS 3.06 1.54 0.45 – –

Observations

  • Level with both libraries on the large level-3 products. GEMM is 0.94 to 1.05 times OpenBLAS and Arm Performance Libraries in double from n = 192, TRSM 0.84 to 1.10 and POTRF 0.92 to 1.12. Against OpenBLAS, GETRF is 0.86 to 0.87 above n = 192; against Arm Performance Libraries it is 1.02 to 1.38.
  • Eigen leads at the small end. Up to n = 128 it is 1.1 to 5.8 times faster on AXPY and DOT and 1.5 to 4.6 times on GEMV and TRSM.
  • GEMV falls behind once the matrix leaves the L2 cache. Eigen’s rate drops from 6.1 GFLOP/s at n = 256 (0.5 MiB) to 2.8 at 512 and 1.1 at 1536, while OpenBLAS holds 4.7 and then 3.6 to 3.3 up to n = 4096: ratios of 0.61 at n = 512 and about 0.3 from n = 768. Arm Performance Libraries sits between the two (1.5 to 2.5 GFLOP/s from n = 1536).
  • TRMM and SYMM are 0.75 to 0.88 times both libraries above n = 192.
  • The new factorizations are ahead of OpenBLAS’s C LAPACK and level with or ahead of Arm Performance Libraries: PSTRF 1.1 to 1.6, SYTRF 0.96 to 1.5 and GELS 1.1 to 1.7 in double.
  • SYEV, GESDD and GEEV trail both libraries at the larger sizes: SYEV 0.74 (OpenBLAS) and 0.87 (Arm Performance Libraries) above n = 1536, GESDD 0.77 to 0.80 against OpenBLAS from n = 24 and 0.65 to 0.81 against Arm Performance Libraries to n = 1024, and GEEV 0.45 at n = 192 to 1024.

Caveats

  • The Raspberry Pi 5 has 4 KiB pages and a small shared last-level cache (2 MiB), so rates at sizes beyond a few megabytes are largely set by the memory system; compare arms measured in the same session.
  • OpenBLAS was built without a Fortran compiler, so its LAPACK routines are the C translation of the reference LAPACK rather than the Fortran one the other pages’ OpenBLAS builds use; BLAS kernels are unaffected. LAPACK ratios against OpenBLAS therefore compare Eigen with that translation.
  • The board runs the performance governor at 2.4 GHz with an active cooler; its SoC peaked at 71.6 °C and the firmware reported no throttling or under-voltage during any accepted run.
  • PSTRF compares two algorithms that pivot on the same entry but produce different factors, (L L^T) and (L D L^T), and charges both the same flop count.

Full tables

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

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