Eigen vs. BLAS/LAPACK libraries, Raspberry Pi 5 in 32-bit mode (October 2026)
The cells of the 64-bit page measured again on the same board with 32-bit binaries: the Raspberry Pi 5’s Cortex-A76 executes AArch32 at the user level, and the 64-bit kernel runs 32-bit programs as they are. Eigen is built for the Armv8-A baseline in AArch32 state with NEON and hard-float calling conventions, against OpenBLAS. Arm Performance Libraries are not on this page: they provide no AArch32 build.
NEON in AArch32 state has no double-precision lanes, so Eigen’s double-precision kernels on this page run on the scalar floating-point unit, while its single-precision kernels use 4-lane NEON packets. The double-precision and single-precision results therefore differ in kind from each other, and from the 64-bit page’s.
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 |
| OS | Raspberry Pi OS 64-bit (Debian GNU/Linux 12, bookworm), Linux 6.12.109+rpt-rpi-v8 with 32-bit compatibility (CONFIG_COMPAT), 4 KiB pages; the benchmark binaries are statically linked armhf executables |
| Compiler | the Debian bookworm cross compiler arm-linux-gnueabihf-g++ 12.2.0, -march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard -O3 -DNDEBUG, 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 |
| OpenBLAS | 0.3.34, cross-built with TARGET=ARMV7, static, without OpenMP (library reports ARMV7 MAX_THREADS=4); no Fortran compiler was available, so its LAPACK is the C translation of the reference LAPACK that OpenBLAS builds in that case (NOFORTRAN=1) |
| Threads | 1 for every arm: OPENBLAS_NUM_THREADS and OMP_NUM_THREADS 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-26 04:13 to 16:08 (UTC−7): 17 runs, one per operation, about 11.6 hours of measurement |
| Harness | benchmarks/comparison/run.py --machine raspberry-pi5-arm32 from Eigen merge request !2903 and the commits that add the five new operations |
GEMM at n = 1024 ran at 3.5 GFLOP/s in double and 19.9 in float in Eigen, against 8.9 and 9.3 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 OpenBLAS’s rate from the same binary and the same run. Eigen was measured once per cell, in that binary, so the charts carry no pass-to-pass band; the ten repetitions within a cell span at most 3 % of their median in 77 % of the cells. 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, 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: 1 of 18 attempts was discarded (DOT: the first attempt produced no result file). The
flags read 0x0 before and after every accepted run. The SoC temperature peaked at 70.5 °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 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: 3.41 ns per call for Eigen against 11.3 ns for OpenBLAS. Eigen still computes the whole operation on every call; nothing is hoisted out of the timed loop.

DOT
x.dot(y) against ?dot; (2n) flops, the same lengths. Real scalars only: the Fortran
convention for returning a complex function value is not fixed by the platform ABI and differs
between library builds, so ?dotc cannot be declared portably.
Up to about n = 32 the rates measure the cost of a call; see AXPY.

GEMV
y.noalias() += A * x against ?gemv, column-major, no transposition; (2mn) flops.
Square matrices, then the short-fat (n = 10000, m grows) and tall-skinny (m = 10000, n grows) sweeps.

GEMM
C.noalias() += A * B against ?gemm, column-major, no transposition; (2mnk) flops.
Square matrices first; then the two tall-skinny sweeps, where m stays at 4096 or 10000 while n = k grows; then the assorted non-square shapes that fit neither.

TRSM
A.triangularView<Lower>().solveInPlace(X) against ?trsm with the m-by-m lower triangle on the
left and n right-hand sides, no transposition, non-unit diagonal; (m(m+1)n) flops. The solve is
destructive, so the timed region includes one copy of B for both arms.
Square shapes (m = n), then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of right-hand sides, then the remaining shapes with 4096 right-hand sides against a small triangle.

TRMM
X.noalias() = A.triangularView<Lower>() * B against ?trmm with the m-by-m lower triangle on the left
and n columns in B, no transposition, non-unit diagonal; (m(m+1)n) flops, TRSM’s count. ?trmm
overwrites B, so the reference arm copies B into the destination and multiplies in place; the Eigen arm
writes the product to the destination, which noalias() zero-fills before accumulating. Each arm makes
the one pass over the destination its interface requires, and neither allocates inside the timed region.
The same shapes as TRSM: square, then the sweeps with a fixed triangle of order 1024 or 4096 and a growing number of columns, then the remaining shapes with 4096 columns against a small triangle.

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

SYRK
C.selfadjointView<Lower>().rankUpdate(A) against ?syrk, lower triangle, no transposition, with
C n-by-n and A n-by-k; (n(n+1)k) flops.
Square shapes (n = k), then the sweeps: a 4096-by-4096 matrix updated by a growing number of columns, and the Gram matrix of a short, wide factor with 4096 columns.

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

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

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

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

GEQRF
HouseholderQR<Ref<MatrixXd>> in place against ?geqrf, m ≥ n; (2mn^2 - 2n^3/3) flops, the
same copy-then-factorize protocol as GETRF.
Square shapes, then the tall-skinny sweeps with m fixed at 4096, 10000 and 100000.

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

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

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

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

Summary
Geometric mean of the Eigen ÷ library rate ratio over the square shapes in each size band. Above 1, Eigen is faster. Only the vector operations reach the last band.
| Operation | Scalar | Library | n ≤ 16 | 24–128 | 192–1024 | 1536–16384 | > 16384 |
|---|---|---|---|---|---|---|---|
| AXPY | float | OpenBLAS | 3.10 | 2.26 | 1.88 | 1.82 | 1.35 |
| AXPY | double | OpenBLAS | 2.53 | 0.96 | 0.71 | 0.69 | 0.97 |
| DOT | float | OpenBLAS | 3.45 | 1.90 | 1.79 | 1.82 | 1.26 |
| DOT | double | OpenBLAS | 1.88 | 0.95 | 0.77 | 0.76 | 0.90 |
| GEMV | float | OpenBLAS | 2.18 | 1.91 | 2.21 | 3.21 | – |
| GEMV | double | OpenBLAS | 1.44 | 0.69 | 1.29 | 1.65 | – |
| GEMM | float | OpenBLAS | 2.09 | 2.02 | 2.12 | 2.24 | – |
| GEMM | double | OpenBLAS | 1.18 | 0.39 | 0.39 | 0.41 | – |
| TRSM | float | OpenBLAS | 2.43 | 1.54 | 1.75 | 1.95 | – |
| TRSM | double | OpenBLAS | 1.17 | 0.39 | 0.31 | 0.36 | – |
| TRMM | float | OpenBLAS | 0.67 | 1.42 | 1.82 | 1.93 | – |
| TRMM | double | OpenBLAS | 0.64 | 0.35 | 0.33 | 0.37 | – |
| SYMM | float | OpenBLAS | 1.22 | 1.98 | 2.11 | 2.14 | – |
| SYMM | double | OpenBLAS | 0.77 | 0.40 | 0.38 | 0.38 | – |
| SYRK | float | OpenBLAS | 0.82 | 1.62 | 1.93 | 2.11 | – |
| SYRK | double | OpenBLAS | 0.70 | 0.40 | 0.37 | 0.40 | – |
| POTRF | float | OpenBLAS | 1.60 | 1.43 | 1.89 | 2.05 | – |
| POTRF | double | OpenBLAS | 1.46 | 0.62 | 0.41 | 0.40 | – |
| PSTRF | float | OpenBLAS | 1.53 | 1.87 | 2.09 | 2.23 | – |
| PSTRF | double | OpenBLAS | 1.68 | 1.07 | 0.59 | 0.56 | – |
| SYTRF | float | OpenBLAS | 1.28 | 1.68 | 2.08 | 1.91 | – |
| SYTRF | double | OpenBLAS | 1.47 | 0.98 | 0.63 | 0.48 | – |
| GETRF | float | OpenBLAS | 1.70 | 1.71 | 1.93 | 2.00 | – |
| GETRF | double | OpenBLAS | 1.85 | 0.60 | 0.42 | 0.40 | – |
| GEQRF | float | OpenBLAS | 0.98 | 1.58 | 2.05 | 2.12 | – |
| GEQRF | double | OpenBLAS | 1.02 | 0.80 | 0.47 | 0.46 | – |
| GELS | float | OpenBLAS | 1.42 | 1.79 | 2.25 | 2.16 | – |
| GELS | double | OpenBLAS | 1.49 | 0.89 | 0.52 | 0.46 | – |
| SYEV | float | OpenBLAS | 2.29 | 1.89 | 1.41 | 1.09 | – |
| SYEV | double | OpenBLAS | 2.15 | 1.28 | 0.81 | 0.83 | – |
| GESDD | float | OpenBLAS | 2.35 | 1.16 | 1.62 | 2.25 | – |
| GESDD | double | OpenBLAS | 2.12 | 0.58 | 0.52 | 0.74 | – |
| GEEV | float | OpenBLAS | 3.03 | 1.91 | 0.89 | – | – |
| GEEV | double | OpenBLAS | 2.15 | 0.80 | 0.33 | – | – |
Observations
- Double precision: Eigen runs at 0.3 to 0.4 times OpenBLAS on the large products. From n = 24, GEMM is 0.39 to 0.41, TRSM 0.31 to 0.39, TRMM 0.33 to 0.37, SYMM 0.38 to 0.40 and SYRK 0.37 to 0.40; POTRF and GETRF fall from 0.6 at n = 24 to 128 to 0.40 above n = 192. The same Eigen source built for AArch64, where double-precision NEON lanes exist, is level with OpenBLAS (the 64-bit page).
- Single precision: Eigen’s NEON code leads. In float, GEMM is 2.0 to 2.2 times OpenBLAS from n = 24, SYMM 2.0 to 2.1, SYRK 1.6 to 2.1, TRSM 1.5 to 2.0, GETRF 1.7 to 2.0, GEQRF 1.6 to 2.1 and GELS 1.8 to 2.3.
- GEMV is the exception to the double-precision pattern: Eigen is 1.3 to 1.65 times OpenBLAS in double above n = 192, and 2.2 to 3.2 times in float.
- The new factorizations in double: PSTRF is level with OpenBLAS at n = 24 to 128 (1.07) and 0.56 to 0.59 above, SYTRF 0.98 falling to 0.48, GELS 0.89 falling to 0.46.
- SYEV, GESDD and GEEV: SYEV is 0.8 to 1.3 times OpenBLAS in double and 1.1 to 1.9 in float; GESDD 0.52 to 0.74 in double; GEEV 0.33 in double and 0.89 in float 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.
- The binaries are 32-bit hard-float executables run by a 64-bit kernel; 32-bit userspace is not the configuration of the 64-bit page, so absolute rates and ratios on the two pages are not comparable cell by cell.
- 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. OpenBLAS’s
ARMV7target is its generic 32-bit Arm target, not one tuned for the Cortex-A76. - The board runs the
performancegovernor at 2.4 GHz with an active cooler; its SoC peaked at 70.5 °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 ÷ OpenBLAS ratio. Eigen was measured once per cell, in the same binary and run as the library.
AXPY float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.8 | 0.3 | 2.93 |
| 3 | 1.0 | 0.4 | 2.64 |
| 4 | 2.1 | 0.5 | 3.90 |
| 6 | 2.1 | 0.7 | 2.85 |
| 8 | 3.2 | 0.9 | 3.47 |
| 12 | 3.9 | 1.2 | 3.16 |
| 16 | 4.4 | 1.5 | 2.94 |
| 24 | 5.0 | 1.9 | 2.67 |
| 32 | 5.4 | 2.1 | 2.54 |
| 48 | 5.8 | 2.5 | 2.34 |
| 64 | 6.1 | 2.8 | 2.19 |
| 96 | 6.4 | 3.1 | 2.07 |
| 100 | 6.4 | 3.1 | 2.09 |
| 128 | 6.5 | 3.2 | 2.01 |
| 192 | 6.7 | 3.4 | 1.95 |
| 256 | 6.7 | 3.5 | 1.92 |
| 384 | 6.8 | 3.6 | 1.89 |
| 512 | 6.9 | 3.7 | 1.87 |
| 768 | 6.9 | 3.7 | 1.86 |
| 1000 | 6.9 | 3.7 | 1.85 |
| 1001 | 6.9 | 3.7 | 1.84 |
| 1024 | 6.9 | 3.7 | 1.85 |
| 1536 | 6.8 | 3.8 | 1.82 |
| 2048 | 6.9 | 3.8 | 1.81 |
| 3072 | 6.9 | 3.8 | 1.82 |
| 4096 | 6.9 | 3.8 | 1.82 |
| 6144 | 6.9 | 3.8 | 1.82 |
| 8192 | 6.9 | 3.8 | 1.82 |
| 10000 | 6.9 | 3.8 | 1.82 |
| 12288 | 6.9 | 3.8 | 1.81 |
| 16384 | 6.9 | 3.8 | 1.81 |
| 32768 | 6.9 | 3.8 | 1.80 |
| 65536 | 6.8 | 3.8 | 1.79 |
| 100000 | 6.8 | 3.8 | 1.78 |
| 131072 | 6.8 | 3.8 | 1.78 |
| 262144 | 6.7 | 3.8 | 1.76 |
| 524288 | 4.6 | 2.7 | 1.69 |
| 1000000 | 2.0 | 1.8 | 1.11 |
| 1048576 | 1.9 | 1.7 | 1.10 |
| 2097152 | 1.6 | 1.6 | 1.02 |
| 4194304 | 1.5 | 1.5 | 1.00 |
| 8388608 | 1.4 | 1.4 | 0.99 |
| 16777216 | 1.4 | 1.4 | 0.99 |
AXPY double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 1.1 | 0.3 | 3.83 |
| 3 | 1.4 | 0.4 | 3.61 |
| 4 | 1.7 | 0.5 | 3.22 |
| 6 | 1.9 | 0.7 | 2.62 |
| 8 | 2.0 | 0.9 | 2.20 |
| 12 | 2.1 | 1.2 | 1.74 |
| 16 | 2.2 | 1.4 | 1.50 |
| 24 | 2.2 | 1.8 | 1.27 |
| 32 | 2.3 | 2.0 | 1.12 |
| 48 | 2.3 | 2.3 | 1.00 |
| 64 | 2.3 | 2.5 | 0.92 |
| 96 | 2.4 | 2.8 | 0.84 |
| 100 | 2.4 | 2.9 | 0.82 |
| 128 | 2.4 | 2.9 | 0.80 |
| 192 | 2.4 | 3.1 | 0.76 |
| 256 | 2.4 | 3.2 | 0.74 |
| 384 | 2.3 | 3.3 | 0.71 |
| 512 | 2.4 | 3.3 | 0.71 |
| 768 | 2.4 | 3.4 | 0.70 |
| 1000 | 2.4 | 3.4 | 0.70 |
| 1001 | 2.4 | 3.4 | 0.70 |
| 1024 | 2.4 | 3.4 | 0.70 |
| 1536 | 2.4 | 3.4 | 0.69 |
| 2048 | 2.4 | 3.4 | 0.69 |
| 3072 | 2.4 | 3.5 | 0.69 |
| 4096 | 2.4 | 3.4 | 0.69 |
| 6144 | 2.4 | 3.4 | 0.69 |
| 8192 | 2.4 | 3.5 | 0.69 |
| 10000 | 2.4 | 3.4 | 0.69 |
| 12288 | 2.4 | 3.5 | 0.69 |
| 16384 | 2.4 | 3.5 | 0.69 |
| 32768 | 2.4 | 3.5 | 0.69 |
| 65536 | 2.4 | 3.3 | 0.71 |
| 100000 | 2.4 | 3.2 | 0.73 |
| 131072 | 2.4 | 3.2 | 0.74 |
| 262144 | 2.1 | 1.3 | 1.70 |
| 524288 | 1.0 | 0.9 | 1.18 |
| 1000000 | 0.8 | 0.8 | 1.06 |
| 1048576 | 0.8 | 0.8 | 1.06 |
| 2097152 | 0.7 | 0.7 | 1.05 |
| 4194304 | 0.7 | 0.7 | 1.04 |
| 8388608 | 0.7 | 0.7 | 1.03 |
| 16777216 | 0.7 | 0.7 | 1.03 |
DOT float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 1.3 | 0.4 | 3.60 |
| 3 | 1.8 | 0.5 | 3.50 |
| 4 | 3.7 | 0.7 | 4.95 |
| 6 | 2.7 | 1.0 | 2.79 |
| 8 | 5.3 | 1.3 | 4.01 |
| 12 | 6.1 | 1.7 | 3.47 |
| 16 | 5.1 | 2.1 | 2.40 |
| 24 | 5.8 | 2.7 | 2.15 |
| 32 | 6.1 | 3.1 | 2.00 |
| 48 | 6.8 | 3.6 | 1.89 |
| 64 | 7.5 | 3.9 | 1.89 |
| 96 | 8.0 | 4.3 | 1.85 |
| 100 | 7.6 | 4.4 | 1.75 |
| 128 | 8.3 | 4.5 | 1.83 |
| 192 | 8.0 | 4.6 | 1.75 |
| 256 | 8.2 | 4.7 | 1.75 |
| 384 | 8.8 | 4.7 | 1.86 |
| 512 | 8.4 | 4.7 | 1.78 |
| 768 | 8.8 | 4.7 | 1.86 |
| 1000 | 8.5 | 4.7 | 1.80 |
| 1001 | 8.4 | 4.7 | 1.77 |
| 1024 | 8.4 | 4.7 | 1.78 |
| 1536 | 8.7 | 4.7 | 1.85 |
| 2048 | 8.5 | 4.7 | 1.79 |
| 3072 | 8.5 | 4.8 | 1.79 |
| 4096 | 8.5 | 4.8 | 1.79 |
| 6144 | 9.0 | 4.8 | 1.89 |
| 8192 | 8.5 | 4.8 | 1.78 |
| 10000 | 8.5 | 4.8 | 1.78 |
| 12288 | 9.2 | 4.8 | 1.92 |
| 16384 | 8.5 | 4.8 | 1.79 |
| 32768 | 8.8 | 4.8 | 1.84 |
| 65536 | 8.5 | 4.8 | 1.78 |
| 100000 | 8.9 | 4.8 | 1.86 |
| 131072 | 8.6 | 4.8 | 1.80 |
| 262144 | 7.8 | 4.8 | 1.65 |
| 524288 | 6.0 | 4.7 | 1.29 |
| 1000000 | 4.1 | 4.4 | 0.93 |
| 1048576 | 4.1 | 4.4 | 0.93 |
| 2097152 | 3.6 | 3.8 | 0.95 |
| 4194304 | 3.4 | 3.5 | 0.95 |
| 8388608 | 3.3 | 3.4 | 0.95 |
| 16777216 | 3.2 | 3.4 | 0.95 |
DOT double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 1.2 | 0.4 | 3.31 |
| 3 | 0.6 | 0.5 | 1.23 |
| 4 | 1.7 | 0.6 | 2.67 |
| 6 | 1.8 | 0.9 | 2.08 |
| 8 | 2.0 | 1.1 | 1.89 |
| 12 | 2.0 | 1.4 | 1.44 |
| 16 | 2.2 | 1.6 | 1.35 |
| 24 | 2.3 | 2.0 | 1.16 |
| 32 | 2.3 | 2.1 | 1.07 |
| 48 | 2.3 | 2.3 | 0.99 |
| 64 | 2.3 | 2.6 | 0.91 |
| 96 | 2.4 | 2.7 | 0.86 |
| 100 | 2.4 | 2.8 | 0.85 |
| 128 | 2.4 | 2.9 | 0.83 |
| 192 | 2.4 | 3.0 | 0.80 |
| 256 | 2.4 | 3.0 | 0.79 |
| 384 | 2.4 | 3.1 | 0.77 |
| 512 | 2.4 | 3.1 | 0.76 |
| 768 | 2.4 | 3.1 | 0.76 |
| 1000 | 2.4 | 3.1 | 0.75 |
| 1001 | 2.4 | 3.1 | 0.76 |
| 1024 | 2.4 | 3.2 | 0.75 |
| 1536 | 2.4 | 3.2 | 0.75 |
| 2048 | 2.4 | 3.2 | 0.75 |
| 3072 | 2.4 | 3.2 | 0.76 |
| 4096 | 2.4 | 3.2 | 0.76 |
| 6144 | 2.4 | 3.2 | 0.76 |
| 8192 | 2.4 | 3.2 | 0.76 |
| 10000 | 2.4 | 3.1 | 0.76 |
| 12288 | 2.4 | 3.2 | 0.75 |
| 16384 | 2.4 | 3.2 | 0.75 |
| 32768 | 2.0 | 3.2 | 0.64 |
| 65536 | 2.0 | 3.1 | 0.63 |
| 100000 | 2.2 | 3.2 | 0.70 |
| 131072 | 2.0 | 2.8 | 0.72 |
| 262144 | 2.2 | 2.1 | 1.01 |
| 524288 | 2.1 | 1.8 | 1.14 |
| 1000000 | 1.8 | 1.7 | 1.03 |
| 1048576 | 1.8 | 1.7 | 1.07 |
| 2097152 | 1.6 | 1.6 | 1.02 |
| 4194304 | 1.6 | 1.5 | 1.03 |
| 8388608 | 1.6 | 1.5 | 1.04 |
| 16777216 | 1.6 | 1.5 | 1.03 |
GEMV float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.4 | 0.2 | 2.45 |
| 3x3 | 0.7 | 0.3 | 1.96 |
| 4x4 | 1.4 | 0.5 | 2.57 |
| 6x6 | 2.2 | 0.9 | 2.48 |
| 8x8 | 4.0 | 2.1 | 1.93 |
| 12x12 | 6.4 | 2.5 | 2.56 |
| 16x16 | 6.9 | 4.5 | 1.54 |
| 24x24 | 8.0 | 5.9 | 1.37 |
| 32x32 | 14.5 | 6.6 | 2.19 |
| 48x48 | 12.6 | 7.3 | 1.71 |
| 64x64 | 16.1 | 7.6 | 2.11 |
| 96x96 | 16.6 | 7.9 | 2.11 |
| 100x100 | 15.6 | 7.2 | 2.16 |
| 128x128 | 14.3 | 7.7 | 1.85 |
| 192x192 | 13.8 | 7.5 | 1.84 |
| 200x200 | 13.2 | 7.2 | 1.83 |
| 256x256 | 13.9 | 5.9 | 2.35 |
| 257x257 | 11.3 | 6.5 | 1.75 |
| 384x384 | 12.4 | 4.8 | 2.60 |
| 500x500 | 8.8 | 4.6 | 1.92 |
| 512x512 | 9.5 | 2.8 | 3.35 |
| 768x768 | 7.5 | 2.3 | 3.24 |
| 1000x1000 | 2.8 | 2.7 | 1.03 |
| 1001x1001 | 2.4 | 1.6 | 1.48 |
| 1024x1024 | 4.1 | 0.7 | 5.52 |
| 1536x1536 | 3.2 | 0.7 | 4.57 |
| 2048x2048 | 2.5 | 0.6 | 3.87 |
| 3072x3072 | 2.2 | 0.6 | 3.47 |
| 4096x4096 | 2.1 | 0.6 | 3.51 |
| 4097x4097 | 2.0 | 1.3 | 1.59 |
| 8x10000 | 7.5 | 6.8 | 1.10 |
| 100x10000 | 6.0 | 1.1 | 5.35 |
| 1000x10000 | 2.4 | 1.1 | 2.28 |
| 4000x10000 | 2.1 | 0.9 | 2.44 |
| 10000x8 | 13.7 | 6.3 | 2.18 |
| 10000x100 | 2.4 | 2.5 | 0.98 |
| 10000x1000 | 2.4 | 2.6 | 0.91 |
| 10000x4000 | 2.4 | 1.5 | 1.62 |
GEMV double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.4 | 0.2 | 1.98 |
| 3x3 | 0.8 | 0.4 | 1.93 |
| 4x4 | 1.2 | 0.6 | 1.87 |
| 6x6 | 1.8 | 1.0 | 1.70 |
| 8x8 | 2.5 | 2.2 | 1.16 |
| 12x12 | 3.1 | 2.7 | 1.17 |
| 16x16 | 3.4 | 4.5 | 0.76 |
| 24x24 | 3.7 | 5.6 | 0.66 |
| 32x32 | 3.8 | 6.2 | 0.62 |
| 48x48 | 4.5 | 6.8 | 0.67 |
| 64x64 | 4.0 | 7.0 | 0.57 |
| 96x96 | 5.1 | 6.2 | 0.82 |
| 100x100 | 5.0 | 6.1 | 0.82 |
| 128x128 | 3.8 | 5.1 | 0.74 |
| 192x192 | 3.7 | 4.9 | 0.74 |
| 200x200 | 4.2 | 5.3 | 0.79 |
| 256x256 | 3.7 | 3.3 | 1.12 |
| 257x257 | 3.4 | 3.9 | 0.87 |
| 384x384 | 3.7 | 3.0 | 1.26 |
| 500x500 | 3.1 | 2.3 | 1.36 |
| 512x512 | 2.3 | 1.4 | 1.62 |
| 768x768 | 1.9 | 0.9 | 2.25 |
| 1000x1000 | 1.7 | 1.1 | 1.59 |
| 1001x1001 | 1.3 | 0.8 | 1.65 |
| 1024x1024 | 1.1 | 0.6 | 1.72 |
| 1536x1536 | 1.7 | 0.6 | 2.71 |
| 2048x2048 | 0.9 | 0.6 | 1.57 |
| 3072x3072 | 1.1 | 0.6 | 1.79 |
| 4096x4096 | 0.6 | 0.4 | 1.44 |
| 4097x4097 | 0.6 | 0.5 | 1.12 |
| 8x10000 | 3.6 | 5.7 | 0.64 |
| 100x10000 | 2.3 | 0.8 | 2.90 |
| 1000x10000 | 1.9 | 0.7 | 2.64 |
| 4000x10000 | 1.3 | 0.5 | 2.63 |
| 10000x8 | 3.4 | 2.6 | 1.28 |
| 10000x100 | 0.7 | 0.9 | 0.79 |
| 10000x1000 | 2.6 | 1.1 | 2.43 |
| 10000x4000 | 2.6 | 0.9 | 2.79 |
GEMM float
| m×n×k | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2x2 | 0.4 | 0.1 | 3.78 |
| 3x3x3 | 0.7 | 0.3 | 2.23 |
| 4x4x4 | 2.9 | 0.7 | 4.16 |
| 6x6x6 | 2.1 | 1.6 | 1.28 |
| 8x8x8 | 4.5 | 2.9 | 1.53 |
| 12x12x12 | 8.4 | 5.2 | 1.61 |
| 16x16x16 | 9.9 | 6.3 | 1.56 |
| 24x24x24 | 14.1 | 7.5 | 1.88 |
| 32x32x32 | 15.2 | 8.0 | 1.90 |
| 48x48x48 | 17.6 | 8.6 | 2.05 |
| 64x64x64 | 17.8 | 8.8 | 2.02 |
| 96x96x96 | 19.3 | 9.0 | 2.14 |
| 100x100x100 | 18.9 | 9.1 | 2.07 |
| 128x128x128 | 19.5 | 9.2 | 2.12 |
| 160x160x160 | 19.6 | 9.3 | 2.11 |
| 192x192x192 | 19.9 | 9.3 | 2.14 |
| 200x200x200 | 19.8 | 9.3 | 2.13 |
| 224x224x224 | 19.9 | 9.4 | 2.13 |
| 256x256x256 | 19.9 | 9.3 | 2.14 |
| 257x257x257 | 19.7 | 9.1 | 2.15 |
| 288x288x288 | 20.0 | 9.3 | 2.15 |
| 320x320x320 | 19.1 | 9.3 | 2.05 |
| 384x384x384 | 19.0 | 9.4 | 2.03 |
| 448x448x448 | 19.1 | 9.3 | 2.04 |
| 500x500x500 | 19.0 | 9.3 | 2.05 |
| 512x512x512 | 19.1 | 9.2 | 2.07 |
| 768x768x768 | 19.9 | 9.2 | 2.15 |
| 1000x1000x1000 | 20.1 | 9.2 | 2.18 |
| 1001x1001x1001 | 20.1 | 9.1 | 2.20 |
| 1024x1024x1024 | 19.9 | 9.3 | 2.15 |
| 1536x1536x1536 | 20.4 | 9.3 | 2.20 |
| 2048x2048x2048 | 20.4 | 9.2 | 2.22 |
| 3072x3072x3072 | 20.6 | 9.2 | 2.24 |
| 4096x4096x4096 | 20.7 | 9.1 | 2.26 |
| 4097x4097x4097 | 20.8 | 9.1 | 2.29 |
| 64x64x1024 | 18.2 | 9.0 | 2.01 |
| 64x1024x64 | 18.4 | 9.0 | 2.05 |
| 256x256x1024 | 18.9 | 9.3 | 2.04 |
| 1024x64x64 | 18.4 | 9.0 | 2.04 |
| 1024x256x256 | 19.5 | 9.3 | 2.10 |
| 4096x96x96 | 17.3 | 9.0 | 1.93 |
| 4096x128x128 | 17.7 | 9.1 | 1.95 |
| 4096x144x144 | 17.9 | 9.1 | 1.96 |
| 4096x160x160 | 18.2 | 9.1 | 1.99 |
| 4096x176x176 | 18.4 | 9.2 | 2.00 |
| 8192x128x128 | 17.1 | 9.0 | 1.90 |
| 10000x8x8 | 11.4 | 6.6 | 1.72 |
| 10000x100x100 | 16.7 | 9.0 | 1.86 |
| 10000x1000x1000 | 20.3 | 9.2 | 2.19 |
| 10000x4000x4000 | 20.8 | 9.1 | 2.28 |
GEMM double
| m×n×k | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2x2 | 0.5 | 0.1 | 5.09 |
| 3x3x3 | 0.9 | 0.3 | 3.04 |
| 4x4x4 | 1.1 | 0.7 | 1.64 |
| 6x6x6 | 1.5 | 1.6 | 0.93 |
| 8x8x8 | 1.9 | 2.9 | 0.65 |
| 12x12x12 | 2.4 | 5.0 | 0.48 |
| 16x16x16 | 2.7 | 6.2 | 0.44 |
| 24x24x24 | 3.0 | 7.4 | 0.40 |
| 32x32x32 | 3.2 | 7.8 | 0.41 |
| 48x48x48 | 3.3 | 8.5 | 0.39 |
| 64x64x64 | 3.4 | 8.6 | 0.39 |
| 96x96x96 | 3.5 | 9.0 | 0.39 |
| 100x100x100 | 3.5 | 9.0 | 0.39 |
| 128x128x128 | 3.5 | 8.9 | 0.39 |
| 160x160x160 | 3.5 | 9.0 | 0.39 |
| 192x192x192 | 3.5 | 9.0 | 0.39 |
| 200x200x200 | 3.5 | 9.1 | 0.39 |
| 224x224x224 | 3.5 | 9.1 | 0.38 |
| 256x256x256 | 3.4 | 9.0 | 0.38 |
| 257x257x257 | 3.4 | 8.9 | 0.38 |
| 288x288x288 | 3.5 | 9.0 | 0.38 |
| 320x320x320 | 3.5 | 9.0 | 0.38 |
| 384x384x384 | 3.5 | 8.9 | 0.39 |
| 448x448x448 | 3.5 | 8.9 | 0.39 |
| 500x500x500 | 3.5 | 8.8 | 0.40 |
| 512x512x512 | 3.5 | 8.8 | 0.40 |
| 768x768x768 | 3.5 | 8.8 | 0.40 |
| 1000x1000x1000 | 3.6 | 8.9 | 0.40 |
| 1001x1001x1001 | 3.6 | 8.8 | 0.41 |
| 1024x1024x1024 | 3.5 | 8.9 | 0.40 |
| 1536x1536x1536 | 3.6 | 8.9 | 0.40 |
| 2048x2048x2048 | 3.6 | 8.7 | 0.41 |
| 3072x3072x3072 | 3.6 | 8.8 | 0.41 |
| 4096x4096x4096 | 3.6 | 8.5 | 0.42 |
| 4097x4097x4097 | 3.6 | 8.5 | 0.42 |
| 64x64x1024 | 3.1 | 8.8 | 0.36 |
| 64x1024x64 | 3.4 | 8.8 | 0.39 |
| 256x256x1024 | 3.4 | 9.0 | 0.38 |
| 1024x64x64 | 3.4 | 8.8 | 0.38 |
| 1024x256x256 | 3.4 | 8.7 | 0.39 |
| 4096x96x96 | 3.2 | 8.4 | 0.38 |
| 4096x128x128 | 3.3 | 8.3 | 0.40 |
| 4096x144x144 | 3.3 | 8.4 | 0.40 |
| 4096x160x160 | 3.3 | 8.5 | 0.39 |
| 4096x176x176 | 3.4 | 8.5 | 0.39 |
| 8192x128x128 | 3.3 | 8.3 | 0.40 |
| 10000x8x8 | 2.4 | 6.5 | 0.37 |
| 10000x100x100 | 3.4 | 8.6 | 0.39 |
| 10000x1000x1000 | 3.6 | 8.9 | 0.40 |
| 10000x4000x4000 | 3.6 | 8.8 | 0.41 |
TRSM float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 1.76 |
| 3x3 | 0.3 | 0.2 | 2.00 |
| 4x4 | 1.2 | 0.4 | 3.33 |
| 6x6 | 1.7 | 0.7 | 2.50 |
| 8x8 | 3.3 | 1.1 | 2.97 |
| 12x12 | 4.7 | 1.9 | 2.46 |
| 16x16 | 5.7 | 2.4 | 2.35 |
| 24x24 | 6.9 | 3.4 | 2.04 |
| 32x32 | 7.5 | 4.0 | 1.86 |
| 48x48 | 8.1 | 5.0 | 1.62 |
| 64x64 | 8.5 | 5.7 | 1.49 |
| 96x96 | 8.8 | 6.5 | 1.35 |
| 100x100 | 8.8 | 6.7 | 1.32 |
| 128x128 | 9.0 | 7.0 | 1.28 |
| 192x192 | 11.1 | 7.7 | 1.45 |
| 200x200 | 11.9 | 7.8 | 1.53 |
| 256x256 | 14.3 | 8.0 | 1.78 |
| 257x257 | 14.0 | 8.0 | 1.75 |
| 384x384 | 14.4 | 8.5 | 1.70 |
| 500x500 | 15.6 | 8.6 | 1.81 |
| 512x512 | 15.5 | 8.6 | 1.80 |
| 768x768 | 16.0 | 8.7 | 1.84 |
| 1000x1000 | 16.6 | 8.8 | 1.90 |
| 1001x1001 | 16.4 | 8.7 | 1.89 |
| 1024x1024 | 16.1 | 8.8 | 1.83 |
| 1536x1536 | 17.0 | 8.9 | 1.91 |
| 2048x2048 | 17.2 | 8.9 | 1.92 |
| 3072x3072 | 17.6 | 9.0 | 1.96 |
| 4096x4096 | 17.8 | 9.0 | 1.98 |
| 4097x4097 | 18.0 | 9.0 | 2.00 |
| 64x4096 | 8.4 | 5.8 | 1.46 |
| 256x4096 | 13.5 | 7.6 | 1.78 |
| 1024x8 | 7.2 | 5.9 | 1.22 |
| 1024x64 | 14.8 | 8.5 | 1.75 |
| 1024x256 | 16.4 | 8.8 | 1.86 |
| 1024x4096 | 15.8 | 8.6 | 1.84 |
| 4096x8 | 5.8 | 6.5 | 0.89 |
| 4096x64 | 14.9 | 8.8 | 1.70 |
| 4096x256 | 17.7 | 9.1 | 1.95 |
| 4096x1024 | 18.0 | 9.1 | 1.97 |
TRSM double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 1.88 |
| 3x3 | 0.3 | 0.2 | 2.04 |
| 4x4 | 0.6 | 0.4 | 1.51 |
| 6x6 | 0.7 | 0.7 | 1.09 |
| 8x8 | 1.1 | 1.1 | 0.96 |
| 12x12 | 1.3 | 1.8 | 0.74 |
| 16x16 | 1.5 | 2.3 | 0.65 |
| 24x24 | 1.7 | 3.2 | 0.53 |
| 32x32 | 1.8 | 3.9 | 0.46 |
| 48x48 | 2.0 | 4.8 | 0.41 |
| 64x64 | 2.0 | 5.4 | 0.37 |
| 96x96 | 2.1 | 6.3 | 0.33 |
| 100x100 | 2.2 | 6.4 | 0.34 |
| 128x128 | 2.1 | 6.8 | 0.31 |
| 192x192 | 2.2 | 7.5 | 0.29 |
| 200x200 | 2.2 | 7.5 | 0.29 |
| 256x256 | 2.2 | 7.8 | 0.28 |
| 257x257 | 2.1 | 7.7 | 0.28 |
| 384x384 | 2.6 | 8.2 | 0.32 |
| 500x500 | 2.6 | 8.2 | 0.31 |
| 512x512 | 2.6 | 8.1 | 0.32 |
| 768x768 | 2.8 | 8.3 | 0.33 |
| 1000x1000 | 2.7 | 8.4 | 0.33 |
| 1001x1001 | 2.7 | 8.2 | 0.33 |
| 1024x1024 | 2.9 | 8.3 | 0.34 |
| 1536x1536 | 2.9 | 8.5 | 0.34 |
| 2048x2048 | 3.0 | 8.4 | 0.36 |
| 3072x3072 | 3.0 | 8.6 | 0.35 |
| 4096x4096 | 3.1 | 8.3 | 0.37 |
| 4097x4097 | 3.1 | 8.4 | 0.36 |
| 64x4096 | 2.0 | 5.1 | 0.39 |
| 256x4096 | 2.1 | 6.6 | 0.32 |
| 1024x8 | 1.7 | 5.3 | 0.32 |
| 1024x64 | 2.7 | 8.1 | 0.33 |
| 1024x256 | 2.9 | 8.5 | 0.34 |
| 1024x4096 | 2.8 | 8.1 | 0.35 |
| 4096x8 | 1.4 | 5.2 | 0.26 |
| 4096x64 | 2.7 | 8.1 | 0.34 |
| 4096x256 | 3.1 | 8.5 | 0.36 |
| 4096x1024 | 3.1 | 8.6 | 0.36 |
TRMM float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.0 | 0.1 | 0.51 |
| 3x3 | 0.1 | 0.2 | 0.50 |
| 4x4 | 0.2 | 0.4 | 0.57 |
| 6x6 | 0.5 | 0.8 | 0.64 |
| 8x8 | 1.2 | 1.6 | 0.77 |
| 12x12 | 2.6 | 2.9 | 0.88 |
| 16x16 | 3.6 | 3.8 | 0.94 |
| 24x24 | 5.7 | 5.1 | 1.12 |
| 32x32 | 7.2 | 5.9 | 1.23 |
| 48x48 | 9.6 | 6.9 | 1.40 |
| 64x64 | 10.7 | 7.4 | 1.44 |
| 96x96 | 12.9 | 8.0 | 1.63 |
| 100x100 | 12.7 | 8.1 | 1.57 |
| 128x128 | 13.7 | 8.3 | 1.65 |
| 192x192 | 13.9 | 8.7 | 1.60 |
| 200x200 | 15.1 | 8.7 | 1.73 |
| 256x256 | 16.1 | 8.7 | 1.84 |
| 257x257 | 15.9 | 8.7 | 1.82 |
| 384x384 | 16.3 | 9.0 | 1.81 |
| 500x500 | 17.0 | 9.0 | 1.89 |
| 512x512 | 16.6 | 9.0 | 1.84 |
| 768x768 | 16.9 | 9.0 | 1.88 |
| 1000x1000 | 17.4 | 9.0 | 1.93 |
| 1001x1001 | 17.2 | 9.0 | 1.92 |
| 1024x1024 | 16.2 | 9.0 | 1.81 |
| 1536x1536 | 16.9 | 9.1 | 1.86 |
| 2048x2048 | 17.2 | 9.1 | 1.89 |
| 3072x3072 | 17.9 | 9.1 | 1.96 |
| 4096x4096 | 17.8 | 9.1 | 1.96 |
| 4097x4097 | 17.7 | 9.1 | 1.96 |
| 64x4096 | 7.9 | 7.7 | 1.03 |
| 256x4096 | 11.3 | 8.2 | 1.37 |
| 1024x8 | 7.3 | 5.8 | 1.24 |
| 1024x64 | 15.6 | 8.6 | 1.81 |
| 1024x256 | 17.5 | 9.0 | 1.94 |
| 1024x4096 | 15.5 | 8.8 | 1.75 |
| 4096x8 | 5.8 | 6.4 | 0.91 |
| 4096x64 | 15.3 | 8.8 | 1.74 |
| 4096x256 | 18.3 | 9.1 | 2.01 |
| 4096x1024 | 18.2 | 9.2 | 1.98 |
TRMM double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 0.91 |
| 3x3 | 0.2 | 0.2 | 0.81 |
| 4x4 | 0.3 | 0.4 | 0.76 |
| 6x6 | 0.5 | 0.8 | 0.67 |
| 8x8 | 0.8 | 1.4 | 0.57 |
| 12x12 | 1.2 | 2.6 | 0.45 |
| 16x16 | 1.4 | 3.4 | 0.43 |
| 24x24 | 1.7 | 4.5 | 0.39 |
| 32x32 | 1.9 | 5.0 | 0.39 |
| 48x48 | 2.2 | 6.2 | 0.35 |
| 64x64 | 2.3 | 6.7 | 0.34 |
| 96x96 | 2.4 | 7.4 | 0.32 |
| 100x100 | 2.4 | 7.5 | 0.32 |
| 128x128 | 2.4 | 7.5 | 0.32 |
| 192x192 | 2.5 | 8.2 | 0.31 |
| 200x200 | 2.5 | 8.2 | 0.31 |
| 256x256 | 2.5 | 8.3 | 0.30 |
| 257x257 | 2.5 | 8.2 | 0.30 |
| 384x384 | 2.8 | 8.5 | 0.33 |
| 500x500 | 2.8 | 8.4 | 0.34 |
| 512x512 | 2.8 | 8.3 | 0.33 |
| 768x768 | 3.0 | 8.3 | 0.35 |
| 1000x1000 | 2.9 | 8.4 | 0.35 |
| 1001x1001 | 2.9 | 8.3 | 0.35 |
| 1024x1024 | 2.9 | 8.4 | 0.35 |
| 1536x1536 | 3.0 | 8.5 | 0.35 |
| 2048x2048 | 3.0 | 8.4 | 0.36 |
| 3072x3072 | 3.2 | 8.5 | 0.37 |
| 4096x4096 | 3.1 | 8.3 | 0.38 |
| 4097x4097 | 3.1 | 8.4 | 0.37 |
| 64x4096 | 1.5 | 6.3 | 0.24 |
| 256x4096 | 2.0 | 7.0 | 0.29 |
| 1024x8 | 1.8 | 5.0 | 0.36 |
| 1024x64 | 2.9 | 8.2 | 0.35 |
| 1024x256 | 3.1 | 8.6 | 0.36 |
| 1024x4096 | 2.9 | 8.0 | 0.36 |
| 4096x8 | 1.4 | 5.2 | 0.26 |
| 4096x64 | 2.9 | 8.1 | 0.35 |
| 4096x256 | 3.2 | 8.5 | 0.38 |
| 4096x1024 | 3.1 | 8.5 | 0.37 |
SYMM float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 1.30 |
| 3x3 | 0.3 | 0.3 | 0.91 |
| 4x4 | 1.0 | 0.7 | 1.39 |
| 6x6 | 1.5 | 1.6 | 0.93 |
| 8x8 | 3.7 | 2.8 | 1.33 |
| 12x12 | 6.6 | 4.9 | 1.36 |
| 16x16 | 8.5 | 6.0 | 1.42 |
| 24x24 | 12.8 | 7.1 | 1.78 |
| 32x32 | 14.0 | 7.7 | 1.81 |
| 48x48 | 17.2 | 8.3 | 2.07 |
| 64x64 | 16.1 | 8.6 | 1.87 |
| 96x96 | 19.4 | 8.9 | 2.18 |
| 100x100 | 18.8 | 9.0 | 2.10 |
| 128x128 | 19.1 | 9.1 | 2.10 |
| 192x192 | 19.2 | 9.2 | 2.09 |
| 200x200 | 19.7 | 9.3 | 2.13 |
| 256x256 | 19.8 | 9.2 | 2.15 |
| 257x257 | 19.5 | 9.1 | 2.15 |
| 384x384 | 19.1 | 9.3 | 2.05 |
| 500x500 | 19.1 | 9.2 | 2.07 |
| 512x512 | 19.1 | 9.2 | 2.07 |
| 768x768 | 19.4 | 9.2 | 2.10 |
| 1000x1000 | 19.7 | 9.2 | 2.14 |
| 1001x1001 | 19.5 | 9.1 | 2.14 |
| 1024x1024 | 19.4 | 9.2 | 2.11 |
| 1536x1536 | 19.7 | 9.2 | 2.13 |
| 2048x2048 | 19.6 | 9.2 | 2.13 |
| 3072x3072 | 19.6 | 9.2 | 2.14 |
| 4096x4096 | 19.7 | 9.1 | 2.16 |
| 4097x4097 | 19.6 | 9.1 | 2.16 |
| 64x4096 | 15.4 | 8.9 | 1.72 |
| 256x4096 | 18.2 | 9.0 | 2.02 |
| 1024x8 | 7.6 | 5.3 | 1.44 |
| 1024x64 | 16.9 | 8.5 | 1.98 |
| 1024x256 | 19.3 | 9.1 | 2.12 |
| 1024x4096 | 19.5 | 9.2 | 2.12 |
| 4096x8 | 5.0 | 4.4 | 1.12 |
| 4096x64 | 15.2 | 8.2 | 1.86 |
| 4096x256 | 19.2 | 9.1 | 2.12 |
| 4096x1024 | 19.7 | 9.2 | 2.14 |
SYMM double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.2 | 0.1 | 1.59 |
| 3x3 | 0.3 | 0.3 | 1.06 |
| 4x4 | 0.7 | 0.7 | 1.03 |
| 6x6 | 1.1 | 1.6 | 0.74 |
| 8x8 | 1.7 | 2.8 | 0.63 |
| 12x12 | 2.2 | 4.8 | 0.46 |
| 16x16 | 2.6 | 5.9 | 0.44 |
| 24x24 | 2.9 | 7.1 | 0.41 |
| 32x32 | 3.1 | 7.5 | 0.41 |
| 48x48 | 3.3 | 8.3 | 0.39 |
| 64x64 | 3.3 | 8.5 | 0.39 |
| 96x96 | 3.4 | 8.9 | 0.39 |
| 100x100 | 3.4 | 8.9 | 0.39 |
| 128x128 | 3.5 | 8.8 | 0.39 |
| 192x192 | 3.5 | 9.0 | 0.39 |
| 200x200 | 3.5 | 9.0 | 0.38 |
| 256x256 | 3.4 | 9.0 | 0.38 |
| 257x257 | 3.4 | 8.9 | 0.38 |
| 384x384 | 3.4 | 8.9 | 0.38 |
| 500x500 | 3.4 | 8.8 | 0.39 |
| 512x512 | 3.4 | 8.8 | 0.39 |
| 768x768 | 3.3 | 8.9 | 0.38 |
| 1000x1000 | 3.3 | 8.9 | 0.37 |
| 1001x1001 | 3.3 | 8.8 | 0.38 |
| 1024x1024 | 3.3 | 8.8 | 0.37 |
| 1536x1536 | 3.3 | 8.9 | 0.37 |
| 2048x2048 | 3.3 | 8.7 | 0.38 |
| 3072x3072 | 3.3 | 8.8 | 0.37 |
| 4096x4096 | 3.2 | 8.5 | 0.38 |
| 4097x4097 | 3.2 | 8.5 | 0.38 |
| 64x4096 | 3.1 | 8.4 | 0.36 |
| 256x4096 | 3.3 | 8.3 | 0.40 |
| 1024x8 | 2.0 | 4.7 | 0.44 |
| 1024x64 | 3.0 | 8.1 | 0.37 |
| 1024x256 | 3.3 | 8.7 | 0.38 |
| 1024x4096 | 3.3 | 8.7 | 0.38 |
| 4096x8 | 1.2 | 3.2 | 0.38 |
| 4096x64 | 2.9 | 7.3 | 0.39 |
| 4096x256 | 3.3 | 8.5 | 0.38 |
| 4096x1024 | 3.3 | 8.7 | 0.38 |
SYRK float
| n×k | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.0 | 0.1 | 0.69 |
| 3x3 | 0.1 | 0.2 | 0.72 |
| 4x4 | 0.3 | 0.4 | 0.81 |
| 6x6 | 0.5 | 0.8 | 0.58 |
| 8x8 | 1.4 | 1.5 | 0.96 |
| 12x12 | 3.0 | 2.8 | 1.06 |
| 16x16 | 4.2 | 4.0 | 1.03 |
| 24x24 | 7.3 | 5.7 | 1.30 |
| 32x32 | 9.1 | 6.6 | 1.37 |
| 48x48 | 12.3 | 7.7 | 1.60 |
| 64x64 | 13.5 | 8.2 | 1.64 |
| 96x96 | 16.1 | 8.6 | 1.87 |
| 100x100 | 15.8 | 8.7 | 1.81 |
| 128x128 | 16.9 | 8.9 | 1.89 |
| 192x192 | 18.2 | 9.1 | 2.00 |
| 200x200 | 18.1 | 9.2 | 1.98 |
| 256x256 | 18.2 | 9.1 | 1.99 |
| 257x257 | 17.9 | 9.0 | 1.99 |
| 384x384 | 16.8 | 9.3 | 1.82 |
| 500x500 | 16.2 | 9.3 | 1.75 |
| 512x512 | 16.7 | 9.3 | 1.80 |
| 768x768 | 17.7 | 9.2 | 1.92 |
| 1000x1000 | 18.2 | 9.2 | 1.97 |
| 1001x1001 | 18.2 | 9.1 | 2.00 |
| 1024x1024 | 18.5 | 9.2 | 2.01 |
| 1536x1536 | 19.0 | 9.2 | 2.05 |
| 2048x2048 | 19.0 | 9.2 | 2.06 |
| 3072x3072 | 19.4 | 9.2 | 2.11 |
| 4096x4096 | 19.6 | 9.2 | 2.13 |
| 4097x4097 | 20.0 | 9.1 | 2.20 |
| 64x4096 | 13.7 | 8.6 | 1.59 |
| 256x4096 | 16.1 | 9.2 | 1.75 |
| 1024x4096 | 18.5 | 9.2 | 2.01 |
| 4096x8 | 8.7 | 5.0 | 1.72 |
| 4096x64 | 18.6 | 8.9 | 2.10 |
| 4096x256 | 19.3 | 9.1 | 2.12 |
| 4096x1024 | 19.5 | 9.2 | 2.12 |
SYRK double
| n×k | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.1 | 0.99 |
| 3x3 | 0.1 | 0.2 | 0.87 |
| 4x4 | 0.3 | 0.3 | 0.88 |
| 6x6 | 0.5 | 0.8 | 0.65 |
| 8x8 | 0.9 | 1.4 | 0.65 |
| 12x12 | 1.4 | 2.7 | 0.52 |
| 16x16 | 1.9 | 3.9 | 0.48 |
| 24x24 | 2.4 | 5.5 | 0.43 |
| 32x32 | 2.6 | 6.2 | 0.43 |
| 48x48 | 2.9 | 7.6 | 0.39 |
| 64x64 | 3.1 | 8.0 | 0.39 |
| 96x96 | 3.3 | 8.6 | 0.38 |
| 100x100 | 3.3 | 8.7 | 0.38 |
| 128x128 | 3.3 | 8.6 | 0.38 |
| 192x192 | 3.4 | 8.9 | 0.38 |
| 200x200 | 3.4 | 8.9 | 0.38 |
| 256x256 | 3.2 | 8.9 | 0.36 |
| 257x257 | 3.2 | 8.8 | 0.36 |
| 384x384 | 3.2 | 9.0 | 0.36 |
| 500x500 | 3.3 | 8.9 | 0.37 |
| 512x512 | 3.3 | 8.9 | 0.37 |
| 768x768 | 3.4 | 8.8 | 0.38 |
| 1000x1000 | 3.4 | 8.8 | 0.39 |
| 1001x1001 | 3.4 | 8.7 | 0.39 |
| 1024x1024 | 3.4 | 8.8 | 0.38 |
| 1536x1536 | 3.5 | 8.9 | 0.39 |
| 2048x2048 | 3.5 | 8.7 | 0.40 |
| 3072x3072 | 3.5 | 8.8 | 0.40 |
| 4096x4096 | 3.5 | 8.5 | 0.41 |
| 4097x4097 | 3.5 | 8.5 | 0.41 |
| 64x4096 | 2.7 | 8.3 | 0.32 |
| 256x4096 | 3.2 | 8.9 | 0.36 |
| 1024x4096 | 3.4 | 8.8 | 0.39 |
| 4096x8 | 2.6 | 2.0 | 1.29 |
| 4096x64 | 3.4 | 8.0 | 0.43 |
| 4096x256 | 3.5 | 8.3 | 0.42 |
| 4096x1024 | 3.5 | 8.5 | 0.41 |
POTRF float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 2.71 |
| 3 | 0.2 | 0.1 | 2.20 |
| 4 | 0.3 | 0.2 | 1.76 |
| 6 | 0.5 | 0.3 | 1.39 |
| 8 | 0.6 | 0.5 | 1.26 |
| 12 | 1.1 | 0.9 | 1.20 |
| 16 | 1.5 | 1.3 | 1.22 |
| 24 | 2.4 | 2.0 | 1.21 |
| 32 | 3.2 | 2.5 | 1.27 |
| 48 | 4.7 | 3.0 | 1.59 |
| 64 | 5.4 | 3.7 | 1.46 |
| 96 | 7.1 | 4.8 | 1.48 |
| 100 | 7.3 | 4.8 | 1.53 |
| 128 | 8.6 | 5.6 | 1.54 |
| 192 | 10.5 | 6.4 | 1.65 |
| 200 | 10.7 | 6.4 | 1.66 |
| 256 | 13.0 | 7.0 | 1.86 |
| 257 | 12.6 | 6.9 | 1.82 |
| 384 | 15.3 | 7.7 | 1.99 |
| 500 | 16.0 | 8.0 | 2.01 |
| 512 | 16.1 | 8.0 | 2.00 |
| 768 | 17.0 | 8.4 | 2.03 |
| 1000 | 16.7 | 8.5 | 1.97 |
| 1001 | 16.5 | 8.4 | 1.96 |
| 1024 | 16.3 | 8.4 | 1.93 |
| 1536 | 17.0 | 8.6 | 1.97 |
| 2048 | 17.6 | 8.7 | 2.02 |
| 3072 | 18.2 | 8.9 | 2.05 |
| 4096 | 18.7 | 8.9 | 2.10 |
| 4097 | 18.6 | 8.8 | 2.10 |
POTRF double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 2.81 |
| 3 | 0.2 | 0.1 | 2.23 |
| 4 | 0.3 | 0.2 | 1.63 |
| 6 | 0.4 | 0.3 | 1.29 |
| 8 | 0.6 | 0.5 | 1.15 |
| 12 | 0.9 | 0.9 | 0.99 |
| 16 | 1.1 | 1.2 | 0.93 |
| 24 | 1.5 | 1.8 | 0.84 |
| 32 | 1.9 | 2.3 | 0.81 |
| 48 | 2.4 | 2.7 | 0.86 |
| 64 | 1.9 | 3.4 | 0.55 |
| 96 | 2.1 | 4.5 | 0.48 |
| 100 | 2.1 | 4.4 | 0.48 |
| 128 | 2.3 | 5.2 | 0.45 |
| 192 | 2.5 | 6.0 | 0.41 |
| 200 | 2.5 | 6.0 | 0.42 |
| 256 | 2.8 | 6.6 | 0.43 |
| 257 | 2.8 | 6.5 | 0.43 |
| 384 | 3.0 | 7.3 | 0.41 |
| 500 | 3.1 | 7.6 | 0.40 |
| 512 | 3.1 | 7.5 | 0.41 |
| 768 | 3.1 | 7.8 | 0.40 |
| 1000 | 3.2 | 8.0 | 0.39 |
| 1001 | 3.1 | 7.9 | 0.40 |
| 1024 | 3.1 | 7.9 | 0.39 |
| 1536 | 3.2 | 8.2 | 0.39 |
| 2048 | 3.2 | 8.1 | 0.40 |
| 3072 | 3.3 | 8.4 | 0.39 |
| 4096 | 3.3 | 8.2 | 0.40 |
| 4097 | 3.3 | 8.2 | 0.40 |
PSTRF float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.0 | 0.0 | 1.51 |
| 3 | 0.1 | 0.1 | 1.57 |
| 4 | 0.1 | 0.1 | 1.56 |
| 6 | 0.2 | 0.2 | 1.47 |
| 8 | 0.3 | 0.2 | 1.50 |
| 12 | 0.6 | 0.4 | 1.49 |
| 16 | 0.8 | 0.5 | 1.60 |
| 24 | 1.3 | 0.8 | 1.71 |
| 32 | 1.9 | 1.0 | 1.80 |
| 48 | 2.8 | 1.5 | 1.90 |
| 64 | 3.7 | 1.9 | 1.92 |
| 96 | 5.1 | 2.6 | 1.94 |
| 100 | 5.2 | 2.7 | 1.90 |
| 128 | 6.3 | 3.2 | 1.97 |
| 192 | 8.2 | 4.1 | 2.01 |
| 200 | 8.4 | 4.2 | 2.00 |
| 256 | 9.5 | 4.5 | 2.11 |
| 257 | 9.3 | 4.7 | 2.00 |
| 384 | 11.4 | 5.4 | 2.12 |
| 500 | 12.6 | 6.0 | 2.10 |
| 512 | 12.4 | 5.4 | 2.29 |
| 768 | 13.6 | 6.4 | 2.13 |
| 1000 | 13.6 | 6.7 | 2.02 |
| 1001 | 13.4 | 6.8 | 1.98 |
| 1024 | 12.1 | 5.4 | 2.25 |
| 1536 | 13.3 | 6.1 | 2.19 |
| 2048 | 12.8 | 5.6 | 2.30 |
| 3072 | 14.5 | 6.4 | 2.25 |
| 4096 | 14.3 | 6.1 | 2.34 |
| 4097 | 15.1 | 7.2 | 2.10 |
PSTRF double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 1.98 |
| 3 | 0.1 | 0.1 | 2.04 |
| 4 | 0.2 | 0.1 | 1.81 |
| 6 | 0.3 | 0.2 | 1.62 |
| 8 | 0.3 | 0.2 | 1.56 |
| 12 | 0.5 | 0.4 | 1.48 |
| 16 | 0.7 | 0.5 | 1.39 |
| 24 | 1.0 | 0.8 | 1.31 |
| 32 | 1.3 | 1.0 | 1.27 |
| 48 | 1.7 | 1.4 | 1.20 |
| 64 | 2.1 | 1.8 | 1.15 |
| 96 | 2.6 | 2.5 | 1.06 |
| 100 | 2.1 | 2.6 | 0.81 |
| 128 | 2.2 | 2.8 | 0.79 |
| 192 | 2.5 | 3.6 | 0.68 |
| 200 | 2.5 | 3.8 | 0.65 |
| 256 | 2.6 | 3.8 | 0.69 |
| 257 | 2.6 | 4.2 | 0.61 |
| 384 | 2.8 | 4.9 | 0.56 |
| 500 | 2.8 | 5.5 | 0.52 |
| 512 | 2.8 | 4.6 | 0.60 |
| 768 | 2.9 | 5.3 | 0.55 |
| 1000 | 2.9 | 5.4 | 0.53 |
| 1001 | 2.8 | 5.8 | 0.49 |
| 1024 | 2.8 | 4.6 | 0.61 |
| 1536 | 2.9 | 5.2 | 0.56 |
| 2048 | 2.9 | 4.7 | 0.62 |
| 3072 | 3.0 | 5.8 | 0.53 |
| 4096 | 3.0 | 5.0 | 0.60 |
| 4097 | 3.1 | 6.1 | 0.50 |
SYTRF float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.0 | 0.0 | 1.56 |
| 3 | 0.1 | 0.1 | 1.29 |
| 4 | 0.2 | 0.1 | 1.27 |
| 6 | 0.3 | 0.2 | 1.17 |
| 8 | 0.4 | 0.4 | 1.12 |
| 12 | 0.7 | 0.5 | 1.27 |
| 16 | 1.0 | 0.7 | 1.34 |
| 24 | 1.4 | 1.1 | 1.30 |
| 32 | 2.0 | 1.3 | 1.50 |
| 48 | 2.7 | 1.7 | 1.63 |
| 64 | 3.4 | 2.0 | 1.72 |
| 96 | 5.2 | 2.8 | 1.86 |
| 100 | 5.5 | 2.9 | 1.87 |
| 128 | 6.4 | 3.3 | 1.97 |
| 192 | 8.2 | 4.1 | 2.01 |
| 200 | 8.6 | 4.2 | 2.05 |
| 256 | 9.2 | 4.4 | 2.10 |
| 257 | 9.7 | 4.7 | 2.07 |
| 384 | 11.1 | 5.5 | 2.04 |
| 500 | 12.7 | 5.9 | 2.14 |
| 512 | 11.4 | 4.7 | 2.41 |
| 768 | 13.2 | 6.3 | 2.09 |
| 1000 | 13.9 | 6.8 | 2.03 |
| 1001 | 13.8 | 6.9 | 2.01 |
| 1024 | 11.1 | 5.7 | 1.94 |
| 1536 | 12.9 | 6.4 | 2.01 |
| 2048 | 11.7 | 6.6 | 1.78 |
| 3072 | 13.7 | 7.2 | 1.90 |
| 4096 | 13.4 | 7.2 | 1.86 |
| 4097 | 15.3 | 7.6 | 2.02 |
SYTRF double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 1.75 |
| 3 | 0.1 | 0.1 | 1.57 |
| 4 | 0.2 | 0.1 | 1.45 |
| 6 | 0.3 | 0.2 | 1.49 |
| 8 | 0.5 | 0.3 | 1.41 |
| 12 | 0.7 | 0.5 | 1.30 |
| 16 | 0.8 | 0.6 | 1.33 |
| 24 | 1.1 | 0.9 | 1.21 |
| 32 | 1.3 | 1.2 | 1.10 |
| 48 | 1.6 | 1.6 | 0.97 |
| 64 | 1.7 | 1.9 | 0.93 |
| 96 | 2.5 | 2.7 | 0.92 |
| 100 | 2.5 | 2.7 | 0.93 |
| 128 | 2.5 | 2.8 | 0.87 |
| 192 | 2.8 | 3.7 | 0.74 |
| 200 | 2.8 | 3.9 | 0.73 |
| 256 | 2.7 | 3.1 | 0.86 |
| 257 | 2.9 | 4.0 | 0.72 |
| 384 | 3.0 | 4.7 | 0.64 |
| 500 | 3.0 | 5.4 | 0.56 |
| 512 | 2.8 | 4.1 | 0.68 |
| 768 | 2.9 | 5.0 | 0.59 |
| 1000 | 3.0 | 6.2 | 0.48 |
| 1001 | 3.0 | 6.0 | 0.49 |
| 1024 | 2.8 | 5.1 | 0.55 |
| 1536 | 2.9 | 5.9 | 0.50 |
| 2048 | 2.9 | 5.9 | 0.50 |
| 3072 | 3.1 | 6.7 | 0.47 |
| 4096 | 3.0 | 6.5 | 0.47 |
| 4097 | 3.2 | 6.9 | 0.46 |
GETRF float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 2.11 |
| 3 | 0.1 | 0.1 | 1.93 |
| 4 | 0.2 | 0.1 | 1.71 |
| 6 | 0.5 | 0.3 | 1.66 |
| 8 | 0.7 | 0.4 | 1.65 |
| 12 | 1.0 | 0.7 | 1.49 |
| 16 | 1.2 | 0.9 | 1.43 |
| 24 | 2.2 | 1.4 | 1.56 |
| 32 | 3.0 | 1.8 | 1.65 |
| 48 | 4.4 | 2.6 | 1.71 |
| 64 | 5.6 | 3.2 | 1.74 |
| 96 | 7.2 | 4.1 | 1.74 |
| 100 | 7.4 | 4.2 | 1.74 |
| 128 | 9.0 | 4.8 | 1.85 |
| 192 | 10.8 | 5.8 | 1.85 |
| 200 | 10.9 | 5.9 | 1.84 |
| 256 | 12.8 | 6.4 | 1.99 |
| 257 | 12.5 | 6.4 | 1.96 |
| 384 | 14.5 | 7.2 | 2.02 |
| 500 | 15.2 | 7.6 | 2.01 |
| 512 | 15.1 | 7.6 | 1.99 |
| 768 | 15.6 | 8.0 | 1.96 |
| 1000 | 15.4 | 8.2 | 1.89 |
| 1001 | 15.2 | 8.1 | 1.88 |
| 1024 | 14.7 | 8.1 | 1.81 |
| 1536 | 16.0 | 8.4 | 1.92 |
| 2048 | 16.7 | 8.5 | 1.97 |
| 3072 | 17.5 | 8.7 | 2.02 |
| 4096 | 17.6 | 8.7 | 2.02 |
| 4097 | 17.8 | 8.6 | 2.06 |
GETRF double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.1 | 0.0 | 2.77 |
| 3 | 0.2 | 0.1 | 2.32 |
| 4 | 0.3 | 0.1 | 2.07 |
| 6 | 0.5 | 0.3 | 1.81 |
| 8 | 0.7 | 0.4 | 1.65 |
| 12 | 1.0 | 0.7 | 1.42 |
| 16 | 1.2 | 0.9 | 1.31 |
| 24 | 1.2 | 1.5 | 0.83 |
| 32 | 1.5 | 1.9 | 0.77 |
| 48 | 1.7 | 2.7 | 0.64 |
| 64 | 1.9 | 3.3 | 0.58 |
| 96 | 2.1 | 4.3 | 0.50 |
| 100 | 2.1 | 4.4 | 0.49 |
| 128 | 2.4 | 4.9 | 0.49 |
| 192 | 2.6 | 5.9 | 0.44 |
| 200 | 2.6 | 5.9 | 0.44 |
| 256 | 2.8 | 6.4 | 0.44 |
| 257 | 2.8 | 6.3 | 0.44 |
| 384 | 2.9 | 7.1 | 0.42 |
| 500 | 3.0 | 7.3 | 0.41 |
| 512 | 3.0 | 7.2 | 0.41 |
| 768 | 3.0 | 7.2 | 0.41 |
| 1000 | 3.0 | 7.4 | 0.40 |
| 1001 | 3.0 | 7.3 | 0.41 |
| 1024 | 3.0 | 7.3 | 0.41 |
| 1536 | 3.1 | 7.7 | 0.40 |
| 2048 | 3.1 | 7.8 | 0.40 |
| 3072 | 3.2 | 8.2 | 0.39 |
| 4096 | 3.3 | 8.0 | 0.41 |
| 4097 | 3.3 | 8.0 | 0.41 |
GEQRF float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 1.04 |
| 3x3 | 0.1 | 0.1 | 0.97 |
| 4x4 | 0.1 | 0.1 | 0.96 |
| 6x6 | 0.3 | 0.3 | 0.95 |
| 8x8 | 0.4 | 0.4 | 0.95 |
| 12x12 | 0.7 | 0.8 | 0.98 |
| 16x16 | 1.1 | 1.1 | 1.00 |
| 24x24 | 1.8 | 1.6 | 1.11 |
| 32x32 | 2.5 | 2.0 | 1.23 |
| 48x48 | 3.7 | 2.6 | 1.40 |
| 64x64 | 4.5 | 3.0 | 1.52 |
| 96x96 | 6.4 | 3.4 | 1.91 |
| 100x100 | 6.5 | 3.4 | 1.91 |
| 128x128 | 8.1 | 3.6 | 2.28 |
| 192x192 | 10.4 | 4.9 | 2.10 |
| 200x200 | 10.6 | 5.4 | 1.98 |
| 256x256 | 12.0 | 5.7 | 2.11 |
| 257x257 | 11.7 | 6.0 | 1.95 |
| 384x384 | 14.0 | 6.7 | 2.08 |
| 500x500 | 14.8 | 7.3 | 2.03 |
| 512x512 | 14.7 | 7.1 | 2.06 |
| 768x768 | 15.5 | 7.6 | 2.04 |
| 1000x1000 | 15.9 | 7.8 | 2.04 |
| 1001x1001 | 15.8 | 7.7 | 2.05 |
| 1024x1024 | 15.4 | 7.5 | 2.06 |
| 1536x1536 | 16.3 | 7.7 | 2.11 |
| 2048x2048 | 16.3 | 7.6 | 2.13 |
| 3072x3072 | 16.9 | 7.9 | 2.14 |
| 4096x4096 | 16.6 | 7.8 | 2.13 |
| 4097x4097 | 16.7 | 8.0 | 2.08 |
| 4096x8 | 6.0 | 1.9 | 3.17 |
| 4096x64 | 10.7 | 3.6 | 2.96 |
| 4096x256 | 11.5 | 5.8 | 1.97 |
| 4096x1024 | 14.0 | 7.6 | 1.85 |
| 10000x8 | 6.6 | 1.9 | 3.47 |
| 10000x100 | 11.1 | 3.7 | 3.01 |
| 10000x1000 | 15.9 | 7.9 | 2.00 |
| 10000x4000 | 17.4 | 8.2 | 2.14 |
| 100000x8 | 4.5 | 1.8 | 2.53 |
| 100000x64 | 8.2 | 2.5 | 3.33 |
| 100000x256 | 10.3 | 4.7 | 2.19 |
GEQRF double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.1 | 0.0 | 1.11 |
| 3x3 | 0.1 | 0.1 | 1.04 |
| 4x4 | 0.1 | 0.1 | 1.00 |
| 6x6 | 0.3 | 0.3 | 0.99 |
| 8x8 | 0.4 | 0.4 | 0.98 |
| 12x12 | 0.7 | 0.7 | 1.00 |
| 16x16 | 1.0 | 1.0 | 1.01 |
| 24x24 | 1.4 | 1.5 | 0.95 |
| 32x32 | 1.7 | 1.9 | 0.91 |
| 48x48 | 2.1 | 2.4 | 0.85 |
| 64x64 | 2.3 | 2.8 | 0.82 |
| 96x96 | 2.1 | 3.1 | 0.68 |
| 100x100 | 2.1 | 3.1 | 0.68 |
| 128x128 | 2.3 | 3.1 | 0.74 |
| 192x192 | 2.6 | 4.5 | 0.58 |
| 200x200 | 2.6 | 4.9 | 0.52 |
| 256x256 | 2.7 | 5.3 | 0.51 |
| 257x257 | 2.7 | 5.6 | 0.48 |
| 384x384 | 2.9 | 6.3 | 0.46 |
| 500x500 | 2.9 | 6.7 | 0.43 |
| 512x512 | 2.9 | 6.5 | 0.45 |
| 768x768 | 3.0 | 6.7 | 0.44 |
| 1000x1000 | 3.0 | 6.9 | 0.44 |
| 1001x1001 | 3.0 | 6.8 | 0.44 |
| 1024x1024 | 3.0 | 6.6 | 0.45 |
| 1536x1536 | 3.1 | 6.9 | 0.45 |
| 2048x2048 | 3.1 | 6.8 | 0.46 |
| 3072x3072 | 3.2 | 7.1 | 0.45 |
| 4096x4096 | 3.2 | 6.5 | 0.49 |
| 4097x4097 | 3.2 | 6.9 | 0.46 |
| 4096x8 | 1.7 | 1.5 | 1.19 |
| 4096x64 | 2.4 | 3.2 | 0.75 |
| 4096x256 | 2.7 | 4.7 | 0.57 |
| 4096x1024 | 3.0 | 6.5 | 0.46 |
| 10000x8 | 1.8 | 1.5 | 1.21 |
| 10000x100 | 2.5 | 1.9 | 1.32 |
| 10000x1000 | 3.1 | 7.1 | 0.44 |
| 10000x4000 | 3.3 | 7.5 | 0.44 |
| 100000x8 | 1.0 | 0.9 | 1.13 |
| 100000x64 | 2.1 | 1.2 | 1.65 |
| 100000x256 | 2.6 | 3.0 | 0.86 |
GELS float
| m×n×nrhs | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2x1 | 0.1 | 0.0 | 1.75 |
| 3x3x1 | 0.1 | 0.1 | 1.55 |
| 4x4x1 | 0.1 | 0.1 | 1.44 |
| 6x6x1 | 0.3 | 0.2 | 1.38 |
| 8x8x1 | 0.4 | 0.3 | 1.32 |
| 12x12x1 | 0.7 | 0.5 | 1.30 |
| 16x16x1 | 1.0 | 0.7 | 1.29 |
| 24x24x1 | 1.7 | 1.2 | 1.38 |
| 32x32x1 | 2.3 | 1.6 | 1.46 |
| 48x48x1 | 3.4 | 2.1 | 1.61 |
| 64x64x1 | 4.3 | 2.5 | 1.71 |
| 96x96x1 | 6.2 | 3.0 | 2.08 |
| 100x100x1 | 6.3 | 3.0 | 2.08 |
| 128x128x1 | 7.9 | 3.3 | 2.43 |
| 192x192x1 | 10.2 | 4.0 | 2.53 |
| 200x200x1 | 10.5 | 4.4 | 2.39 |
| 256x256x1 | 11.9 | 4.9 | 2.44 |
| 257x257x1 | 11.6 | 5.1 | 2.27 |
| 384x384x1 | 13.9 | 6.0 | 2.32 |
| 500x500x1 | 14.6 | 6.6 | 2.19 |
| 512x512x1 | 14.5 | 6.6 | 2.22 |
| 768x768x1 | 15.2 | 7.2 | 2.11 |
| 1000x1000x1 | 15.7 | 7.4 | 2.12 |
| 1001x1001x1 | 15.3 | 7.4 | 2.08 |
| 1024x1024x1 | 15.3 | 7.2 | 2.14 |
| 1536x1536x1 | 16.3 | 7.5 | 2.17 |
| 2048x2048x1 | 16.3 | 7.5 | 2.18 |
| 3072x3072x1 | 17.0 | 7.8 | 2.18 |
| 4096x4096x1 | 16.6 | 7.7 | 2.16 |
| 4097x4097x1 | 16.7 | 7.9 | 2.11 |
| 1024x1024x16 | 15.0 | 7.2 | 2.09 |
| 1024x1024x64 | 15.2 | 7.3 | 2.08 |
| 1024x1024x256 | 15.7 | 7.6 | 2.07 |
| 4096x8x1 | 6.1 | 1.4 | 4.24 |
| 4096x64x1 | 10.3 | 3.3 | 3.14 |
| 4096x256x1 | 11.3 | 5.2 | 2.17 |
| 4096x256x16 | 9.1 | 5.4 | 1.68 |
| 4096x256x64 | 10.5 | 6.0 | 1.75 |
| 4096x256x256 | 12.8 | 6.4 | 2.01 |
| 4096x256x1024 | 15.3 | 7.1 | 2.14 |
| 4096x1024x1 | 14.1 | 7.3 | 1.92 |
| 10000x8x1 | 6.6 | 1.5 | 4.54 |
| 10000x100x1 | 11.0 | 3.4 | 3.20 |
| 10000x1000x1 | 15.5 | 7.6 | 2.04 |
| 10000x4000x1 | 17.5 | 8.1 | 2.17 |
| 100000x8x1 | 4.2 | 1.4 | 2.98 |
| 100000x64x1 | 8.0 | 2.3 | 3.46 |
| 100000x256x1 | 10.2 | 4.3 | 2.38 |
GELS double
| m×n×nrhs | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2x1 | 0.1 | 0.0 | 1.91 |
| 3x3x1 | 0.1 | 0.1 | 1.68 |
| 4x4x1 | 0.1 | 0.1 | 1.56 |
| 6x6x1 | 0.3 | 0.2 | 1.42 |
| 8x8x1 | 0.4 | 0.3 | 1.37 |
| 12x12x1 | 0.7 | 0.5 | 1.32 |
| 16x16x1 | 0.9 | 0.7 | 1.28 |
| 24x24x1 | 1.3 | 1.1 | 1.16 |
| 32x32x1 | 1.6 | 1.5 | 1.07 |
| 48x48x1 | 2.0 | 2.0 | 0.97 |
| 64x64x1 | 2.2 | 2.4 | 0.91 |
| 96x96x1 | 2.0 | 2.8 | 0.73 |
| 100x100x1 | 2.1 | 2.8 | 0.73 |
| 128x128x1 | 2.3 | 2.9 | 0.78 |
| 192x192x1 | 2.5 | 3.7 | 0.68 |
| 200x200x1 | 2.5 | 4.1 | 0.62 |
| 256x256x1 | 2.6 | 4.5 | 0.59 |
| 257x257x1 | 2.7 | 4.7 | 0.56 |
| 384x384x1 | 2.8 | 5.6 | 0.50 |
| 500x500x1 | 2.9 | 6.2 | 0.47 |
| 512x512x1 | 2.8 | 5.9 | 0.48 |
| 768x768x1 | 2.9 | 6.3 | 0.46 |
| 1000x1000x1 | 3.0 | 6.6 | 0.45 |
| 1001x1001x1 | 3.0 | 6.5 | 0.46 |
| 1024x1024x1 | 3.0 | 6.3 | 0.47 |
| 1536x1536x1 | 3.1 | 6.7 | 0.45 |
| 2048x2048x1 | 3.0 | 6.6 | 0.46 |
| 3072x3072x1 | 3.2 | 7.0 | 0.45 |
| 4096x4096x1 | 3.1 | 6.3 | 0.49 |
| 4097x4097x1 | 3.2 | 6.8 | 0.46 |
| 1024x1024x16 | 2.9 | 6.4 | 0.46 |
| 1024x1024x64 | 2.9 | 6.5 | 0.45 |
| 1024x1024x256 | 3.0 | 6.8 | 0.43 |
| 4096x8x1 | 1.7 | 1.2 | 1.40 |
| 4096x64x1 | 2.3 | 2.9 | 0.81 |
| 4096x256x1 | 2.6 | 4.3 | 0.61 |
| 4096x256x16 | 2.3 | 4.5 | 0.51 |
| 4096x256x64 | 2.5 | 5.0 | 0.50 |
| 4096x256x256 | 2.8 | 5.2 | 0.53 |
| 4096x256x1024 | 3.0 | 5.7 | 0.53 |
| 4096x1024x1 | 3.0 | 6.2 | 0.48 |
| 10000x8x1 | 1.7 | 1.2 | 1.42 |
| 10000x100x1 | 2.5 | 1.9 | 1.35 |
| 10000x1000x1 | 3.1 | 6.9 | 0.46 |
| 10000x4000x1 | 3.3 | 7.4 | 0.44 |
| 100000x8x1 | 1.1 | 0.9 | 1.24 |
| 100000x64x1 | 2.0 | 1.2 | 1.65 |
| 100000x256x1 | 2.5 | 2.8 | 0.91 |
SYEV float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.2 | 0.1 | 1.73 |
| 3 | 0.3 | 0.1 | 2.34 |
| 4 | 0.4 | 0.2 | 2.40 |
| 6 | 0.6 | 0.3 | 2.52 |
| 8 | 0.8 | 0.3 | 2.50 |
| 12 | 1.2 | 0.5 | 2.39 |
| 16 | 1.5 | 0.7 | 2.24 |
| 24 | 2.1 | 1.0 | 2.15 |
| 32 | 2.6 | 1.2 | 2.07 |
| 48 | 3.2 | 1.6 | 2.00 |
| 64 | 3.7 | 2.0 | 1.86 |
| 96 | 4.2 | 2.4 | 1.76 |
| 100 | 4.3 | 2.5 | 1.75 |
| 128 | 4.7 | 2.8 | 1.71 |
| 192 | 5.1 | 3.2 | 1.58 |
| 200 | 5.2 | 3.4 | 1.55 |
| 256 | 5.4 | 3.6 | 1.51 |
| 257 | 5.3 | 3.6 | 1.50 |
| 384 | 5.7 | 3.9 | 1.46 |
| 500 | 5.9 | 4.2 | 1.40 |
| 512 | 5.8 | 4.1 | 1.41 |
| 768 | 5.9 | 4.3 | 1.37 |
| 1000 | 5.7 | 4.5 | 1.26 |
| 1001 | 5.7 | 4.5 | 1.25 |
| 1024 | 5.5 | 4.4 | 1.25 |
| 1536 | 5.0 | 4.5 | 1.12 |
| 2048 | 4.7 | 4.5 | 1.07 |
SYEV double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.3 | 0.1 | 1.78 |
| 3 | 0.3 | 0.1 | 2.10 |
| 4 | 0.3 | 0.1 | 2.36 |
| 6 | 0.5 | 0.2 | 2.38 |
| 8 | 0.7 | 0.3 | 2.39 |
| 12 | 0.9 | 0.4 | 2.17 |
| 16 | 1.1 | 0.6 | 1.98 |
| 24 | 1.5 | 0.8 | 1.79 |
| 32 | 1.7 | 1.1 | 1.59 |
| 48 | 1.9 | 1.4 | 1.34 |
| 64 | 2.2 | 1.8 | 1.22 |
| 96 | 2.4 | 2.2 | 1.08 |
| 100 | 2.4 | 2.2 | 1.09 |
| 128 | 2.5 | 2.5 | 1.00 |
| 192 | 2.8 | 3.0 | 0.94 |
| 200 | 2.8 | 3.1 | 0.91 |
| 256 | 3.0 | 3.3 | 0.91 |
| 257 | 2.7 | 3.3 | 0.80 |
| 384 | 2.8 | 3.7 | 0.76 |
| 500 | 3.1 | 3.8 | 0.82 |
| 512 | 3.0 | 3.9 | 0.77 |
| 768 | 3.2 | 4.1 | 0.78 |
| 1000 | 3.0 | 4.0 | 0.75 |
| 1001 | 3.0 | 4.0 | 0.74 |
| 1024 | 3.0 | 3.9 | 0.76 |
| 1536 | 2.7 | 3.3 | 0.83 |
| 2048 | 2.4 | 2.9 | 0.84 |
GESDD float
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.7 | 0.1 | 7.52 |
| 3x3 | 0.7 | 0.2 | 4.29 |
| 4x4 | 0.7 | 0.2 | 3.43 |
| 6x6 | 0.8 | 0.4 | 2.10 |
| 8x8 | 0.7 | 0.5 | 1.36 |
| 12x12 | 0.8 | 0.8 | 1.00 |
| 16x16 | 1.4 | 1.1 | 1.26 |
| 24x24 | 1.8 | 1.5 | 1.19 |
| 32x32 | 2.6 | 2.6 | 0.98 |
| 48x48 | 4.0 | 3.3 | 1.20 |
| 64x64 | 5.4 | 5.0 | 1.07 |
| 96x96 | 8.5 | 6.9 | 1.23 |
| 100x100 | 8.8 | 7.1 | 1.23 |
| 128x128 | 11.0 | 9.0 | 1.23 |
| 192x192 | 15.6 | 11.2 | 1.39 |
| 200x200 | 16.1 | 11.6 | 1.39 |
| 256x256 | 18.0 | 12.4 | 1.45 |
| 257x257 | 18.4 | 13.2 | 1.39 |
| 384x384 | 22.2 | 14.0 | 1.58 |
| 500x500 | 24.3 | 15.6 | 1.56 |
| 512x512 | 23.5 | 13.3 | 1.77 |
| 768x768 | 25.6 | 13.9 | 1.84 |
| 1000x1000 | 24.1 | 14.5 | 1.65 |
| 1001x1001 | 23.9 | 14.4 | 1.66 |
| 1024x1024 | 21.9 | 9.7 | 2.26 |
| 1536x1536 | 21.7 | 10.1 | 2.15 |
| 2048x2048 | 20.4 | 8.7 | 2.35 |
| 4096x64 | 21.2 | 10.1 | 2.11 |
| 4096x256 | 26.7 | 14.3 | 1.87 |
| 4096x1024 | 26.4 | 12.4 | 2.12 |
| 10000x8 | 4.3 | 5.7 | 0.75 |
| 10000x100 | 27.3 | 10.4 | 2.63 |
| 10000x1000 | 33.9 | 17.2 | 1.97 |
GESDD double
| m×n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2x2 | 0.7 | 0.1 | 7.85 |
| 3x3 | 0.5 | 0.1 | 3.57 |
| 4x4 | 0.5 | 0.2 | 2.90 |
| 6x6 | 0.5 | 0.3 | 1.80 |
| 8x8 | 0.6 | 0.4 | 1.40 |
| 12x12 | 0.6 | 0.6 | 0.93 |
| 16x16 | 0.9 | 0.9 | 1.00 |
| 24x24 | 1.2 | 1.2 | 0.93 |
| 32x32 | 1.5 | 2.2 | 0.67 |
| 48x48 | 1.9 | 2.8 | 0.66 |
| 64x64 | 2.1 | 4.3 | 0.50 |
| 96x96 | 2.8 | 5.9 | 0.47 |
| 100x100 | 2.9 | 6.1 | 0.48 |
| 128x128 | 3.5 | 7.4 | 0.48 |
| 192x192 | 4.3 | 9.3 | 0.47 |
| 200x200 | 4.4 | 9.9 | 0.45 |
| 256x256 | 4.9 | 10.1 | 0.48 |
| 257x257 | 4.9 | 11.0 | 0.45 |
| 384x384 | 5.6 | 11.6 | 0.48 |
| 500x500 | 5.9 | 12.5 | 0.47 |
| 512x512 | 5.7 | 10.2 | 0.56 |
| 768x768 | 5.9 | 9.7 | 0.61 |
| 1000x1000 | 5.9 | 10.4 | 0.57 |
| 1001x1001 | 5.9 | 10.1 | 0.59 |
| 1024x1024 | 5.4 | 7.8 | 0.69 |
| 1536x1536 | 6.0 | 7.7 | 0.78 |
| 2048x2048 | 5.2 | 7.5 | 0.70 |
| 4096x64 | 5.1 | 8.9 | 0.57 |
| 4096x256 | 6.1 | 11.8 | 0.51 |
| 4096x1024 | 5.8 | 10.5 | 0.55 |
| 10000x8 | 2.2 | 4.9 | 0.44 |
| 10000x100 | 6.0 | 5.8 | 1.03 |
| 10000x1000 | 6.9 | 15.2 | 0.46 |
GEEV float
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.7 | 0.1 | 7.75 |
| 3 | 0.5 | 0.2 | 3.29 |
| 4 | 0.8 | 0.3 | 3.14 |
| 6 | 1.1 | 0.4 | 2.40 |
| 8 | 1.5 | 0.6 | 2.54 |
| 12 | 2.1 | 0.9 | 2.33 |
| 16 | 2.5 | 1.2 | 2.06 |
| 24 | 3.4 | 1.6 | 2.06 |
| 32 | 3.9 | 2.0 | 1.91 |
| 48 | 4.8 | 2.5 | 1.91 |
| 64 | 5.4 | 2.9 | 1.83 |
| 96 | 6.1 | 3.2 | 1.94 |
| 100 | 6.3 | 3.3 | 1.92 |
| 128 | 6.7 | 3.7 | 1.79 |
| 192 | 7.4 | 5.5 | 1.34 |
| 200 | 7.3 | 5.9 | 1.23 |
| 256 | 7.5 | 6.6 | 1.14 |
| 257 | 7.4 | 6.8 | 1.09 |
| 384 | 8.2 | 8.6 | 0.96 |
| 500 | 8.6 | 10.0 | 0.85 |
| 512 | 7.6 | 8.3 | 0.92 |
| 768 | 8.4 | 10.7 | 0.79 |
| 1000 | 7.6 | 12.4 | 0.61 |
| 1001 | 7.1 | 12.3 | 0.57 |
| 1024 | 6.3 | 9.6 | 0.65 |
GEEV double
| n | Eigen GFLOP/s | OpenBLAS GFLOP/s | Eigen ÷ OpenBLAS |
|---|---|---|---|
| 2 | 0.8 | 0.1 | 8.27 |
| 3 | 0.4 | 0.2 | 2.57 |
| 4 | 0.5 | 0.2 | 2.22 |
| 6 | 0.7 | 0.4 | 1.82 |
| 8 | 0.8 | 0.5 | 1.60 |
| 12 | 1.0 | 0.8 | 1.28 |
| 16 | 1.2 | 1.0 | 1.21 |
| 24 | 1.5 | 1.4 | 1.04 |
| 32 | 1.5 | 1.7 | 0.86 |
| 48 | 1.6 | 2.1 | 0.79 |
| 64 | 1.7 | 2.4 | 0.72 |
| 96 | 1.8 | 2.4 | 0.75 |
| 100 | 1.8 | 2.5 | 0.74 |
| 128 | 1.9 | 2.6 | 0.73 |
| 192 | 1.9 | 3.9 | 0.50 |
| 200 | 2.0 | 4.2 | 0.48 |
| 256 | 2.0 | 4.6 | 0.44 |
| 257 | 2.0 | 4.8 | 0.42 |
| 384 | 2.0 | 6.1 | 0.34 |
| 500 | 2.0 | 6.9 | 0.30 |
| 512 | 1.9 | 5.5 | 0.35 |
| 768 | 1.8 | 6.7 | 0.26 |
| 1000 | 1.7 | 8.0 | 0.22 |
| 1001 | 1.7 | 7.6 | 0.22 |
| 1024 | 1.5 | 6.9 | 0.23 |