Performance
0.7.2 preview, exact Source983 recipe11. All 64 primary platform/workload rows were actually attempted: 40 qualified comparisons, 24 failed or unqualified, 0 pending. Additional macOS Intel: 16 attempts, 2 qualified. Every valid series contains ten measured samples checked against the original numerical oracle.
These are diagnostic timings on the recorded hosts, not quiet-host acceptance. Core rows use their original kernel boundary; linalg and symbolic rows time only the original operation. Compilation, process startup and formatting are separate phases. Each column shows VKF time divided by the named peer time: below 1 is faster; above 1 is slower. Means and sample standard deviations in milliseconds remain downloadable. Failed full comparisons get no successful timing credit; partial samples remain in the raw reports. Correct results do not imply an original speed gate passed.
Full pinned benchmark report · Raw samples · Means and sample SD · Compiler and artifact pins · Runner identities
Unqual. means failed or unqualified, with no full comparison timing credit. † marks an original speed-gate failure despite valid correct timing samples. Hover a workload for its original ID and a row for its retained outcome.
Linux
16/16 actual terminal attempts; 15 qualified comparisons.
Core
| Workload | C++ | Rust | Zig |
|---|---|---|---|
| Spectral norm | 0.25 | 0.15 | 0.15 |
| Fannkuch | 2.17 | 1.82 | 1.65 |
| N-body | 3.02 | 4.30 | 2.16 |
| Combined kernels | 0.54 | 0.88 | 1.00 |
| Parallel kernels | 0.35 | 0.57 | 0.65 |
Linear algebra
| Workload | Eigen | faer | SciPy |
|---|---|---|---|
| Solve 96 † | 452.12 | 351.56 | 283.75 |
| Least squares † | 532.35 | 313.90 | 267.65 |
| LU 96 † | 492.80 | 424.86 | 613.85 |
| QR 96×48 † | 78.34 | 94.83 | 95.75 |
| Cholesky 96 † | 316.98 | 591.82 | 410.02 |
| SVD 96×48 † | 229.00 | 364.15 | 324.30 |
| Eigenvalues 96 † | 1054.72 | 1034.41 | 1168.98 |
Symbolic
| Workload | SymEngine | SymPy | Symbolics |
|---|---|---|---|
| Expansion 1 | Unqual. | Unqual. | Unqual. |
| Expansion 2 | 0.90 | 0.01 | 0.07 |
| Addition | 0.00 | 0.02 | 0.00 |
| Series | 0.03 | 0.04 | 0.00 |
macOS ARM
16/16 actual terminal attempts; 7 qualified comparisons.
Core
| Workload | C++ | Rust | Zig |
|---|---|---|---|
| Spectral norm | 2.34 | 2.50 | 2.39 |
| Fannkuch | 5.02 | 5.31 | 5.40 |
| N-body | 9.98 | 10.35 | 7.91 |
| Combined kernels | 5.15 | 4.10 | 5.55 |
| Parallel kernels | Unqual. | Unqual. | Unqual. |
Linear algebra
| Workload | Eigen | faer | SciPy |
|---|---|---|---|
| Solve 96 | Unqual. | Unqual. | Unqual. |
| Least squares | Unqual. | Unqual. | Unqual. |
| LU 96 | Unqual. | Unqual. | Unqual. |
| QR 96×48 | Unqual. | Unqual. | Unqual. |
| Cholesky 96 | Unqual. | Unqual. | Unqual. |
| SVD 96×48 | Unqual. | Unqual. | Unqual. |
| Eigenvalues 96 | Unqual. | Unqual. | Unqual. |
Symbolic
| Workload | SymEngine | SymPy | Symbolics |
|---|---|---|---|
| Expansion 1 | Unqual. | Unqual. | Unqual. |
| Expansion 2 | 0.33 | 0.01 | 0.09 |
| Addition | 0.00 | 0.01 | 0.00 |
| Series | 0.04 | 0.06 | 0.00 |
Windows
16/16 actual terminal attempts; 14 qualified comparisons.
Core
| Workload | C++ | Rust | Zig |
|---|---|---|---|
| Spectral norm | 0.16 | 0.16 | 0.16 |
| Fannkuch | 1.84 | 2.18 | 1.87 |
| N-body | 3.36 | 3.98 | 2.64 |
| Combined kernels | 1.04 | 0.95 | 1.07 |
| Parallel kernels | Unqual. | Unqual. | Unqual. |
Linear algebra
| Workload | Eigen | faer | SciPy |
|---|---|---|---|
| Solve 96 † | 508.67 | 536.94 | 422.00 |
| Least squares † | 932.46 | 941.28 | 579.16 |
| LU 96 † | 709.77 | 623.72 | 917.81 |
| QR 96×48 † | 109.22 | 111.80 | 128.75 |
| Cholesky 96 † | 535.53 | 363.69 | 574.59 |
| SVD 96×48 † | 230.93 | 445.64 | 405.59 |
| Eigenvalues 96 † | 1397.81 | 1439.49 | 1589.30 |
Symbolic
| Workload | SymEngine | SymPy | Symbolics |
|---|---|---|---|
| Expansion 1 | Unqual. | Unqual. | Unqual. |
| Expansion 2 | 0.66 | 0.01 | 0.10 |
| Addition | 0.00 | 0.02 | 0.00 |
| Series | 0.02 | 0.04 | 0.00 |
WebAssembly
16/16 actual terminal attempts; 4 qualified comparisons.
Core
| Workload | C++ | Rust | Zig |
|---|---|---|---|
| Spectral norm | 313.32 | 305.94 | 310.31 |
| Fannkuch | 1105.37 | 1068.51 | 1042.61 |
| N-body | 627.20 | 982.28 | 664.33 |
| Combined kernels | 645.32 | 584.65 | 674.84 |
| Parallel kernels | Unqual. | Unqual. | Unqual. |
Linear algebra
| Workload | Eigen | faer | SciPy |
|---|---|---|---|
| Solve 96 | Unqual. | Unqual. | Unqual. |
| Least squares | Unqual. | Unqual. | Unqual. |
| LU 96 | Unqual. | Unqual. | Unqual. |
| QR 96×48 | Unqual. | Unqual. | Unqual. |
| Cholesky 96 | Unqual. | Unqual. | Unqual. |
| SVD 96×48 | Unqual. | Unqual. | Unqual. |
| Eigenvalues 96 | Unqual. | Unqual. | Unqual. |
Symbolic
| Workload | SymEngine | SymPy | Symbolics |
|---|---|---|---|
| Expansion 1 | Unqual. | Unqual. | Unqual. |
| Expansion 2 | Unqual. | Unqual. | Unqual. |
| Addition | Unqual. | Unqual. | Unqual. |
| Series | Unqual. | Unqual. | Unqual. |
macOS Intel — additional
16/16 actual terminal attempts; 2 qualified comparisons.
Core
| Workload | C++ | Rust | Zig |
|---|---|---|---|
| Spectral norm | Unqual. | Unqual. | Unqual. |
| Fannkuch | 2.01 | 2.35 | 2.42 |
| N-body | 3.23 | 4.98 | 2.46 |
| Combined kernels | Unqual. | Unqual. | Unqual. |
| Parallel kernels | Unqual. | Unqual. | Unqual. |
Linear algebra
| Workload | Eigen | faer | SciPy |
|---|---|---|---|
| Solve 96 | Unqual. | Unqual. | Unqual. |
| Least squares | Unqual. | Unqual. | Unqual. |
| LU 96 | Unqual. | Unqual. | Unqual. |
| QR 96×48 | Unqual. | Unqual. | Unqual. |
| Cholesky 96 | Unqual. | Unqual. | Unqual. |
| SVD 96×48 | Unqual. | Unqual. | Unqual. |
| Eigenvalues 96 | Unqual. | Unqual. | Unqual. |
Symbolic
| Workload | SymEngine | SymPy | Symbolics |
|---|---|---|---|
| Expansion 1 | Unqual. | Unqual. | Unqual. |
| Expansion 2 | Unqual. | Unqual. | Unqual. |
| Addition | Unqual. | Unqual. | Unqual. |
| Series | Unqual. | Unqual. | Unqual. |
Remaining compiler and harness gaps
macOS ARM retains private ABI argument overflow and oversized list-literal backend failures. ARM and Windows parallel core entry timers fail. WASM retains unreachable traps in linear algebra and symbolic expansion, an incorrect add1 result (0 instead of 2998), unavailable internal timers and unverified concurrent execution. Additional Intel retains capacity failures and rejected zero timers. Symbolics expand1 times out at its original limit on Linux, ARM and Windows; this peer failure cannot be credited as a successful full comparison. Each exact platform/workload diagnostic remains in the linked matrix and failures.
Original failures and partial evidence
The raw reports retain all partial valid samples from failed workloads, rejected zero timers, numerical outcomes and exact failure diagnostics. A missing peer, trap, timeout or unverified concurrent execution cannot earn full comparison credit. Original relative-speed gates remain separate from numerical correctness.
Matrix and diagnostics · Failures · Symbolic attempt outcomes · Original gates · Rejected zero-timer arrays
Linux and WASM adopt valid matching original attempts with their recorded conditions. Windows and macOS use standard GitHub-hosted runners. Each platform measurement uses its exact frozen compiler. This report does not certify C0/P0, stable releases, physical GPU support or universal VKF performance superiority.
Windows compiler build took 15.433 minutes; the benchmark command phase took 63.974 minutes, including process startup, peer work and ten Symbolics expand1 timeouts at the original 120-second limit. VKF was fastest on three Windows symbolic cases, but expand1 averaged 19863.685 ms versus SymEngine 80.3609 ms and SymPy 12096.7978 ms. Compiler and peer bottlenecks are disclosed, not hidden.
Website example verification: 51 worker examples and 65 browser UI checks passed. This software browser evidence is separate from benchmark and full language acceptance.