Pipeline measurements
Recorded September 19, 2026 — P6
These results describe the original snapshot, not the current source or release. Local artifact paths are provenance records, not public downloads.
Archive index · Current support
Plan format v1 and ABI v6 covered eight numeric dtypes and 68 pipeline signatures. The package exposed 97 operations and 404 signatures.
Validation
Apple M1 Pro, macOS arm64/Darwin 27, Node 24.19.0, pnpm 12.4.2 and Rust 1.96.0. Release checks passed with 1,823 TS, 11 Rust and three registry tests. Four modes covered eight dtypes, lane boundaries, 64 nodes/eight extras, independent BigInt products, FMA counterexamples, IEEE special values, serialization, LRU eviction, cross-engine ownership and disposal. Direct ABI checks rejected malformed later nodes without partial writes.
Wasm resident instrumentation ran 100 calls: one fused call each, two bounded instruction/pointer allocations each, all reclaimed, no whole-array intermediate and no memory growth after warmup. The extension rehearsal passed. AVX2 cross- compilation passed but was not execution evidence. Chromium/WebKit passed 20 tests; Firefox's ten failed at startup. Other native/minimum-Node evidence remained open.
Recorded performance
The old bench:p6 (now bench:pipelines) recorded 952 cases, seven samples, five warmups, median/MAD, iterations, environment and asset hashes. f32/f64/i32 spanned 0/1/8/128/1K/16K/256K/1M elements with JS, separate/fused array/resident, full lifecycle and transfer/allocation cases. f32 also used generic extra-vector nodes.
For 1,048,576 elements and constant mul(3) → add(7) → clamp(0,19), medians in ms:
| dtype / mode | Separate arrays | Fused arrays | Separate resident | Fused resident |
|---|---|---|---|---|
| f32 / native scalar | 4.934 | 0.763 | 4.865 | 0.759 |
| f32 / native NEON | 1.399 | 0.091 | 1.145 | 0.092 |
| f32 / Wasm scalar | 9.669 | 4.114 | 8.985 | 3.841 |
| f32 / Wasm SIMD128 | 1.847 | 0.352 | 1.017 | 0.137 |
| f64 / native scalar | 15.173 | 1.520 | 15.253 | 1.496 |
| f64 / native NEON (fallback) | 15.206 | 1.499 | 15.144 | 1.519 |
| f64 / Wasm scalar | 21.399 | 4.359 | 19.785 | 3.894 |
| f64 / Wasm SIMD128 (fallback) | 21.739 | 4.501 | 20.001 | 3.876 |
| i32 / native scalar | 55.497 | 0.090 | 55.250 | 0.089 |
| i32 / native NEON (fallback) | 55.643 | 0.087 | 55.271 | 0.090 |
| i32 / Wasm scalar | 99.711 | 0.817 | 98.886 | 0.583 |
| i32 / Wasm SIMD128 (fallback) | 100.101 | 0.388 | 99.239 | 0.126 |
Fair JS medians were f32 1.580 ms, f64 1.003 ms and i32 1.379 ms. JS preserved each f32 rounding and used Math.imul/32-bit wrap for integers. f64 did not beat JS in this case. Specialized integer loops used width-specific wrapping arithmetic versus the generic separate kernel's i128 logic; the entire gain cannot be attributed to fewer traversals. Scalar capability does not prohibit compiler auto-vectorization.
Generic extra-vector f32 resident plans at 1M took native scalar 14.552 ms, NEON 1.663 ms, Wasm scalar 17.215 ms and SIMD128 1.734 ms. They could be slower than separate kernels; specialized-chain gains did not generalize. The initial generic-only report was artifacts/p6/benchmark-generic.json.
At one f32 element, native NEON separate/fused array calls were 6.817/2.231 μs, and resident calls 1.398/0.450 μs. Wasm SIMD128 resident calls were 0.659/1.223 μs; at 128 elements 0.573/0.912 μs; at 1,024 elements 1.352/0.863 μs. The first observed resident benefit was 128 for Wasm scalar and 1,024 for SIMD128, not exact crossover thresholds. At 1M, SIMD128 upload took 85.5 μs, download with allocation 146.5 μs, arena allocation/disposal 38.5 μs, resident fusion 137.3 μs, ordinary reused output 351.6 μs and full resident lifecycle 431.6 μs. Native NEON resident fusion was about 92 μs versus about 970 μs for its full lifecycle.
Compilation cache-hit medians were 2.41–4.08 μs and misses 2.54–3.70 μs; normalization/noise could dominate, so reuse compiled objects in hot paths. No fixed performance gate was established.
| Asset | P5 bytes | P6 bytes | Increase |
|---|---|---|---|
| darwin-arm64 native | 437,184 | 453,904 | 16,720 |
| scalar Wasm | 129,335 | 141,709 | 12,374 |
| SIMD Wasm | 132,611 | 147,764 | 15,153 |
Logs/benchmarks were in artifacts/p6/; source/hash/asset/trace evidence in artifacts/baseline/p6-2026-09-19/. This checkpoint collected the executed checks, not a new run of every earlier benchmark. Overall status remained failed due to Firefox.