CPU and CUDA optimization evaluation — 2026-10-16

Fused CPU native has lower medians than NumPy/Torch in 10/16 and 12/16 using process medians; the strict tables’ pooled estimator gives 8/16 and 12/16, respectively. Explicit device-mode native CUDA medians are lower than the same-artifact eager Torch reference in 52/52 cases: Torch/native ratios are 1.33–2.47× dense, 2.16–3.18× CSR and 2.12–3.10× scaled/neutral sparse. Device cuBLAS has lower medians in 12/16; all four Jacobi API losses remain visible. Device medians are lower in 68/68 native host/device pairs, a descriptive comparison of different mode options, without confidence intervals. The original strict CPU/CUDA batch verdicts remain regression; the focused six-block pooled follow-up remains inconclusive.

All 216 primary native rows are shown: 32 CPU A/B rows including separate operation controls, 48 CUDA API A/B rows, and 136 explicit CUDA host/device rows. The primary evidence cohorts contain 112 fresh-process artifacts / 1,184 eligible candidate/case results. A separately disclosed focused confirmation adds 8 artifacts / 96 results, for 120 artifacts / 1,280 results overall, retaining all original observations. Instrumented profiles and fixed-input probes are separate diagnostics, outside these scores. Whole-batch strict verdicts, framework controls, remaining losses and changed work are retained. CUDA ABBA combines four complete dense cohorts and four separately launched complete CSR cohorts after two disclosed metadata-audit stops; retained partial cohorts are excluded explicitly. No universal improvement or complete strict-gate pass is inferred from selected medians.

CPU: the saved overall verdict is regression. Native rows contain 25 within-budget, 7 inconclusive, 0 regression and 0 comparability-failed cases. Unchanged framework controls contain 4 regression, 40 inconclusive and 0 comparability-failed cases. Within budget permits up to 5% slowdown and is not a speedup claim.

CUDA API: the saved overall verdict is regression. Native rows contain 20 within-budget, 26 inconclusive, 2 regression and 0 comparability-failed cases. Unchanged framework controls contain 1 regression, 18 inconclusive and 0 comparability-failed cases. Within budget permits up to 5% slowdown and is not a speedup claim.

Host, correctness and timing boundaries

Host: 13th Gen Intel(R) Core(TM) i7-13700K; Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39; CPython 3.12.3. CUDA runtime identity:

{
  "compute_capability": [
    7,
    5
  ],
  "device": 0,
  "driver_api_version": 13010,
  "name": "NVIDIA GeForce RTX 2060",
  "runtime_version": 12080,
  "total_memory": 6442123264,
  "uuid": "GPU-725be96d-2b67-c8ec-fa10-5d9b23a2c302"
}
Actual compiler and installed package metadata

environment

CPU compiler

CUDA compiler / host

packages

CPU ABBA

GNU 16.0.1

{}

{“cgpy”: “0.4.0”, “numpy”: “2.2.6”, “scipy”: “1.15.3”, “threadpoolctl”: “3.6.0”, “torch”: “2.8.0+cpu”}

CUDA API ABBA

GNU 13.3.0

{“architectures”: “75”, “build_type”: “Release”, “compiler”: “NVIDIA 12.8.93”, “enabled”: true, “flags”: “ -O3 -DNDEBUG”, “host_compiler”: “GNU 13.3.0”, “scalar_dtype”: “float64”, “toolkit_version”: “12.8.93”}

{“cgpy”: “0.4.0”, “numpy”: “2.2.6”, “scipy”: “1.15.3”, “threadpoolctl”: “3.6.0”, “torch”: “2.8.0+cu128”}

CUDA modes

GNU 13.3.0

{“architectures”: “75”, “build_type”: “Release”, “compiler”: “NVIDIA 12.8.93”, “enabled”: true, “flags”: “ -O3 -DNDEBUG”, “host_compiler”: “GNU 13.3.0”, “scalar_dtype”: “float64”, “toolkit_version”: “12.8.93”}

{“cgpy”: “0.4.0”, “numpy”: “2.2.6”, “scipy”: “1.15.3”, “threadpoolctl”: “3.6.0”, “torch”: “2.8.0+cu128”}

CUDA confirmation

GNU 13.3.0

{“architectures”: “75”, “build_type”: “Release”, “compiler”: “NVIDIA 12.8.93”, “enabled”: true, “flags”: “ -O3 -DNDEBUG”, “host_compiler”: “GNU 13.3.0”, “scalar_dtype”: “float64”, “toolkit_version”: “12.8.93”}

{“cgpy”: “0.4.0”, “numpy”: “2.2.6”, “scipy”: “1.15.3”, “threadpoolctl”: “3.6.0”, “torch”: “2.8.0+cu128”}

All configurations pin logical CPU 0 and use one native/library/Torch intraop and one Torch interop thread. GPU clocks, thermal/display activity, Windows background load and physical-core isolation are uncontrolled. Seed 20261015, three warmups, 30 complete Williams rounds, standard CG/PCG, rtol=1e-8, atol=1e-12, maxiter=2000 and residual refresh/restart every 50 updates are fixed. Dense repeats three solves per timed round; CSR/scaled sparse repeats one. CPU includes both fused=True and fused=False controls; CUDA uses fused=True. No automatic kernel or execution-mode selection occurs.

All results pass the independent stable CPU true-residual gate before/after timing. Primary timing tables preserve iterations/matvecs and residual/threshold ranges over both processes. Different native/reference counts mean different numerical work: timings remain time-to-required-tolerance observations, without an equal-work kernel claim. The constant-diagonal Poisson CSR fixtures have no Jacobi conditioning benefit; the scaled sparse suite adds four nonuniformly scaled cases and a neutral case.

Prepared calls reuse snapshots, output, Jacobi and workspace, charging every x0 reset. API calls charge per-call output/workspace/Jacobi resource construction; resident input snapshots/upload and correctness downloads are excluded. CUDA times completed wall time including CPU dispatch, control/scalar transfers and completion fences, not GPU-event kernel-only or host-to-host latency. Torch is this project’s same-policy eager CG/PCG using public operations, rather than an official Torch CG solver or compiled/graph capture. See Methodology and reproduction for precise boundaries. Do not subtract separately sampled API/prepared medians to isolate a phase.

ABBA uses baseline/current/current/baseline adjacent fresh processes per configuration, two artifact blocks per side. Its A/B table centers are the median of 60 pooled normalized round samples per side; brackets beside milliseconds are min/max of the two process medians, not confidence intervals or individual-call tail latency. Saved 95% intervals resample artifacts and rounds 10,000 times, seed 20261015. The comparison does not infer paired covariance from ABBA order; independently resampled rounds can understate serial dependence, two process blocks give limited variance evidence, and coverage is per case without multiplicity adjustment.

Strict verdicts use the unrounded interval: upper bound <=1.05 means within the 5% regression budget (not necessarily a speedup); lower bound >1.05 means regression; overlap is inconclusive. Any incompatible input, specification or same-candidate work count rejects the whole configuration. The renderer uses its saved report without recomputing/bootstrap projection.

Explicit-mode characterization uses one complete forward configuration pass then its exact reverse, two processes per mode. Those table centers are the median of the two process medians, as predeclared by that runner, rather than the ABBA pooled estimator. Mode ratios are descriptive only; different options are never sent through or allowed around the strict equal-work comparator. No cross-host or universal performance claim is made.

For the fused CPU cross-framework outcome summary, median-of-process-medians aggregation gives 10/16 lower native medians versus NumPy and 12/16 versus Torch. The strict tables and remaining-loss inventory instead use pooled normalized rounds: 8/16 versus NumPy and 12/16 versus Torch. The two dense-1024 API rows (none and Jacobi) change native/NumPy point ranking between estimators. Both are disclosed; neither aggregation establishes statistical significance or changes the strict A/B regression budget.

The maximum independently measured residual/threshold across the main cohorts and focused confirmation is 0.9986449053814517.

Device-engine correctness evidence and sanitizer limits

The completed memcheck includes the concurrent-stream test. The first four-test racecheck attempt did not complete before its timeout, and remains retained. The subsequent focused run and serialized concurrent-stream run have different coverage. A serialized racecheck pass does not establish race freedom between overlapping streams; normal execution and memcheck exercised concurrency. Instrumented or force-blocking runs are correctness evidence and are excluded from every formal timing batch.

Local retained sanitizer logs

log

outcome / coverage

SHA256

build/performance-optimization/cuda-device-memcheck.log

27 GPU tests; 0 errors, 0 leaked bytes

18c9479e39e571071e9f46d2270a3a9eb42c0964aa141d027fdfa4760b94e902

build/performance-optimization/cuda-device-racecheck.log

Initial four-test attempt timed out during concurrent streams at 60 seconds; incomplete

51f718631e9c895d6157e2182ff9d5debe61a46282c537942398ff8a071f1110

build/performance-optimization/cuda-device-racecheck-focused.log

Three focused tests, without forced serialization; 0 hazards

42eafe35d1d44d60957548bdc5cf9ca9a96d9d7b4208a0632a35f0d3654c9fbe

build/performance-optimization/cuda-device-racecheck-serialized-streams.log

Concurrent-stream test with force-blocking launches; 0 hazards

45810dbc1b092e24a2c2041470cc2b311c96fc06bd9f963315e1121fd76b2456

CPU paired-row implementation and separate-operation controls

The saved whole-batch verdict is regression. Native and framework-control rows below retain the original complete configuration comparisons; a reference regression is not silently removed from the gate. Unchanged framework code also exhibits latency variation, limiting the attribution of every measured difference to the native source edit.

Saved strict verdict counts, including unchanged framework controls

candidate

within 5%

inconclusive

regression

comparison failed

native

25

7

0

0

numpy-out

10

19

3

0

torch-eager-out

10

21

1

0

cpu-dense-f64-v1 / none / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0327 [0.0322–0.0331]

0.0325 [0.0304–0.0355]

0.9942 [0.9082–1.1330]

inconclusive

NP 0.2330 [0.2062–0.2851]; T 0.3292 [0.3158–0.4549]

NP 0.1395; T 0.0987

A 49/51; B 49/51; NP 49/51; T 49/51

A 2.0721e-06 / 2.7376e-06; B 2.0721e-06 / 2.7376e-06; NP 2.0466e-06 / 2.7376e-06; T 2.4465e-06 / 2.7376e-06

dense-256/native

0.5170 [0.5100–0.5258]

0.4123 [0.3945–0.4433]

0.7975 [0.7456–0.8728]

within 5%

NP 0.6806 [0.6120–0.7937]; T 0.7511 [0.6679–1.0028]

NP 0.6058; T 0.5489

A 67/70; B 67/70; NP 67/70; T 67/70

A 5.7065e-06 / 6.3423e-06; B 5.7065e-06 / 6.3423e-06; NP 5.6473e-06 / 6.3423e-06; T 5.7260e-06 / 6.3423e-06

dense-1024/native

9.5429 [9.4981–9.6317]

8.2317 [7.9056–8.6634]

0.8626 [0.8159–0.9394]

within 5%

NP 7.8980 [7.5478–8.6324]; T 8.2500 [7.7859–8.9990]

NP 1.0423; T 0.9978

A 70/73; B 70/73; NP 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; NP 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/native

87.7368 [81.0046–93.3070]

62.4681 [60.3494–63.4716]

0.7120 [0.6438–0.7870]

within 5%

NP 49.6681 [49.5943–50.2464]; T 53.4744 [52.0416–54.2202]

NP 1.2577; T 1.1682

A 70/73; B 70/73; NP 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; NP 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cpu-dense-f64-v1 / none / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0397 [0.0382–0.0404]

0.0315 [0.0309–0.0324]

0.7917 [0.7466–0.8604]

within 5%

NP 0.1854 [0.1785–0.1901]; T 0.2808 [0.2663–0.2865]

NP 0.1697; T 0.1120

A 49/51; B 49/51; NP 49/51; T 49/51

A 2.0721e-06 / 2.7376e-06; B 2.0721e-06 / 2.7376e-06; NP 2.0466e-06 / 2.7376e-06; T 2.4465e-06 / 2.7376e-06

dense-256/native

0.5715 [0.5479–0.5818]

0.3797 [0.3746–0.3826]

0.6643 [0.6382–0.7054]

within 5%

NP 0.5563 [0.4991–0.5952]; T 0.6843 [0.6264–0.7230]

NP 0.6826; T 0.5548

A 67/70; B 67/70; NP 67/70; T 67/70

A 5.7065e-06 / 6.3423e-06; B 5.7065e-06 / 6.3423e-06; NP 5.6473e-06 / 6.3423e-06; T 5.7260e-06 / 6.3423e-06

dense-1024/native

9.5102 [9.4436–9.5481]

7.3781 [7.3141–8.6230]

0.7758 [0.7611–0.9309]

within 5%

NP 7.2938 [7.2771–8.7181]; T 7.6804 [7.6481–9.8028]

NP 1.0116; T 0.9606

A 70/73; B 70/73; NP 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; NP 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/native

80.6819 [78.8766–82.8562]

65.6108 [62.8639–68.3456]

0.8132 [0.7577–0.8724]

within 5%

NP 50.3512 [48.4694–52.9775]; T 53.2306 [51.1151–54.8778]

NP 1.3031; T 1.2326

A 70/73; B 70/73; NP 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; NP 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cpu-dense-f64-v1 / jacobi / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0071 [0.0067–0.0078]

0.0066 [0.0066–0.0067]

0.9345 [0.8362–1.0235]

within 5%

NP 0.0294 [0.0287–0.0296]; T 0.0493 [0.0470–0.0511]

NP 0.2259; T 0.1346

A 5/7; B 5/7; NP 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; NP 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/native

0.0517 [0.0493–0.0550]

0.0386 [0.0384–0.0387]

0.7469 [0.6935–0.7884]

within 5%

NP 0.0535 [0.0488–0.0571]; T 0.0659 [0.0643–0.0686]

NP 0.7210; T 0.5856

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; NP 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/native

0.9551 [0.8995–0.9692]

0.8215 [0.7925–0.8729]

0.8601 [0.7931–0.9790]

within 5%

NP 0.8020 [0.7506–0.8686]; T 0.8739 [0.8043–0.9292]

NP 1.0243; T 0.9400

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; NP 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/native

5.7502 [5.5917–5.8611]

4.8315 [4.7832–4.8676]

0.8402 [0.8106–0.8741]

within 5%

NP 3.9625 [3.8590–3.9980]; T 4.2547 [4.1849–4.2712]

NP 1.2193; T 1.1356

A 3/5; B 3/5; NP 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; NP 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

cpu-dense-f64-v1 / jacobi / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0122 [0.0122–0.0122]

0.0135 [0.0125–0.0169]

1.1131 [0.9886–1.5647]

inconclusive

NP 0.0410 [0.0366–0.0581]; T 0.0699 [0.0624–0.1018]

NP 0.3306; T 0.1936

A 5/7; B 5/7; NP 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; NP 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/native

0.0561 [0.0558–0.0577]

0.0511 [0.0451–0.0586]

0.9108 [0.7763–1.0523]

inconclusive

NP 0.0852 [0.0704–0.0951]; T 0.1178 [0.1048–0.1563]

NP 0.5992; T 0.4336

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; NP 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/native

0.7712 [0.7606–0.7781]

0.7048 [0.5912–0.8451]

0.9138 [0.7566–1.1167]

inconclusive

NP 0.6801 [0.6074–0.9054]; T 0.7864 [0.6976–0.9942]

NP 1.0362; T 0.8961

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; NP 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/native

5.1561 [5.1375–5.2358]

4.4342 [4.3593–4.9282]

0.8600 [0.8249–0.9716]

within 5%

NP 3.5361 [3.4721–3.8382]; T 3.9190 [3.8155–4.3792]

NP 1.2540; T 1.1315

A 3/5; B 3/5; NP 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; NP 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

cpu-dense-f64-v1 / none / prepared / fused=False

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0523 [0.0521–0.0539]

0.0529 [0.0500–0.0586]

1.0117 [0.9280–1.1419]

inconclusive

NP 0.2120 [0.1886–0.2433]; T 0.3315 [0.2734–0.3710]

NP 0.2497; T 0.1597

A 49/51; B 49/51; NP 49/51; T 49/51

A 2.0794e-06 / 2.7376e-06; B 2.0794e-06 / 2.7376e-06; NP 2.0466e-06 / 2.7376e-06; T 2.4465e-06 / 2.7376e-06

dense-256/native

1.2713 [1.2659–1.2832]

1.3672 [1.2818–1.4448]

1.0755 [0.9878–1.1490]

inconclusive

NP 0.5842 [0.5578–0.6114]; T 0.6851 [0.6248–0.8650]

NP 2.3402; T 1.9957

A 67/70; B 67/70; NP 67/70; T 67/70

A 6.0140e-06 / 6.3423e-06; B 6.0140e-06 / 6.3423e-06; NP 5.6473e-06 / 6.3423e-06; T 5.7260e-06 / 6.3423e-06

dense-1024/native

26.0288 [25.8835–26.2499]

25.9516 [25.9209–25.9516]

0.9970 [0.9812–1.0110]

within 5%

NP 7.6209 [7.5662–7.6705]; T 7.8271 [7.7915–7.9288]

NP 3.4053; T 3.3156

A 70/73; B 70/73; NP 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; NP 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/native

131.1314 [130.4426–131.3950]

130.7779 [128.4803–131.7893]

0.9973 [0.9725–1.0248]

within 5%

NP 52.5557 [51.1531–53.4887]; T 55.9766 [54.2695–56.3214]

NP 2.4884; T 2.3363

A 70/73; B 70/73; NP 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; NP 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cpu-dense-f64-v1 / none / api / fused=False

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0614 [0.0601–0.0676]

0.0592 [0.0579–0.0607]

0.9646 [0.8383–1.0233]

within 5%

NP 0.1918 [0.1871–0.1945]; T 0.2835 [0.2825–0.2873]

NP 0.3088; T 0.2089

A 49/51; B 49/51; NP 49/51; T 49/51

A 2.0794e-06 / 2.7376e-06; B 2.0794e-06 / 2.7376e-06; NP 2.0466e-06 / 2.7376e-06; T 2.4465e-06 / 2.7376e-06

dense-256/native

1.3529 [1.3342–1.3819]

1.3370 [1.2976–1.3724]

0.9883 [0.9393–1.0302]

within 5%

NP 0.5587 [0.5294–0.5744]; T 0.6819 [0.6550–0.6937]

NP 2.3932; T 1.9608

A 67/70; B 67/70; NP 67/70; T 67/70

A 6.0140e-06 / 6.3423e-06; B 6.0140e-06 / 6.3423e-06; NP 5.6473e-06 / 6.3423e-06; T 5.7260e-06 / 6.3423e-06

dense-1024/native

26.8475 [26.8186–27.6731]

27.4127 [27.2627–27.5514]

1.0211 [0.9835–1.0297]

within 5%

NP 7.4051 [7.4018–7.4080]; T 7.8390 [7.8390–7.8393]

NP 3.7019; T 3.4969

A 70/73; B 70/73; NP 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; NP 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/native

125.1625 [122.6889–125.7705]

126.9796 [126.9047–126.9926]

1.0145 [1.0072–1.0402]

within 5%

NP 51.4261 [50.7474–51.7814]; T 53.5212 [53.3084–53.7101]

NP 2.4692; T 2.3725

A 70/73; B 70/73; NP 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; NP 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cpu-dense-f64-v1 / jacobi / prepared / fused=False

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0098 [0.0098–0.0098]

0.0099 [0.0098–0.0099]

1.0115 [0.9855–1.0313]

within 5%

NP 0.0279 [0.0277–0.0285]; T 0.0474 [0.0466–0.0477]

NP 0.3545; T 0.2085

A 5/7; B 5/7; NP 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; NP 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/native

0.1216 [0.1211–0.1219]

0.1240 [0.1223–0.1255]

1.0201 [0.9937–1.0423]

within 5%

NP 0.0552 [0.0484–0.0602]; T 0.0682 [0.0673–0.0700]

NP 2.2457; T 1.8173

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; NP 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/native

2.2542 [2.2498–2.2548]

2.2796 [2.2610–2.2991]

1.0113 [0.9931–1.0296]

within 5%

NP 0.7699 [0.7661–0.7722]; T 0.8294 [0.8029–0.8677]

NP 2.9609; T 2.7485

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; NP 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/native

8.9808 [8.9480–8.9956]

8.8821 [8.8142–8.8886]

0.9890 [0.9685–1.0025]

within 5%

NP 3.6816 [3.6122–3.8224]; T 4.0778 [4.0641–4.0778]

NP 2.4126; T 2.1782

A 3/5; B 3/5; NP 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; NP 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

cpu-dense-f64-v1 / jacobi / api / fused=False

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/native

0.0158 [0.0155–0.0160]

0.0155 [0.0154–0.0158]

0.9790 [0.9483–1.0499]

within 5%

NP 0.0373 [0.0371–0.0380]; T 0.0626 [0.0622–0.0649]

NP 0.4148; T 0.2474

A 5/7; B 5/7; NP 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; NP 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/native

0.1266 [0.1237–0.1283]

0.1320 [0.1292–0.1356]

1.0426 [1.0018–1.0983]

inconclusive

NP 0.0595 [0.0573–0.0615]; T 0.0924 [0.0893–0.0983]

NP 2.2186; T 1.4291

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; NP 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/native

2.2226 [2.2035–2.2341]

2.2544 [2.2511–2.2756]

1.0143 [0.9996–1.0378]

within 5%

NP 0.6460 [0.6460–0.6464]; T 0.7403 [0.7288–0.7461]

NP 3.4901; T 3.0452

A 4/6; B 4/6; NP 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; NP 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/native

8.7548 [8.7357–8.7727]

8.7740 [8.6412–8.8208]

1.0022 [0.9810–1.0161]

within 5%

NP 3.6800 [3.6720–3.6857]; T 3.9554 [3.9411–3.9714]

NP 2.3843; T 2.2183

A 3/5; B 3/5; NP 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; NP 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

Every framework control; the same frozen reference code ran on both sides

configuration

case/reference

A ms [range]

B ms [range]

B/A [95% interval]

strict verdict

iterations/matvecs

cpu-release-cpu-dense-f64-v1-none-prepared

dense-64/numpy-out

0.1858 [0.1845–0.1891]

0.2330 [0.2062–0.2851]

1.2540 [1.0896–1.5627]

regression

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-prepared

dense-64/torch-eager-out

0.2924 [0.2840–0.2996]

0.3292 [0.3158–0.4549]

1.1262 [1.0445–1.6166]

inconclusive

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-prepared

dense-256/numpy-out

0.5251 [0.4847–0.5621]

0.6806 [0.6120–0.7937]

1.2961 [1.0863–1.6499]

regression

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-prepared

dense-256/torch-eager-out

0.6286 [0.6125–0.6319]

0.7511 [0.6679–1.0028]

1.1949 [1.0414–1.6614]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-prepared

dense-1024/numpy-out

7.5507 [7.2795–7.8390]

7.8980 [7.5478–8.6324]

1.0460 [0.9600–1.2164]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared

dense-1024/torch-eager-out

7.8831 [7.8147–7.9698]

8.2500 [7.7859–8.9990]

1.0465 [0.9716–1.1736]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared

dense-2048/numpy-out

52.3570 [50.4166–52.7483]

49.6681 [49.5943–50.2464]

0.9486 [0.9231–1.0095]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared

dense-2048/torch-eager-out

56.0756 [55.8504–56.2239]

53.4744 [52.0416–54.2202]

0.9536 [0.9169–1.0031]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api

dense-64/numpy-out

0.1955 [0.1929–0.2004]

0.1854 [0.1785–0.1901]

0.9482 [0.8889–0.9890]

within 5%

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-api

dense-64/torch-eager-out

0.2892 [0.2816–0.2989]

0.2808 [0.2663–0.2865]

0.9708 [0.8895–1.0381]

within 5%

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-api

dense-256/numpy-out

0.5567 [0.5333–0.5735]

0.5563 [0.4991–0.5952]

0.9992 [0.8677–1.1211]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-api

dense-256/torch-eager-out

0.6996 [0.6780–0.7186]

0.6843 [0.6264–0.7230]

0.9781 [0.8687–1.0837]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-api

dense-1024/numpy-out

7.1943 [7.1540–7.2721]

7.2938 [7.2771–8.7181]

1.0138 [0.9904–1.2731]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api

dense-1024/torch-eager-out

7.6504 [7.5834–7.7050]

7.6804 [7.6481–9.8028]

1.0039 [0.9845–1.3318]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api

dense-2048/numpy-out

51.7156 [51.3171–51.9428]

50.3512 [48.4694–52.9775]

0.9736 [0.9299–1.0437]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api

dense-2048/torch-eager-out

53.6676 [53.4139–53.9260]

53.2306 [51.1151–54.8778]

0.9919 [0.9465–1.0674]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-64/numpy-out

0.0285 [0.0264–0.0300]

0.0294 [0.0287–0.0296]

1.0334 [0.9466–1.1451]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-64/torch-eager-out

0.0468 [0.0437–0.0487]

0.0493 [0.0470–0.0511]

1.0552 [0.9381–1.1707]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-256/numpy-out

0.0511 [0.0480–0.0528]

0.0535 [0.0488–0.0571]

1.0473 [0.9112–1.1947]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-256/torch-eager-out

0.0668 [0.0617–0.0689]

0.0659 [0.0643–0.0686]

0.9856 [0.9157–1.1159]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-1024/numpy-out

0.7393 [0.6922–0.8058]

0.8020 [0.7506–0.8686]

1.0848 [0.9191–1.2635]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-1024/torch-eager-out

0.7680 [0.7261–0.8508]

0.8739 [0.8043–0.9292]

1.1379 [0.9424–1.3114]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-2048/numpy-out

3.5914 [3.4855–3.8181]

3.9625 [3.8590–3.9980]

1.1033 [1.0014–1.1602]

inconclusive

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-prepared

dense-2048/torch-eager-out

3.9794 [3.7588–4.1661]

4.2547 [4.1849–4.2712]

1.0692 [0.9934–1.1501]

inconclusive

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-64/numpy-out

0.0357 [0.0356–0.0363]

0.0410 [0.0366–0.0581]

1.1466 [1.0042–1.6913]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-64/torch-eager-out

0.0611 [0.0605–0.0616]

0.0699 [0.0624–0.1018]

1.1442 [0.9908–1.8452]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-256/numpy-out

0.0549 [0.0544–0.0563]

0.0852 [0.0704–0.0951]

1.5540 [1.2134–1.7554]

regression

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-256/torch-eager-out

0.0859 [0.0844–0.0869]

0.1178 [0.1048–0.1563]

1.3712 [1.1410–1.8715]

regression

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-1024/numpy-out

0.6052 [0.5960–0.6116]

0.6801 [0.6074–0.9054]

1.1239 [0.9897–1.5430]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-1024/torch-eager-out

0.6773 [0.6746–0.6797]

0.7864 [0.6976–0.9942]

1.1612 [1.0060–1.5358]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-2048/numpy-out

3.5018 [3.4081–3.5256]

3.5361 [3.4721–3.8382]

1.0098 [0.9787–1.2037]

inconclusive

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-api

dense-2048/torch-eager-out

3.7106 [3.6821–3.7187]

3.9190 [3.8155–4.3792]

1.0562 [1.0065–1.2090]

inconclusive

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-64/numpy-out

0.1861 [0.1847–0.1922]

0.2120 [0.1886–0.2433]

1.1394 [0.9561–1.3565]

inconclusive

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-64/torch-eager-out

0.2920 [0.2861–0.3057]

0.3315 [0.2734–0.3710]

1.1354 [0.8859–1.3120]

inconclusive

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-256/numpy-out

0.5366 [0.4953–0.5775]

0.5842 [0.5578–0.6114]

1.0887 [0.9562–1.2481]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-256/torch-eager-out

0.6422 [0.6122–0.6695]

0.6851 [0.6248–0.8650]

1.0668 [0.9298–1.4144]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-1024/numpy-out

7.4866 [7.4475–7.5273]

7.6209 [7.5662–7.6705]

1.0179 [0.9880–1.0542]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-1024/torch-eager-out

7.7954 [7.5805–7.8963]

7.8271 [7.7915–7.9288]

1.0041 [0.9660–1.0523]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-2048/numpy-out

51.5171 [51.3825–51.5779]

52.5557 [51.1531–53.4887]

1.0202 [0.9775–1.0618]

inconclusive

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-prepared-unfused

dense-2048/torch-eager-out

57.0952 [55.7363–57.6858]

55.9766 [54.2695–56.3214]

0.9804 [0.9379–1.0145]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-64/numpy-out

0.2061 [0.1946–0.2218]

0.1918 [0.1871–0.1945]

0.9303 [0.8384–1.0014]

within 5%

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-64/torch-eager-out

0.3003 [0.2941–0.3200]

0.2835 [0.2825–0.2873]

0.9441 [0.8650–0.9943]

within 5%

A 49/51; B 49/51

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-256/numpy-out

0.5579 [0.5001–0.6207]

0.5587 [0.5294–0.5744]

1.0014 [0.8527–1.1504]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-256/torch-eager-out

0.7464 [0.6431–0.7986]

0.6819 [0.6550–0.6937]

0.9135 [0.8172–1.0818]

inconclusive

A 67/70; B 67/70

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-1024/numpy-out

7.2624 [7.2247–7.3775]

7.4051 [7.4018–7.4080]

1.0196 [0.9939–1.0361]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-1024/torch-eager-out

7.7998 [7.6823–7.9530]

7.8390 [7.8390–7.8393]

1.0050 [0.9742–1.0341]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-2048/numpy-out

50.9226 [50.3658–51.0929]

51.4261 [50.7474–51.7814]

1.0099 [0.9907–1.0399]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-none-api-unfused

dense-2048/torch-eager-out

53.1453 [51.7448–53.3468]

53.5212 [53.3084–53.7101]

1.0071 [0.9924–1.0444]

within 5%

A 70/73; B 70/73

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-64/numpy-out

0.0282 [0.0282–0.0283]

0.0279 [0.0277–0.0285]

0.9883 [0.9571–1.0230]

within 5%

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-64/torch-eager-out

0.0459 [0.0454–0.0460]

0.0474 [0.0466–0.0477]

1.0341 [0.9790–1.0655]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-256/numpy-out

0.0519 [0.0477–0.0553]

0.0552 [0.0484–0.0602]

1.0640 [0.8731–1.2829]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-256/torch-eager-out

0.0689 [0.0689–0.0690]

0.0682 [0.0673–0.0700]

0.9903 [0.9356–1.0613]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-1024/numpy-out

0.7843 [0.7469–0.8141]

0.7699 [0.7661–0.7722]

0.9816 [0.8789–1.1027]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-1024/torch-eager-out

0.8310 [0.7997–0.8482]

0.8294 [0.8029–0.8677]

0.9980 [0.8924–1.1396]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-2048/numpy-out

3.7663 [3.7032–3.7864]

3.6816 [3.6122–3.8224]

0.9775 [0.9378–1.0448]

within 5%

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused

dense-2048/torch-eager-out

4.1117 [3.9839–4.2209]

4.0778 [4.0641–4.0778]

0.9917 [0.9431–1.0487]

within 5%

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-64/numpy-out

0.0370 [0.0367–0.0377]

0.0373 [0.0371–0.0380]

1.0090 [0.9724–1.0503]

inconclusive

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-64/torch-eager-out

0.0660 [0.0651–0.0675]

0.0626 [0.0622–0.0649]

0.9489 [0.9016–1.0121]

within 5%

A 5/7; B 5/7

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-256/numpy-out

0.0607 [0.0573–0.0637]

0.0595 [0.0573–0.0615]

0.9798 [0.8921–1.0982]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-256/torch-eager-out

0.0940 [0.0914–0.0959]

0.0924 [0.0893–0.0983]

0.9831 [0.9222–1.0930]

inconclusive

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-1024/numpy-out

0.6415 [0.6379–0.6452]

0.6460 [0.6460–0.6464]

1.0070 [0.9679–1.0359]

within 5%

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-1024/torch-eager-out

0.7250 [0.7212–0.7291]

0.7403 [0.7288–0.7461]

1.0212 [0.9772–1.0479]

within 5%

A 4/6; B 4/6

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-2048/numpy-out

3.6499 [3.6462–3.6499]

3.6800 [3.6720–3.6857]

1.0082 [0.9828–1.0368]

within 5%

A 3/5; B 3/5

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused

dense-2048/torch-eager-out

3.9163 [3.9059–3.9165]

3.9554 [3.9411–3.9714]

1.0100 [0.9758–1.0304]

within 5%

A 3/5; B 3/5

CUDA API resource-construction implementation, host engine

The saved whole-batch verdict is regression. Native and framework-control rows below retain the original complete configuration comparisons; a reference regression is not silently removed from the gate. Unchanged framework code also exhibits latency variation, limiting the attribution of every measured difference to the native source edit.

Saved strict verdict counts, including unchanged framework controls

candidate

within 5%

inconclusive

regression

comparison failed

cuda-cublas

8

7

1

0

cuda-native

12

19

1

0

torch-cuda-eager

13

18

1

0

cuda-dense-f64-v1 / none / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/cuda-native

5.3275 [5.1936–5.4056]

5.7956 [5.7262–5.8537]

1.0879 [1.0512–1.1414]

regression

T 12.4804 [12.3923–12.5702]

T 0.4644

A 49/51; B 49/51; T 49/51

A 2.0447e-06 / 2.7376e-06; B 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

dense-64/cuda-cublas

5.3793 [5.3335–5.3955]

6.0801 [6.0552–6.1037]

1.1303 [1.0899–1.1741]

regression

T 12.4804 [12.3923–12.5702]

T 0.4872

A 49/51; B 49/51; T 49/51

A 2.2061e-06 / 2.7376e-06; B 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

dense-256/cuda-native

7.9117 [7.7021–8.0989]

7.7398 [7.7281–7.7404]

0.9783 [0.9451–1.0178]

within 5%

T 15.0042 [14.6427–15.4140]

T 0.5158

A 67/70; B 67/70; T 67/70

A 5.9926e-06 / 6.3423e-06; B 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

dense-256/cuda-cublas

7.7622 [7.4573–8.1062]

7.6929 [7.6239–7.7223]

0.9911 [0.9351–1.0528]

inconclusive

T 15.0042 [14.6427–15.4140]

T 0.5127

A 67/70; B 67/70; T 67/70

A 5.9162e-06 / 6.3423e-06; B 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

dense-1024/cuda-native

10.6424 [10.4657–11.0369]

11.0780 [10.9751–11.1758]

1.0409 [0.9870–1.0692]

inconclusive

T 15.4751 [15.3184–15.6047]

T 0.7159

A 70/73; B 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-1024/cuda-cublas

9.4492 [9.1342–9.6438]

9.6212 [9.4733–9.6474]

1.0182 [0.9696–1.0639]

inconclusive

T 15.4751 [15.3184–15.6047]

T 0.6217

A 70/73; B 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/cuda-native

16.7144 [16.6822–16.8339]

16.7913 [16.7107–17.0599]

1.0046 [0.9881–1.0284]

within 5%

T 21.0314 [20.9972–21.0487]

T 0.7984

A 70/73; B 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

dense-2048/cuda-cublas

15.4516 [15.2487–15.5483]

15.3438 [15.3162–15.3498]

0.9930 [0.9770–1.0123]

within 5%

T 21.0314 [20.9972–21.0487]

T 0.7296

A 70/73; B 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cuda-dense-f64-v1 / none / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/cuda-native

5.3352 [5.2971–5.3993]

5.3478 [5.3455–5.3519]

1.0024 [0.9674–1.0417]

within 5%

T 10.9165 [10.8496–10.9750]

T 0.4899

A 49/51; B 49/51; T 49/51

A 2.0447e-06 / 2.7376e-06; B 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

dense-64/cuda-cublas

7.1183 [7.0932–7.1705]

7.2511 [7.2256–7.2543]

1.0187 [0.9873–1.0395]

within 5%

T 10.9165 [10.8496–10.9750]

T 0.6642

A 49/51; B 49/51; T 49/51

A 2.2061e-06 / 2.7376e-06; B 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

dense-256/cuda-native

7.6616 [7.6196–7.7171]

7.7582 [7.6545–7.9039]

1.0126 [0.9818–1.0469]

within 5%

T 14.7493 [14.7050–14.8789]

T 0.5260

A 67/70; B 67/70; T 67/70

A 5.9926e-06 / 6.3423e-06; B 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

dense-256/cuda-cublas

9.1317 [9.1174–9.3037]

9.3471 [9.2487–9.4867]

1.0236 [0.9816–1.0459]

within 5%

T 14.7493 [14.7050–14.8789]

T 0.6337

A 67/70; B 67/70; T 67/70

A 5.9162e-06 / 6.3423e-06; B 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

dense-1024/cuda-native

10.2409 [10.2023–10.2701]

10.7192 [10.4481–10.9875]

1.0467 [1.0013–1.0955]

inconclusive

T 15.1441 [15.0693–15.3272]

T 0.7078

A 70/73; B 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-1024/cuda-cublas

10.5783 [10.4771–10.6568]

10.9441 [10.7203–11.1712]

1.0346 [0.9921–1.0903]

inconclusive

T 15.1441 [15.0693–15.3272]

T 0.7227

A 70/73; B 70/73; T 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

dense-2048/cuda-native

16.7747 [16.7585–16.7800]

16.6802 [16.5460–17.0059]

0.9944 [0.9829–1.0338]

within 5%

T 20.9983 [20.9125–21.3523]

T 0.7944

A 70/73; B 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

dense-2048/cuda-cublas

16.7813 [16.7784–16.7880]

17.0279 [16.8211–17.4700]

1.0147 [0.9942–1.0462]

within 5%

T 20.9983 [20.9125–21.3523]

T 0.8109

A 70/73; B 70/73; T 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

cuda-dense-f64-v1 / jacobi / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/cuda-native

0.8190 [0.8096–0.8355]

0.8557 [0.8474–0.8722]

1.0448 [1.0000–1.1522]

inconclusive

T 1.7211 [1.7079–1.7741]

T 0.4972

A 5/7; B 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-64/cuda-cublas

0.8895 [0.8667–0.9120]

0.8925 [0.8895–0.9143]

1.0034 [0.9496–1.0768]

inconclusive

T 1.7211 [1.7079–1.7741]

T 0.5186

A 5/7; B 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/cuda-native

0.8125 [0.8097–0.8167]

0.8197 [0.8122–0.8234]

1.0088 [0.9659–1.0733]

inconclusive

T 1.4179 [1.3977–1.5071]

T 0.5781

A 4/6; B 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-256/cuda-cublas

0.8164 [0.8008–0.8265]

0.8073 [0.7973–0.8184]

0.9888 [0.9503–1.1157]

inconclusive

T 1.4179 [1.3977–1.5071]

T 0.5694

A 4/6; B 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/cuda-native

1.1283 [1.1108–1.1473]

1.1406 [1.1353–1.1914]

1.0108 [0.9755–1.0941]

inconclusive

T 1.5313 [1.5075–1.5484]

T 0.7448

A 4/6; B 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-1024/cuda-cublas

0.9836 [0.9807–1.0149]

1.0275 [1.0100–1.0352]

1.0446 [0.9846–1.0654]

inconclusive

T 1.5313 [1.5075–1.5484]

T 0.6710

A 4/6; B 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/cuda-native

1.3894 [1.3596–1.4233]

1.4530 [1.4509–1.4575]

1.0458 [0.9925–1.1146]

inconclusive

T 1.7261 [1.7072–1.8181]

T 0.8418

A 3/5; B 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

dense-2048/cuda-cublas

1.2260 [1.2238–1.2314]

1.2829 [1.2799–1.2829]

1.0464 [0.9704–1.0960]

inconclusive

T 1.7261 [1.7072–1.8181]

T 0.7432

A 3/5; B 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

cuda-dense-f64-v1 / jacobi / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

dense-64/cuda-native

1.0078 [0.9073–1.0389]

0.9241 [0.8984–0.9651]

0.9170 [0.8610–1.0657]

inconclusive

T 2.0047 [1.9835–2.0382]

T 0.4610

A 5/7; B 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-64/cuda-cublas

2.5151 [2.3432–2.6572]

2.3204 [2.3074–2.3657]

0.9226 [0.8536–1.0174]

within 5%

T 2.0047 [1.9835–2.0382]

T 1.1575

A 5/7; B 5/7; T 5/7

A 1.1410e-07 / 2.7376e-06; B 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

dense-256/cuda-native

0.9134 [0.9063–0.9242]

0.8963 [0.8907–0.8998]

0.9813 [0.9466–1.0114]

within 5%

T 1.7955 [1.7784–1.8018]

T 0.4992

A 4/6; B 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-256/cuda-cublas

2.5174 [2.5102–2.5415]

2.5351 [2.5176–2.5537]

1.0070 [0.9753–1.0254]

within 5%

T 1.7955 [1.7784–1.8018]

T 1.4119

A 4/6; B 4/6; T 4/6

A 1.0990e-06 / 6.3423e-06; B 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

dense-1024/cuda-native

1.2074 [1.1955–1.2159]

1.1723 [1.1635–1.1793]

0.9709 [0.9455–0.9977]

within 5%

T 1.8600 [1.8360–1.8600]

T 0.6303

A 4/6; B 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-1024/cuda-cublas

2.7412 [2.7055–2.7537]

2.6450 [2.6411–2.6450]

0.9649 [0.9482–0.9910]

within 5%

T 1.8600 [1.8360–1.8600]

T 1.4220

A 4/6; B 4/6; T 4/6

A 1.7223e-07 / 1.0791e-05; B 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

dense-2048/cuda-native

1.4541 [1.4480–1.4553]

1.4320 [1.3806–1.4356]

0.9848 [0.9254–1.0254]

within 5%

T 1.9232 [1.9163–1.9326]

T 0.7446

A 3/5; B 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

dense-2048/cuda-cublas

2.7856 [2.7771–2.7882]

2.7171 [2.6537–2.7271]

0.9754 [0.9338–1.0158]

within 5%

T 1.9232 [1.9163–1.9326]

T 1.4128

A 3/5; B 3/5; T 3/5

A 1.2450e-05 / 1.4741e-05; B 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

cuda-csr-f64-v1 / none / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

poisson-8/cuda-native

2.8771 [2.4971–2.9184]

2.9883 [2.8309–3.3613]

1.0386 [0.9623–1.3497]

inconclusive

T 5.4799 [4.9214–6.9493]

T 0.5453

A 26/28; B 26/28; T 26/28

A 2.0123e-07 / 3.0549e-07; B 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

poisson-32/cuda-native

14.8408 [14.6708–14.8969]

13.9285 [13.6360–14.0982]

0.9385 [0.9000–0.9996]

within 5%

T 26.2652 [25.4634–27.6783]

T 0.5303

A 129/133; B 129/133; T 129/133

A 1.3276e-06 / 1.3672e-06; B 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

poisson-64/cuda-native

32.6278 [32.2141–33.7764]

33.1393 [31.7969–35.8600]

1.0157 [0.9176–1.1226]

inconclusive

T 64.8660 [58.8068–70.9232]

T 0.5109

A 290/297; B 290/297; T 290/297

A 2.7729e-06 / 2.8101e-06; B 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

poisson-128/cuda-native

43.3739 [43.0946–44.9791]

47.3986 [46.7024–48.0620]

1.0928 [1.0146–1.1447]

inconclusive

T 85.7055 [83.1203–87.6735]

T 0.5530

A 395/404; B 395/404; T 395/404

A 5.6614e-06 / 5.7493e-06; B 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

cuda-csr-f64-v1 / none / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

poisson-8/cuda-native

2.8504 [2.8443–2.9244]

2.9993 [2.8715–3.0659]

1.0522 [0.9591–1.1298]

inconclusive

T 5.4003 [5.2988–5.4561]

T 0.5554

A 26/28; B 26/28; T 26/28

A 2.0123e-07 / 3.0549e-07; B 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

poisson-32/cuda-native

14.0509 [13.1247–14.8000]

14.6823 [14.5144–14.8924]

1.0449 [0.9578–1.1367]

inconclusive

T 27.0275 [26.5483–27.4447]

T 0.5432

A 129/133; B 129/133; T 129/133

A 1.3276e-06 / 1.3672e-06; B 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

poisson-64/cuda-native

29.7124 [29.6069–29.7899]

31.9598 [31.8916–32.3745]

1.0756 [1.0494–1.1112]

inconclusive

T 58.5403 [57.3512–59.8139]

T 0.5459

A 290/297; B 290/297; T 290/297

A 2.7729e-06 / 2.8101e-06; B 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

poisson-128/cuda-native

48.0683 [47.3417–48.1772]

47.3022 [47.2951–47.3206]

0.9841 [0.9581–1.0518]

inconclusive

T 85.0552 [83.4058–86.8914]

T 0.5561

A 395/404; B 395/404; T 395/404

A 5.6614e-06 / 5.7493e-06; B 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

cuda-csr-f64-v1 / jacobi / prepared / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

poisson-8/cuda-native

4.1691 [4.1194–4.2762]

4.0288 [3.9862–4.0708]

0.9663 [0.9139–1.0016]

within 5%

T 7.3065 [7.1296–7.4173]

T 0.5514

A 26/28; B 26/28; T 26/28

A 2.0123e-07 / 3.0549e-07; B 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

poisson-32/cuda-native

20.0321 [19.4902–20.1906]

20.1078 [19.8534–20.4937]

1.0038 [0.9782–1.0566]

inconclusive

T 36.4020 [36.1515–37.0770]

T 0.5524

A 129/133; B 129/133; T 129/133

A 1.3276e-06 / 1.3672e-06; B 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

poisson-64/cuda-native

45.0302 [44.3900–45.7719]

45.4883 [45.4549–45.9671]

1.0102 [0.9845–1.0401]

within 5%

T 82.9120 [82.4620–84.0477]

T 0.5486

A 290/297; B 290/297; T 290/297

A 2.7729e-06 / 2.8101e-06; B 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

poisson-128/cuda-native

72.4515 [69.9811–76.4699]

71.7564 [63.4136–74.0164]

0.9904 [0.8291–1.1079]

inconclusive

T 124.0750 [117.2633–131.5399]

T 0.5783

A 395/404; B 395/404; T 395/404

A 5.6614e-06 / 5.7493e-06; B 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

cuda-csr-f64-v1 / jacobi / api / fused=True

case/native

A ms [process range]

B ms [process range]

B/A [95% interval]

strict verdict

current references ms [range]

native/reference

iterations/matvecs

true R / threshold

poisson-8/cuda-native

4.2228 [4.0270–4.3574]

4.2807 [4.0719–4.3441]

1.0137 [0.9299–1.0814]

inconclusive

T 7.8629 [7.5721–7.9994]

T 0.5444

A 26/28; B 26/28; T 26/28

A 2.0123e-07 / 3.0549e-07; B 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

poisson-32/cuda-native

20.0684 [19.6605–20.2553]

20.2701 [19.7048–20.4399]

1.0101 [0.9692–1.0479]

within 5%

T 36.5274 [35.6266–37.7420]

T 0.5549

A 129/133; B 129/133; T 129/133

A 1.3276e-06 / 1.3672e-06; B 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

poisson-64/cuda-native

44.8170 [43.9330–45.7980]

46.7027 [46.6835–46.9227]

1.0421 [0.9999–1.0824]

inconclusive

T 81.6588 [80.7255–85.7150]

T 0.5719

A 290/297; B 290/297; T 290/297

A 2.7729e-06 / 2.8101e-06; B 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

poisson-128/cuda-native

69.8240 [67.3080–70.0023]

71.7507 [71.2823–74.1164]

1.0276 [0.9381–1.1100]

inconclusive

T 118.6615 [117.0465–119.9322]

T 0.6047

A 395/404; B 395/404; T 395/404

A 5.6614e-06 / 5.7493e-06; B 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

Every framework control; the same frozen reference code ran on both sides

configuration

case/reference

A ms [range]

B ms [range]

B/A [95% interval]

strict verdict

iterations/matvecs

cuda-release-cuda-dense-f64-v1-none-prepared

dense-64/torch-cuda-eager

11.0086 [10.8001–11.2528]

12.4804 [12.3923–12.5702]

1.1337 [1.0955–1.1701]

regression

A 49/51; B 49/51

cuda-release-cuda-dense-f64-v1-none-prepared

dense-256/torch-cuda-eager

16.0624 [15.4810–17.1373]

15.0042 [14.6427–15.4140]

0.9341 [0.8480–1.0104]

within 5%

A 67/70; B 67/70

cuda-release-cuda-dense-f64-v1-none-prepared

dense-1024/torch-cuda-eager

15.5206 [15.1884–15.7052]

15.4751 [15.3184–15.6047]

0.9971 [0.9734–1.0339]

within 5%

A 70/73; B 70/73

cuda-release-cuda-dense-f64-v1-none-prepared

dense-2048/torch-cuda-eager

21.5322 [21.3604–21.6613]

21.0314 [20.9972–21.0487]

0.9767 [0.9613–0.9942]

within 5%

A 70/73; B 70/73

cuda-release-cuda-dense-f64-v1-none-api

dense-64/torch-cuda-eager

10.9194 [10.8313–11.0087]

10.9165 [10.8496–10.9750]

0.9997 [0.9640–1.0351]

within 5%

A 49/51; B 49/51

cuda-release-cuda-dense-f64-v1-none-api

dense-256/torch-cuda-eager

14.5311 [14.3910–14.5628]

14.7493 [14.7050–14.8789]

1.0150 [0.9981–1.0480]

within 5%

A 67/70; B 67/70

cuda-release-cuda-dense-f64-v1-none-api

dense-1024/torch-cuda-eager

14.9559 [14.8353–15.2302]

15.1441 [15.0693–15.3272]

1.0126 [0.9833–1.0453]

within 5%

A 70/73; B 70/73

cuda-release-cuda-dense-f64-v1-none-api

dense-2048/torch-cuda-eager

21.2725 [21.1455–21.3197]

20.9983 [20.9125–21.3523]

0.9871 [0.9754–1.0197]

within 5%

A 70/73; B 70/73

cuda-release-cuda-dense-f64-v1-jacobi-prepared

dense-64/torch-cuda-eager

1.7082 [1.6965–1.7468]

1.7211 [1.7079–1.7741]

1.0076 [0.9526–1.0874]

inconclusive

A 5/7; B 5/7

cuda-release-cuda-dense-f64-v1-jacobi-prepared

dense-256/torch-cuda-eager

1.4823 [1.4733–1.4823]

1.4179 [1.3977–1.5071]

0.9566 [0.8869–1.0556]

inconclusive

A 4/6; B 4/6

cuda-release-cuda-dense-f64-v1-jacobi-prepared

dense-1024/torch-cuda-eager

1.4888 [1.4746–1.5515]

1.5313 [1.5075–1.5484]

1.0286 [0.9654–1.0710]

inconclusive

A 4/6; B 4/6

cuda-release-cuda-dense-f64-v1-jacobi-prepared

dense-2048/torch-cuda-eager

1.6506 [1.6460–1.6506]

1.7261 [1.7072–1.8181]

1.0457 [0.9968–1.1652]

inconclusive

A 3/5; B 3/5

cuda-release-cuda-dense-f64-v1-jacobi-api

dense-64/torch-cuda-eager

2.1761 [1.9517–2.3584]

2.0047 [1.9835–2.0382]

0.9212 [0.8269–1.0606]

inconclusive

A 5/7; B 5/7

cuda-release-cuda-dense-f64-v1-jacobi-api

dense-256/torch-cuda-eager

1.7515 [1.7515–1.7528]

1.7955 [1.7784–1.8018]

1.0252 [0.9811–1.0860]

inconclusive

A 4/6; B 4/6

cuda-release-cuda-dense-f64-v1-jacobi-api

dense-1024/torch-cuda-eager

1.8859 [1.8766–1.8911]

1.8600 [1.8360–1.8600]

0.9863 [0.9363–1.0293]

within 5%

A 4/6; B 4/6

cuda-release-cuda-dense-f64-v1-jacobi-api

dense-2048/torch-cuda-eager

1.9422 [1.9279–1.9806]

1.9232 [1.9163–1.9326]

0.9902 [0.9507–1.0263]

within 5%

A 3/5; B 3/5

cuda-release-cuda-csr-f64-v1-none-prepared

poisson-8/torch-cuda-eager

5.3986 [5.1529–5.4193]

5.4799 [4.9214–6.9493]

1.0151 [0.9017–1.3651]

inconclusive

A 26/28; B 26/28

cuda-release-cuda-csr-f64-v1-none-prepared

poisson-32/torch-cuda-eager

27.5076 [27.4445–28.1143]

26.2652 [25.4634–27.6783]

0.9548 [0.8850–1.0295]

within 5%

A 129/133; B 129/133

cuda-release-cuda-csr-f64-v1-none-prepared

poisson-64/torch-cuda-eager

62.5844 [59.8516–64.5181]

64.8660 [58.8068–70.9232]

1.0365 [0.9068–1.1974]

inconclusive

A 290/297; B 290/297

cuda-release-cuda-csr-f64-v1-none-prepared

poisson-128/torch-cuda-eager

79.0569 [78.8968–79.7457]

85.7055 [83.1203–87.6735]

1.0841 [1.0155–1.1229]

inconclusive

A 395/404; B 395/404

cuda-release-cuda-csr-f64-v1-none-api

poisson-8/torch-cuda-eager

5.0333 [4.9863–5.0818]

5.4003 [5.2988–5.4561]

1.0729 [0.9680–1.1112]

inconclusive

A 26/28; B 26/28

cuda-release-cuda-csr-f64-v1-none-api

poisson-32/torch-cuda-eager

26.2260 [24.7409–28.7561]

27.0275 [26.5483–27.4447]

1.0306 [0.9177–1.1182]

inconclusive

A 129/133; B 129/133

cuda-release-cuda-csr-f64-v1-none-api

poisson-64/torch-cuda-eager

56.1735 [55.7762–56.7253]

58.5403 [57.3512–59.8139]

1.0421 [1.0025–1.0784]

inconclusive

A 290/297; B 290/297

cuda-release-cuda-csr-f64-v1-none-api

poisson-128/torch-cuda-eager

83.9102 [83.4573–84.2329]

85.0552 [83.4058–86.8914]

1.0136 [0.9831–1.0736]

inconclusive

A 395/404; B 395/404

cuda-release-cuda-csr-f64-v1-jacobi-prepared

poisson-8/torch-cuda-eager

7.6977 [7.4586–7.9091]

7.3065 [7.1296–7.4173]

0.9492 [0.8912–1.0100]

within 5%

A 26/28; B 26/28

cuda-release-cuda-csr-f64-v1-jacobi-prepared

poisson-32/torch-cuda-eager

36.9251 [35.9981–37.8559]

36.4020 [36.1515–37.0770]

0.9858 [0.9470–1.0385]

within 5%

A 129/133; B 129/133

cuda-release-cuda-csr-f64-v1-jacobi-prepared

poisson-64/torch-cuda-eager

83.3677 [82.2066–85.6605]

82.9120 [82.4620–84.0477]

0.9945 [0.9518–1.0295]

within 5%

A 290/297; B 290/297

cuda-release-cuda-csr-f64-v1-jacobi-prepared

poisson-128/torch-cuda-eager

125.2048 [123.2266–130.3456]

124.0750 [117.2633–131.5399]

0.9910 [0.8901–1.0814]

inconclusive

A 395/404; B 395/404

cuda-release-cuda-csr-f64-v1-jacobi-api

poisson-8/torch-cuda-eager

7.7510 [7.7066–7.7510]

7.8629 [7.5721–7.9994]

1.0144 [0.9379–1.0795]

inconclusive

A 26/28; B 26/28

cuda-release-cuda-csr-f64-v1-jacobi-api

poisson-32/torch-cuda-eager

36.8730 [36.0119–37.4822]

36.5274 [35.6266–37.7420]

0.9906 [0.9490–1.0504]

inconclusive

A 129/133; B 129/133

cuda-release-cuda-csr-f64-v1-jacobi-api

poisson-64/torch-cuda-eager

80.7063 [78.7506–82.7359]

81.6588 [80.7255–85.7150]

1.0118 [0.9672–1.1398]

inconclusive

A 290/297; B 290/297

cuda-release-cuda-csr-f64-v1-jacobi-api

poisson-128/torch-cuda-eager

119.4077 [111.3101–126.2210]

118.6615 [117.0465–119.9322]

0.9938 [0.9191–1.0843]

inconclusive

A 395/404; B 395/404

Focused CUDA follow-up: all original and confirmation blocks

The original unpreconditioned prepared dense configuration retains both dense-64 native/cuBLAS regressions in its two-block reports above. After observing them, one additional eight-worker confirmation was preplanned: A-B-B-A-B-A-A-B, four new blocks per side, retaining all four cases and all three candidates (8 artifacts / 96 eligible candidate/case results). This is a focused follow-up, rather than a replacement or repeat-until-pass campaign. All original unfavorable observations remain included.

The standalone confirmation verdict is inconclusive; the pooled all-six-blocks-per-side verdict is inconclusive. Neither overwrites the original composite verdict or its case classifications. The table shows original, confirmation-only and pooled results for every candidate/case. Pooled medians use all 180 normalized rounds per side; the original two blocks plus all four confirmation blocks enter the unchanged strict comparator, with identical input/options/work counts. Campaign timing and two-stage sampling remain uncertainty limitations.

All 12 candidate/case comparisons; original losses remain visible

case/candidate

original 2-block B/A [95% CI]

original verdict

confirmation 4-block B/A [95% CI]

confirmation verdict

pooled A ms [6-process range]

pooled B ms [6-process range]

pooled 6-block B/A [95% CI]

pooled verdict

iterations/matvecs

true R / threshold

dense-64/cuda-native

1.0879 [1.0512–1.1414]

regression

1.0240 [0.9689–1.0753]

inconclusive

5.3003 [5.1936–5.7040]

5.6024 [5.1299–5.8537]

1.0570 [0.9930–1.0948]

inconclusive

A 49/51; B 49/51

A 2.0447e-06 / 2.7376e-06; B 2.0447e-06 / 2.7376e-06

dense-64/cuda-cublas

1.1303 [1.0899–1.1741]

regression

1.0206 [0.9755–1.0646]

inconclusive

5.4779 [5.2995–5.6101]

5.7447 [5.4108–6.1037]

1.0487 [1.0062–1.1112]

inconclusive

A 49/51; B 49/51

A 2.2061e-06 / 2.7376e-06; B 2.2061e-06 / 2.7376e-06

dense-64/torch-cuda-eager

1.1337 [1.0955–1.1701]

regression

1.0320 [0.9714–1.1050]

inconclusive

11.0559 [10.8001–11.7034]

11.9314 [10.9315–12.5702]

1.0792 [1.0012–1.1323]

inconclusive

A 49/51; B 49/51

A 2.2061e-06 / 2.7376e-06; B 2.2061e-06 / 2.7376e-06

dense-256/cuda-native

0.9783 [0.9451–1.0178]

within 5%

1.0346 [1.0061–1.1177]

inconclusive

7.5779 [7.3068–8.0989]

7.7069 [7.5642–8.7228]

1.0170 [0.9833–1.0555]

inconclusive

A 67/70; B 67/70

A 5.9926e-06 / 6.3423e-06; B 5.9926e-06 / 6.3423e-06

dense-256/cuda-cublas

0.9911 [0.9351–1.0528]

inconclusive

1.0288 [0.9839–1.1037]

inconclusive

7.5201 [7.1716–8.1062]

7.6596 [7.3449–8.5463]

1.0186 [0.9732–1.0657]

inconclusive

A 67/70; B 67/70

A 5.9162e-06 / 6.3423e-06; B 5.9162e-06 / 6.3423e-06

dense-256/torch-cuda-eager

0.9341 [0.8480–1.0104]

within 5%

1.0274 [0.9501–1.1278]

inconclusive

15.2091 [13.9744–17.1373]

15.1653 [14.1651–17.4122]

0.9971 [0.9391–1.0732]

inconclusive

A 67/70; B 67/70

A 5.6508e-06 / 6.3423e-06; B 5.6508e-06 / 6.3423e-06

dense-1024/cuda-native

1.0409 [0.9870–1.0692]

inconclusive

1.0409 [0.9869–1.1530]

inconclusive

10.7539 [10.4657–11.0708]

11.1477 [10.4355–12.7332]

1.0366 [1.0007–1.1072]

inconclusive

A 70/73; B 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05

dense-1024/cuda-cublas

1.0182 [0.9696–1.0639]

inconclusive

1.0465 [0.9651–1.1967]

inconclusive

9.4229 [9.0668–10.0328]

9.7438 [9.1499–11.5553]

1.0341 [0.9790–1.1154]

inconclusive

A 70/73; B 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05

dense-1024/torch-cuda-eager

0.9971 [0.9734–1.0339]

within 5%

1.0124 [0.9744–1.1043]

inconclusive

15.3863 [14.9303–15.7701]

15.5126 [15.1028–17.4171]

1.0082 [0.9803–1.0542]

inconclusive

A 70/73; B 70/73

A 9.5050e-06 / 1.0791e-05; B 9.5050e-06 / 1.0791e-05

dense-2048/cuda-native

1.0046 [0.9881–1.0284]

within 5%

1.0431 [1.0169–1.0664]

inconclusive

16.4680 [16.2543–16.8339]

16.9772 [16.6495–17.5506]

1.0309 [1.0081–1.0512]

inconclusive

A 70/73; B 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05

dense-2048/cuda-cublas

0.9930 [0.9770–1.0123]

within 5%

1.0525 [1.0154–1.0828]

inconclusive

15.2024 [14.9340–15.5483]

15.5924 [15.3162–16.4585]

1.0257 [1.0029–1.0657]

inconclusive

A 70/73; B 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05

dense-2048/torch-cuda-eager

0.9767 [0.9613–0.9942]

within 5%

1.0592 [1.0197–1.0918]

inconclusive

21.1298 [20.8585–21.6613]

21.6999 [20.9972–22.8744]

1.0270 [0.9954–1.0732]

inconclusive

A 70/73; B 70/73

A 1.3229e-05 / 1.4741e-05; B 1.3229e-05 / 1.4741e-05

Confirmation manifest SHA256: af329cb54bc05643ef63637fe3791c10e19aaba9bfa95c3eee8eaa053fb4af21; pooled report build/performance-optimization/cuda-api-confirmation/pooled-report.json, SHA256 95dc150cf5bf91a4053b33961c69333580352973cb3a57f426c4e47587bd324e. The eight extra artifacts are included in the raw inventory below.

Explicit CUDA host/device execution modes

All 136 native case/mode rows are retained, including the existing scaled/neutral sparse fixtures. There are 0 native paired rows with different observed operation counts across modes. Host/device specifications differ, so none of these ratios is a strict A/B pass, confidence interval or pure-kernel claim, even where counts happen to match. Torch executes the same reference engine in both requested modes; the selector applies only to native CUDA, as recorded in each artifact.

cuda-dense-f64-v1 / none / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

5.2297 [5.0615–5.3979]

T 10.1879 [9.7269–10.6489]

T 0.5133

N 49/51; T 49/51

N 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.8863

host 49/51; device 49/51

dense-64/cuda-cublas

5.1888 [5.0283–5.3493]

T 10.1879 [9.7269–10.6489]

T 0.5093

N 49/51; T 49/51

N 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.9546

host 49/51; device 49/51

dense-256/cuda-native

7.7520 [7.6805–7.8234]

T 15.9045 [15.8090–15.9999]

T 0.4874

N 67/70; T 67/70

N 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.8331

host 67/70; device 67/70

dense-256/cuda-cublas

7.5921 [7.5704–7.6137]

T 15.9045 [15.8090–15.9999]

T 0.4774

N 67/70; T 67/70

N 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.9232

host 67/70; device 67/70

dense-1024/cuda-native

10.6174 [10.1428–11.0920]

T 15.0459 [14.7692–15.3226]

T 0.7057

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7808

host 70/73; device 70/73

dense-1024/cuda-cublas

9.3404 [9.1032–9.5776]

T 15.0459 [14.7692–15.3226]

T 0.6208

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.8021

host 70/73; device 70/73

dense-2048/cuda-native

17.8663 [17.6517–18.0809]

T 23.0976 [22.2838–23.9115]

T 0.7735

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8183

host 70/73; device 70/73

dense-2048/cuda-cublas

16.3790 [16.2211–16.5369]

T 23.0976 [22.2838–23.9115]

T 0.7091

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8169

host 70/73; device 70/73

cuda-dense-f64-v1 / none / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

4.6351 [4.0153–5.2548]

T 11.1370 [9.8507–12.4232]

T 0.4162

N 49/51; T 49/51

N 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.8863

host 49/51; device 49/51

dense-64/cuda-cublas

4.9534 [4.3227–5.5841]

T 11.1370 [9.8507–12.4232]

T 0.4448

N 49/51; T 49/51

N 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.9546

host 49/51; device 49/51

dense-256/cuda-native

6.4582 [5.6299–7.2865]

T 14.5579 [13.1988–15.9170]

T 0.4436

N 67/70; T 67/70

N 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.8331

host 67/70; device 67/70

dense-256/cuda-cublas

7.0090 [6.0920–7.9260]

T 14.5579 [13.1988–15.9170]

T 0.4815

N 67/70; T 67/70

N 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.9232

host 67/70; device 67/70

dense-1024/cuda-native

8.2899 [7.5810–8.9988]

T 15.8638 [13.8545–17.8730]

T 0.5226

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7808

host 70/73; device 70/73

dense-1024/cuda-cublas

7.4923 [6.7982–8.1864]

T 15.8638 [13.8545–17.8730]

T 0.4723

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.8021

host 70/73; device 70/73

dense-2048/cuda-native

14.6193 [14.0363–15.2023]

T 21.6253 [20.0704–23.1802]

T 0.6760

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8183

host 70/73; device 70/73

dense-2048/cuda-cublas

13.3800 [12.7557–14.0043]

T 21.6253 [20.0704–23.1802]

T 0.6187

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8169

host 70/73; device 70/73

cuda-dense-f64-v1 / none / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

5.6120 [5.1284–6.0957]

T 11.7988 [10.1174–13.4802]

T 0.4756

N 49/51; T 49/51

N 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.7559

host 49/51; device 49/51

dense-64/cuda-cublas

7.2258 [6.7714–7.6802]

T 11.7988 [10.1174–13.4802]

T 0.6124

N 49/51; T 49/51

N 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.8406

host 49/51; device 49/51

dense-256/cuda-native

8.6237 [8.5016–8.7458]

T 17.5651 [17.3508–17.7795]

T 0.4910

N 67/70; T 67/70

N 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.6538

host 67/70; device 67/70

dense-256/cuda-cublas

10.2875 [10.1045–10.4705]

T 17.5651 [17.3508–17.7795]

T 0.5857

N 67/70; T 67/70

N 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.7635

host 67/70; device 67/70

dense-1024/cuda-native

10.9420 [10.7068–11.1771]

T 15.4147 [15.1728–15.6567]

T 0.7098

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7137

host 70/73; device 70/73

dense-1024/cuda-cublas

11.3650 [10.9859–11.7441]

T 15.4147 [15.1728–15.6567]

T 0.7373

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7272

host 70/73; device 70/73

dense-2048/cuda-native

16.3286 [16.0615–16.5957]

T 20.3853 [20.0484–20.7222]

T 0.8010

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8810

host 70/73; device 70/73

dense-2048/cuda-cublas

16.4961 [16.2756–16.7166]

T 20.3853 [20.0484–20.7222]

T 0.8092

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8823

host 70/73; device 70/73

cuda-dense-f64-v1 / none / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

4.2419 [4.0511–4.4327]

T 9.9959 [9.8419–10.1499]

T 0.4244

N 49/51; T 49/51

N 2.0447e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.7559

host 49/51; device 49/51

dense-64/cuda-cublas

6.0741 [5.9928–6.1555]

T 9.9959 [9.8419–10.1499]

T 0.6077

N 49/51; T 49/51

N 2.2061e-06 / 2.7376e-06; T 2.2061e-06 / 2.7376e-06

0.8406

host 49/51; device 49/51

dense-256/cuda-native

5.6380 [5.5885–5.6874]

T 13.6953 [13.2104–14.1802]

T 0.4117

N 67/70; T 67/70

N 5.9926e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.6538

host 67/70; device 67/70

dense-256/cuda-cublas

7.8544 [7.7668–7.9420]

T 13.6953 [13.2104–14.1802]

T 0.5735

N 67/70; T 67/70

N 5.9162e-06 / 6.3423e-06; T 5.6508e-06 / 6.3423e-06

0.7635

host 67/70; device 67/70

dense-1024/cuda-native

7.8097 [7.6377–7.9818]

T 14.2202 [13.9438–14.4966]

T 0.5492

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7137

host 70/73; device 70/73

dense-1024/cuda-cublas

8.2650 [8.0850–8.4450]

T 14.2202 [13.9438–14.4966]

T 0.5812

N 70/73; T 70/73

N 9.5050e-06 / 1.0791e-05; T 9.5050e-06 / 1.0791e-05

0.7272

host 70/73; device 70/73

dense-2048/cuda-native

14.3859 [14.1940–14.5778]

T 20.5286 [20.3373–20.7199]

T 0.7008

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8810

host 70/73; device 70/73

dense-2048/cuda-cublas

14.5538 [14.3774–14.7303]

T 20.5286 [20.3373–20.7199]

T 0.7090

N 70/73; T 70/73

N 1.3229e-05 / 1.4741e-05; T 1.3229e-05 / 1.4741e-05

0.8823

host 70/73; device 70/73

cuda-dense-f64-v1 / jacobi / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

0.8282 [0.7897–0.8666]

T 1.6426 [1.6135–1.6717]

T 0.5042

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.7857

host 5/7; device 5/7

dense-64/cuda-cublas

0.8797 [0.8506–0.9089]

T 1.6426 [1.6135–1.6717]

T 0.5356

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.7768

host 5/7; device 5/7

dense-256/cuda-native

0.7953 [0.7761–0.8145]

T 1.3609 [1.3106–1.4113]

T 0.5844

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7471

host 4/6; device 4/6

dense-256/cuda-cublas

0.7979 [0.7780–0.8177]

T 1.3609 [1.3106–1.4113]

T 0.5862

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7673

host 4/6; device 4/6

dense-1024/cuda-native

1.0990 [1.0755–1.1224]

T 1.4610 [1.4195–1.5024]

T 0.7522

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.7940

host 4/6; device 4/6

dense-1024/cuda-cublas

1.0130 [0.9836–1.0424]

T 1.4610 [1.4195–1.5024]

T 0.6934

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.7639

host 4/6; device 4/6

dense-2048/cuda-native

1.3515 [1.3102–1.3927]

T 1.5775 [1.5752–1.5798]

T 0.8567

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.8670

host 3/5; device 3/5

dense-2048/cuda-cublas

1.2317 [1.2141–1.2492]

T 1.5775 [1.5752–1.5798]

T 0.7808

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.8450

host 3/5; device 3/5

cuda-dense-f64-v1 / jacobi / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

0.6507 [0.6502–0.6512]

T 1.6081 [1.6051–1.6112]

T 0.4046

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.7857

host 5/7; device 5/7

dense-64/cuda-cublas

0.6834 [0.6808–0.6859]

T 1.6081 [1.6051–1.6112]

T 0.4249

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.7768

host 5/7; device 5/7

dense-256/cuda-native

0.5942 [0.5731–0.6152]

T 1.3558 [1.3043–1.4073]

T 0.4382

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7471

host 4/6; device 4/6

dense-256/cuda-cublas

0.6122 [0.5678–0.6566]

T 1.3558 [1.3043–1.4073]

T 0.4515

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7673

host 4/6; device 4/6

dense-1024/cuda-native

0.8725 [0.8607–0.8844]

T 1.4265 [1.4014–1.4516]

T 0.6117

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.7940

host 4/6; device 4/6

dense-1024/cuda-cublas

0.7738 [0.7672–0.7804]

T 1.4265 [1.4014–1.4516]

T 0.5425

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.7639

host 4/6; device 4/6

dense-2048/cuda-native

1.1718 [1.1712–1.1723]

T 1.5557 [1.5396–1.5719]

T 0.7532

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.8670

host 3/5; device 3/5

dense-2048/cuda-cublas

1.0408 [1.0323–1.0492]

T 1.5557 [1.5396–1.5719]

T 0.6690

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.8450

host 3/5; device 3/5

cuda-dense-f64-v1 / jacobi / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

1.0705 [0.9634–1.1776]

T 2.4117 [2.1477–2.6758]

T 0.4439

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.8973

host 5/7; device 5/7

dense-64/cuda-cublas

2.5376 [2.5289–2.5464]

T 2.4117 [2.1477–2.6758]

T 1.0522

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.9877

host 5/7; device 5/7

dense-256/cuda-native

1.0469 [0.8820–1.2118]

T 2.0801 [1.7283–2.4320]

T 0.5033

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7620

host 4/6; device 4/6

dense-256/cuda-cublas

2.6084 [2.4740–2.7427]

T 2.0801 [1.7283–2.4320]

T 1.2539

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.9459

host 4/6; device 4/6

dense-1024/cuda-native

1.2425 [1.1422–1.3428]

T 1.8466 [1.7763–1.9169]

T 0.6729

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.8498

host 4/6; device 4/6

dense-1024/cuda-cublas

2.6970 [2.5803–2.8136]

T 1.8466 [1.7763–1.9169]

T 1.4605

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.9501

host 4/6; device 4/6

dense-2048/cuda-native

1.4403 [1.3696–1.5111]

T 2.0289 [1.9684–2.0894]

T 0.7099

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.9118

host 3/5; device 3/5

dense-2048/cuda-cublas

2.7927 [2.7621–2.8232]

T 2.0289 [1.9684–2.0894]

T 1.3764

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.9283

host 3/5; device 3/5

cuda-dense-f64-v1 / jacobi / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

dense-64/cuda-native

0.9605 [0.8819–1.0391]

T 2.2898 [2.2732–2.3064]

T 0.4195

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.8973

host 5/7; device 5/7

dense-64/cuda-cublas

2.5063 [2.3804–2.6323]

T 2.2898 [2.2732–2.3064]

T 1.0945

N 5/7; T 5/7

N 1.1410e-07 / 2.7376e-06; T 1.1410e-07 / 2.7376e-06

0.9877

host 5/7; device 5/7

dense-256/cuda-native

0.7978 [0.6916–0.9040]

T 1.9435 [1.7456–2.1414]

T 0.4105

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.7620

host 4/6; device 4/6

dense-256/cuda-cublas

2.4673 [2.3623–2.5722]

T 1.9435 [1.7456–2.1414]

T 1.2695

N 4/6; T 4/6

N 1.0990e-06 / 6.3423e-06; T 1.0990e-06 / 6.3423e-06

0.9459

host 4/6; device 4/6

dense-1024/cuda-native

1.0559 [0.9996–1.1121]

T 2.0907 [2.0526–2.1287]

T 0.5050

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.8498

host 4/6; device 4/6

dense-1024/cuda-cublas

2.5624 [2.5384–2.5863]

T 2.0907 [2.0526–2.1287]

T 1.2256

N 4/6; T 4/6

N 1.7223e-07 / 1.0791e-05; T 1.7223e-07 / 1.0791e-05

0.9501

host 4/6; device 4/6

dense-2048/cuda-native

1.3134 [1.2695–1.3572]

T 2.1172 [2.0805–2.1538]

T 0.6203

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.9118

host 3/5; device 3/5

dense-2048/cuda-cublas

2.5925 [2.5853–2.5997]

T 2.1172 [2.0805–2.1538]

T 1.2245

N 3/5; T 3/5

N 1.2450e-05 / 1.4741e-05; T 1.2450e-05 / 1.4741e-05

0.9283

host 3/5; device 3/5

cuda-csr-f64-v1 / none / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.7399 [2.5110–2.9689]

T 5.3008 [5.2385–5.3631]

T 0.5169

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.9217

host 26/28; device 26/28

poisson-32/cuda-native

14.0195 [13.8777–14.1614]

T 25.9178 [25.7227–26.1129]

T 0.5409

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.8858

host 129/133; device 129/133

poisson-64/cuda-native

31.6945 [31.2449–32.1442]

T 58.8995 [57.2275–60.5714]

T 0.5381

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.7797

host 290/297; device 290/297

poisson-128/cuda-native

45.2123 [43.6536–46.7711]

T 82.1802 [80.2220–84.1384]

T 0.5502

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.7743

host 395/404; device 395/404

cuda-csr-f64-v1 / none / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.5254 [2.1907–2.8601]

T 5.8979 [5.0851–6.7106]

T 0.4282

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.9217

host 26/28; device 26/28

poisson-32/cuda-native

12.4191 [10.4004–14.4378]

T 29.4741 [24.9728–33.9753]

T 0.4214

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.8858

host 129/133; device 129/133

poisson-64/cuda-native

24.7111 [22.8447–26.5775]

T 60.9672 [54.9134–67.0211]

T 0.4053

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.7797

host 290/297; device 290/297

poisson-128/cuda-native

35.0083 [34.2098–35.8068]

T 79.4906 [78.4069–80.5744]

T 0.4404

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.7743

host 395/404; device 395/404

cuda-csr-f64-v1 / none / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.9020 [2.8806–2.9234]

T 5.2838 [5.2076–5.3599]

T 0.5492

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.7946

host 26/28; device 26/28

poisson-32/cuda-native

14.0893 [13.9796–14.1989]

T 26.8912 [26.4586–27.3239]

T 0.5239

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.7885

host 129/133; device 129/133

poisson-64/cuda-native

31.4019 [30.3970–32.4068]

T 57.9259 [56.8239–59.0279]

T 0.5421

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.8003

host 290/297; device 290/297

poisson-128/cuda-native

47.8586 [46.9411–48.7761]

T 85.3807 [84.1134–86.6479]

T 0.5605

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.7888

host 395/404; device 395/404

cuda-csr-f64-v1 / none / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.3060 [2.2463–2.3657]

T 5.2951 [5.0866–5.5036]

T 0.4355

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.7946

host 26/28; device 26/28

poisson-32/cuda-native

11.1092 [10.9412–11.2773]

T 25.5321 [25.3357–25.7285]

T 0.4351

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.7885

host 129/133; device 129/133

poisson-64/cuda-native

25.1323 [24.6455–25.6191]

T 55.8848 [55.4353–56.3344]

T 0.4497

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.8003

host 290/297; device 290/297

poisson-128/cuda-native

37.7499 [36.0882–39.4117]

T 81.3830 [78.6878–84.0782]

T 0.4639

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.7888

host 395/404; device 395/404

cuda-csr-f64-v1 / jacobi / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

4.1273 [3.9672–4.2875]

T 8.1443 [7.4191–8.8695]

T 0.5068

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.6880

host 26/28; device 26/28

poisson-32/cuda-native

20.7258 [19.8771–21.5744]

T 39.0207 [35.7897–42.2517]

T 0.5311

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.6543

host 129/133; device 129/133

poisson-64/cuda-native

46.7434 [46.0425–47.4442]

T 87.3234 [82.0373–92.6095]

T 0.5353

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.6746

host 290/297; device 290/297

poisson-128/cuda-native

70.9723 [68.0638–73.8808]

T 123.7102 [121.0454–126.3750]

T 0.5737

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.5943

host 395/404; device 395/404

cuda-csr-f64-v1 / jacobi / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.8397 [2.6991–2.9803]

T 8.8733 [7.7897–9.9569]

T 0.3200

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.6880

host 26/28; device 26/28

poisson-32/cuda-native

13.5609 [12.8713–14.2505]

T 43.1800 [38.4016–47.9584]

T 0.3141

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.6543

host 129/133; device 129/133

poisson-64/cuda-native

31.5340 [29.8967–33.1713]

T 98.8009 [88.0906–109.5113]

T 0.3192

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.6746

host 290/297; device 290/297

poisson-128/cuda-native

42.1770 [39.7207–44.6332]

T 125.0549 [114.7683–135.3416]

T 0.3373

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.5943

host 395/404; device 395/404

cuda-csr-f64-v1 / jacobi / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

4.4298 [4.0632–4.7964]

T 8.7426 [7.5553–9.9300]

T 0.5067

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.6022

host 26/28; device 26/28

poisson-32/cuda-native

21.2212 [20.3019–22.1405]

T 41.2328 [37.2537–45.2119]

T 0.5147

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.6027

host 129/133; device 129/133

poisson-64/cuda-native

50.3621 [45.9302–54.7940]

T 96.8903 [83.9771–109.8034]

T 0.5198

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.5831

host 290/297; device 290/297

poisson-128/cuda-native

75.5428 [69.5799–81.5057]

T 131.9680 [119.7696–144.1663]

T 0.5724

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.6160

host 395/404; device 395/404

cuda-csr-f64-v1 / jacobi / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

poisson-8/cuda-native

2.6678 [2.6585–2.6772]

T 7.7493 [7.5791–7.9194]

T 0.3443

N 26/28; T 26/28

N 2.0123e-07 / 3.0549e-07; T 2.0123e-07 / 3.0549e-07

0.6022

host 26/28; device 26/28

poisson-32/cuda-native

12.7910 [12.7340–12.8480]

T 37.0022 [36.7818–37.2226]

T 0.3457

N 129/133; T 129/133

N 1.3276e-06 / 1.3672e-06; T 1.3276e-06 / 1.3672e-06

0.6027

host 129/133; device 129/133

poisson-64/cuda-native

29.3676 [28.6178–30.1175]

T 90.0141 [89.1021–90.9260]

T 0.3263

N 290/297; T 290/297

N 2.7729e-06 / 2.8101e-06; T 2.7729e-06 / 2.8101e-06

0.5831

host 290/297; device 290/297

poisson-128/cuda-native

46.5333 [43.2862–49.7804]

T 139.8668 [122.0252–157.7085]

T 0.3327

N 395/404; T 395/404

N 5.6614e-06 / 5.7493e-06; T 5.6614e-06 / 5.7493e-06

0.6160

host 395/404; device 395/404

sparse-solvers / none / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

61.9568 [60.6663–63.2472]

T 114.4294 [111.8844–116.9745]

T 0.5414

N 575/588; T 574/587

N 6.0643e-05 / 6.3862e-05; T 5.7011e-05 / 6.3862e-05

0.8624

host 575/588; device 575/588

scaled-poisson-2d-32/cuda-native

187.7263 [185.6451–189.8074]

T 344.4783 [343.0650–345.8917]

T 0.5450

N 1498/1529; T 1498/1529

N 1.4484e-04 / 1.4732e-04; T 1.4500e-04 / 1.4732e-04

0.6650

host 1498/1529; device 1498/1529

scaled-poisson-3d-6/cuda-native

32.0446 [30.2091–33.8801]

T 56.8623 [55.0504–58.6741]

T 0.5635

N 261/268; T 249/255

N 8.8109e-05 / 8.9682e-05; T 8.9560e-05 / 8.9682e-05

0.7393

host 261/268; device 261/268

scaled-poisson-3d-10/cuda-native

53.9478 [53.8026–54.0929]

T 98.2136 [94.7792–101.6480]

T 0.5493

N 444/454; T 444/454

N 2.0951e-04 / 2.1493e-04; T 2.0952e-04 / 2.1493e-04

0.7490

host 444/454; device 444/454

poisson-2d-16-neutral/cuda-native

6.4635 [6.1838–6.7432]

T 12.0000 [11.5557–12.4443]

T 0.5386

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6211

host 50/52; device 50/52

sparse-solvers / none / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

53.4337 [47.1753–59.6921]

T 121.6392 [109.8958–133.3825]

T 0.4393

N 575/588; T 574/587

N 6.0643e-05 / 6.3862e-05; T 5.7011e-05 / 6.3862e-05

0.8624

host 575/588; device 575/588

scaled-poisson-2d-32/cuda-native

124.8434 [121.6877–127.9992]

T 292.7929 [288.3054–297.2804]

T 0.4264

N 1498/1529; T 1498/1529

N 1.4484e-04 / 1.4732e-04; T 1.4500e-04 / 1.4732e-04

0.6650

host 1498/1529; device 1498/1529

scaled-poisson-3d-6/cuda-native

23.6919 [23.4651–23.9186]

T 50.9696 [48.9399–52.9994]

T 0.4648

N 261/268; T 249/255

N 8.8109e-05 / 8.9682e-05; T 8.9560e-05 / 8.9682e-05

0.7393

host 261/268; device 261/268

scaled-poisson-3d-10/cuda-native

40.4085 [39.9678–40.8491]

T 91.0312 [88.8046–93.2578]

T 0.4439

N 444/454; T 444/454

N 2.0951e-04 / 2.1493e-04; T 2.0952e-04 / 2.1493e-04

0.7490

host 444/454; device 444/454

poisson-2d-16-neutral/cuda-native

4.0148 [3.9710–4.0586]

T 9.3549 [9.2609–9.4490]

T 0.4292

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6211

host 50/52; device 50/52

sparse-solvers / none / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

60.5632 [60.2573–60.8691]

T 110.2223 [110.1876–110.2570]

T 0.5495

N 575/588; T 574/587

N 6.0643e-05 / 6.3862e-05; T 5.7011e-05 / 6.3862e-05

0.8846

host 575/588; device 575/588

scaled-poisson-2d-32/cuda-native

176.9493 [176.7551–177.1435]

T 314.5587 [314.1296–314.9878]

T 0.5625

N 1498/1529; T 1498/1529

N 1.4484e-04 / 1.4732e-04; T 1.4500e-04 / 1.4732e-04

0.8008

host 1498/1529; device 1498/1529

scaled-poisson-3d-6/cuda-native

34.7799 [34.5721–34.9876]

T 57.6891 [55.4815–59.8968]

T 0.6029

N 261/268; T 249/255

N 8.8109e-05 / 8.9682e-05; T 8.9560e-05 / 8.9682e-05

0.7642

host 261/268; device 261/268

scaled-poisson-3d-10/cuda-native

56.4389 [55.5672–57.3106]

T 97.6172 [93.7302–101.5043]

T 0.5782

N 444/454; T 444/454

N 2.0951e-04 / 2.1493e-04; T 2.0952e-04 / 2.1493e-04

0.7099

host 444/454; device 444/454

poisson-2d-16-neutral/cuda-native

5.2355 [5.1913–5.2798]

T 9.5784 [9.3106–9.8462]

T 0.5466

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.8322

host 50/52; device 50/52

sparse-solvers / none / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

53.5765 [47.4015–59.7514]

T 119.6268 [110.5881–128.6655]

T 0.4479

N 575/588; T 574/587

N 6.0643e-05 / 6.3862e-05; T 5.7011e-05 / 6.3862e-05

0.8846

host 575/588; device 575/588

scaled-poisson-2d-32/cuda-native

141.7072 [122.1136–161.3009]

T 330.8429 [282.7930–378.8928]

T 0.4283

N 1498/1529; T 1498/1529

N 1.4484e-04 / 1.4732e-04; T 1.4500e-04 / 1.4732e-04

0.8008

host 1498/1529; device 1498/1529

scaled-poisson-3d-6/cuda-native

26.5804 [22.4621–30.6986]

T 56.3327 [50.9981–61.6674]

T 0.4718

N 261/268; T 249/255

N 8.8109e-05 / 8.9682e-05; T 8.9560e-05 / 8.9682e-05

0.7642

host 261/268; device 261/268

scaled-poisson-3d-10/cuda-native

40.0675 [39.7418–40.3932]

T 90.2162 [88.8872–91.5452]

T 0.4441

N 444/454; T 444/454

N 2.0951e-04 / 2.1493e-04; T 2.0952e-04 / 2.1493e-04

0.7099

host 444/454; device 444/454

poisson-2d-16-neutral/cuda-native

4.3572 [4.1610–4.5534]

T 10.0133 [9.8601–10.1665]

T 0.4351

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.8322

host 50/52; device 50/52

sparse-solvers / jacobi / prepared / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

7.5418 [7.3822–7.7014]

T 14.0710 [13.2091–14.9329]

T 0.5360

N 48/50; T 48/50

N 5.8194e-05 / 6.3862e-05; T 5.8194e-05 / 6.3862e-05

0.6266

host 48/50; device 48/50

scaled-poisson-2d-32/cuda-native

18.0006 [17.7584–18.2427]

T 32.3252 [31.3937–33.2566]

T 0.5569

N 115/119; T 115/119

N 1.3686e-04 / 1.4732e-04; T 1.3686e-04 / 1.4732e-04

0.6211

host 115/119; device 115/119

scaled-poisson-3d-6/cuda-native

3.9948 [3.8694–4.1203]

T 7.3139 [6.8884–7.7394]

T 0.5462

N 25/27; T 25/27

N 3.9457e-05 / 8.9682e-05; T 3.9457e-05 / 8.9682e-05

0.6378

host 25/27; device 25/27

scaled-poisson-3d-10/cuda-native

5.6938 [5.5869–5.8006]

T 10.0378 [10.0031–10.0725]

T 0.5672

N 37/39; T 37/39

N 2.0828e-04 / 2.1493e-04; T 2.0828e-04 / 2.1493e-04

0.6640

host 37/39; device 37/39

poisson-2d-16-neutral/cuda-native

7.5668 [7.4850–7.6487]

T 13.6058 [13.5353–13.6764]

T 0.5561

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6309

host 50/52; device 50/52

sparse-solvers / jacobi / prepared / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

4.7258 [4.6256–4.8259]

T 13.2945 [12.9879–13.6012]

T 0.3555

N 48/50; T 48/50

N 5.8194e-05 / 6.3862e-05; T 5.8194e-05 / 6.3862e-05

0.6266

host 48/50; device 48/50

scaled-poisson-2d-32/cuda-native

11.1809 [11.0801–11.2818]

T 31.0593 [30.6399–31.4787]

T 0.3600

N 115/119; T 115/119

N 1.3686e-04 / 1.4732e-04; T 1.3686e-04 / 1.4732e-04

0.6211

host 115/119; device 115/119

scaled-poisson-3d-6/cuda-native

2.5477 [2.5142–2.5812]

T 6.6871 [6.6034–6.7708]

T 0.3810

N 25/27; T 25/27

N 3.9457e-05 / 8.9682e-05; T 3.9457e-05 / 8.9682e-05

0.6378

host 25/27; device 25/27

scaled-poisson-3d-10/cuda-native

3.7806 [3.7074–3.8537]

T 10.3671 [10.1984–10.5358]

T 0.3647

N 37/39; T 37/39

N 2.0828e-04 / 2.1493e-04; T 2.0828e-04 / 2.1493e-04

0.6640

host 37/39; device 37/39

poisson-2d-16-neutral/cuda-native

4.7736 [4.7668–4.7805]

T 14.7966 [14.0182–15.5749]

T 0.3226

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6309

host 50/52; device 50/52

sparse-solvers / jacobi / api / execution=host

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

7.4919 [7.2259–7.7579]

T 13.6826 [12.9277–14.4376]

T 0.5476

N 48/50; T 48/50

N 5.8194e-05 / 6.3862e-05; T 5.8194e-05 / 6.3862e-05

0.6171

host 48/50; device 48/50

scaled-poisson-2d-32/cuda-native

17.8911 [17.0860–18.6962]

T 32.3864 [30.6734–34.0993]

T 0.5524

N 115/119; T 115/119

N 1.3686e-04 / 1.4732e-04; T 1.3686e-04 / 1.4732e-04

0.6169

host 115/119; device 115/119

scaled-poisson-3d-6/cuda-native

4.0610 [3.8913–4.2307]

T 7.3110 [6.8000–7.8220]

T 0.5555

N 25/27; T 25/27

N 3.9457e-05 / 8.9682e-05; T 3.9457e-05 / 8.9682e-05

0.6606

host 25/27; device 25/27

scaled-poisson-3d-10/cuda-native

5.9193 [5.6871–6.1514]

T 10.7216 [10.1790–11.2641]

T 0.5521

N 37/39; T 37/39

N 2.0828e-04 / 2.1493e-04; T 2.0828e-04 / 2.1493e-04

0.6335

host 37/39; device 37/39

poisson-2d-16-neutral/cuda-native

7.7049 [7.5925–7.8172]

T 14.2661 [13.5536–14.9786]

T 0.5401

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6365

host 50/52; device 50/52

sparse-solvers / jacobi / api / execution=device

case/native

native ms [process range]

Torch ms [range]

native/Torch

iterations/matvecs

true R / threshold

device/host (descriptive)

host/device work

scaled-poisson-2d-16/cuda-native

4.6230 [4.5121–4.7338]

T 13.3024 [13.1554–13.4493]

T 0.3475

N 48/50; T 48/50

N 5.8194e-05 / 6.3862e-05; T 5.8194e-05 / 6.3862e-05

0.6171

host 48/50; device 48/50

scaled-poisson-2d-32/cuda-native

11.0362 [10.9584–11.1140]

T 33.0431 [32.5678–33.5184]

T 0.3340

N 115/119; T 115/119

N 1.3686e-04 / 1.4732e-04; T 1.3686e-04 / 1.4732e-04

0.6169

host 115/119; device 115/119

scaled-poisson-3d-6/cuda-native

2.6827 [2.6765–2.6889]

T 7.4435 [7.1963–7.6907]

T 0.3604

N 25/27; T 25/27

N 3.9457e-05 / 8.9682e-05; T 3.9457e-05 / 8.9682e-05

0.6606

host 25/27; device 25/27

scaled-poisson-3d-10/cuda-native

3.7497 [3.6421–3.8574]

T 11.2794 [10.5953–11.9635]

T 0.3324

N 37/39; T 37/39

N 2.0828e-04 / 2.1493e-04; T 2.0828e-04 / 2.1493e-04

0.6335

host 37/39; device 37/39

poisson-2d-16-neutral/cuda-native

4.9042 [4.6365–5.1719]

T 14.8631 [14.2578–15.4685]

T 0.3300

N 50/52; T 50/52

N 4.8293e-07 / 6.3194e-07; T 4.8293e-07 / 6.3194e-07

0.6365

host 50/52; device 50/52

Current native/reference medians and remaining losses

A lower measured median means native/reference < 1; this is a different ratio from the A/B optimization gate. These descriptive within-artifact rankings do not establish statistical significance. All ties or higher native medians are listed, with no excluded controls or favorable-case filter.

Lower native median counts, with full native/reference ratio range

batch

suite

mode

fused

native

reference

lower/total

ties

ratio range

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

8/16

0

0.1395–1.3031

CPU ABBA

cpu-dense-f64-v1

host

True

native

torch-eager-out

12/16

0

0.0987–1.2326

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

4/16

0

0.2497–3.7019

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

4/16

0

0.1597–3.4969

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-native

torch-cuda-eager

16/16

0

0.4610–0.8418

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

12/16

0

0.4872–1.4220

CUDA API ABBA

cuda-csr-f64-v1

host

True

cuda-native

torch-cuda-eager

16/16

0

0.5109–0.6047

CUDA modes

cuda-dense-f64-v1

host

True

cuda-native

torch-cuda-eager

16/16

0

0.4439–0.8567

CUDA modes

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

12/16

0

0.4774–1.4605

CUDA modes

cuda-dense-f64-v1

device

True

cuda-native

torch-cuda-eager

16/16

0

0.4046–0.7532

CUDA modes

cuda-dense-f64-v1

device

True

cuda-cublas

torch-cuda-eager

12/16

0

0.4249–1.2695

CUDA modes

cuda-csr-f64-v1

host

True

cuda-native

torch-cuda-eager

16/16

0

0.5067–0.5737

CUDA modes

cuda-csr-f64-v1

device

True

cuda-native

torch-cuda-eager

16/16

0

0.3141–0.4639

CUDA modes

sparse-solvers

host

True

cuda-native

torch-cuda-eager

20/20

0

0.5360–0.6029

CUDA modes

sparse-solvers

device

True

cuda-native

torch-cuda-eager

20/20

0

0.3226–0.4718

Every remaining tie or higher native median

batch

suite

mode

fused

native

reference

M

scope

case

native/reference

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

none

prepared

dense-1024

1.0423

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

none

prepared

dense-2048

1.2577

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

none

api

dense-1024

1.0116

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

none

api

dense-2048

1.3031

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

jacobi

prepared

dense-1024

1.0243

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

jacobi

prepared

dense-2048

1.2193

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

jacobi

api

dense-1024

1.0362

CPU ABBA

cpu-dense-f64-v1

host

True

native

numpy-out

jacobi

api

dense-2048

1.2540

CPU ABBA

cpu-dense-f64-v1

host

True

native

torch-eager-out

none

prepared

dense-2048

1.1682

CPU ABBA

cpu-dense-f64-v1

host

True

native

torch-eager-out

none

api

dense-2048

1.2326

CPU ABBA

cpu-dense-f64-v1

host

True

native

torch-eager-out

jacobi

prepared

dense-2048

1.1356

CPU ABBA

cpu-dense-f64-v1

host

True

native

torch-eager-out

jacobi

api

dense-2048

1.1315

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

prepared

dense-256

2.3402

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

prepared

dense-1024

3.4053

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

prepared

dense-2048

2.4884

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

api

dense-256

2.3932

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

api

dense-1024

3.7019

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

none

api

dense-2048

2.4692

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

prepared

dense-256

2.2457

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

prepared

dense-1024

2.9609

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

prepared

dense-2048

2.4126

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

api

dense-256

2.2186

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

api

dense-1024

3.4901

CPU ABBA

cpu-dense-f64-v1

host

False

native

numpy-out

jacobi

api

dense-2048

2.3843

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

prepared

dense-256

1.9957

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

prepared

dense-1024

3.3156

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

prepared

dense-2048

2.3363

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

api

dense-256

1.9608

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

api

dense-1024

3.4969

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

none

api

dense-2048

2.3725

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

prepared

dense-256

1.8173

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

prepared

dense-1024

2.7485

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

prepared

dense-2048

2.1782

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

api

dense-256

1.4291

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

api

dense-1024

3.0452

CPU ABBA

cpu-dense-f64-v1

host

False

native

torch-eager-out

jacobi

api

dense-2048

2.2183

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-64

1.1575

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-256

1.4119

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-1024

1.4220

CUDA API ABBA

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-2048

1.4128

CUDA modes

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-64

1.0522

CUDA modes

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-256

1.2539

CUDA modes

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-1024

1.4605

CUDA modes

cuda-dense-f64-v1

host

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-2048

1.3764

CUDA modes

cuda-dense-f64-v1

device

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-64

1.0945

CUDA modes

cuda-dense-f64-v1

device

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-256

1.2695

CUDA modes

cuda-dense-f64-v1

device

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-1024

1.2256

CUDA modes

cuda-dense-f64-v1

device

True

cuda-cublas

torch-cuda-eager

jacobi

api

dense-2048

1.2245

Diagnostic profiles: control traffic and CPU operations

These profiles are diagnostics, excluded from the formal framework scores, strict-gate verdict counts and native/reference rankings above. Nsight instrumentation changes timing, and the CPU probe fixes p=x=b instead of recording evolving CG directions. Neither diagnostic supports additive phase attribution or a universal solver speed claim.

The five CUDA captures use the same frozen candidate binary as the formal host/device characterization, three warmups and ten prepared solves per capture. The before/after independent residual gates remain valid. Counts below are totals for ten solves: CUDA memcpy/synchronize calls include initialization, status/norm traffic and completion boundaries, rather than only recurrence packets. GPU kernel instances are not matvec counts; one operation can require several kernels, especially cuBLAS.

For dense-1024 Jacobi, host and device both perform four iterations and six matvecs per solve. Device execution reduces observed memcpy and sync calls while increasing kernel launches; this tradeoff is retained rather than treating fewer copies as proof of lower complete-solve latency. Explicit device CG retains 69 iterations / 139 matvecs per solve and its much larger launch/status traffic. The CSR capture retains 129 / 133. Only the uninstrumented formal measurements support performance rankings.

Nsight API and GPU activity counts; ten solves per capture

mode/kernel/case/M/algorithm

solves

iterations/matvecs per solve

cudaMemcpyAsync calls

cudaStreamSynchronize calls

cudaLaunchKernel calls

GPU kernel instances

max true R / threshold

device/cuda-cublas/dense-1024/jacobi/standard

10

4/6

100

120

630

630

1.722285e-07 / 1.079068e-05

device/cuda-native/dense-1024/jacobi/standard

10

4/6

100

120

570

570

1.722285e-07 / 1.079068e-05

device/cuda-native/dense-1024/none/explicit

10

69/139

1410

1440

10410

10410

8.844894e-06 / 1.079068e-05

device/cuda-native/poisson-32/jacobi/standard

10

129/133

1430

1410

15670

15670

1.327602e-06 / 1.367232e-06

host/cuda-native/dense-1024/jacobi/standard

10

4/6

170

190

330

330

1.722285e-07 / 1.079068e-05

Every captured GPU kernel; extra launches are retained

capture

kernel

instances

device/cuda-cublas/dense-1024/jacobi/standard

void gemv2T_kernel_val<int, int, double, double, double, double, (int)128, (int)16, (int)2, (int)2, (bool)0, (bool)0, cublasGemvParamsEx<int, cublasGemvTensorStridedBatched<const double>, cublasGemvTensorStridedBatched<const double>, cublasGemvTensorStridedBatched<double>, double>>(T13, T6, T6)

60

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::finish_kernel(const double *, unsigned long, double *)

160

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::dot_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double *)

50

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::multiply_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double *, bool)

50

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_update(cg::cuda::VectorView, cg::cuda::VectorView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, const cg::cuda::detail::DeviceState *, double *)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_alpha(cg::cuda::detail::DeviceState *, bool)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::stable_norm_kernel(cg::cuda::ConstVectorView, const double *, double *)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_beta(cg::cuda::detail::DeviceState *, bool, bool)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::residual_kernel(cg::cuda::ConstVectorView, cg::cuda::VectorView, bool, double *)

20

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_residual(cg::cuda::detail::DeviceState *, bool)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_direction(cg::cuda::ConstVectorView, cg::cuda::VectorView, const cg::cuda::detail::DeviceState *, double)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::begin_iteration(cg::cuda::detail::DeviceState *, bool, bool)

40

device/cuda-cublas/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::initialize_state(cg::cuda::detail::DeviceState *, double, double, double)

10

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::dense_kernel(cg::cuda::DenseMatrixView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, int, bool, double *)

60

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::finish_kernel(const double *, unsigned long, double *)

160

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::multiply_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double *, bool)

50

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_update(cg::cuda::VectorView, cg::cuda::VectorView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, const cg::cuda::detail::DeviceState *, double *)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_alpha(cg::cuda::detail::DeviceState *, bool)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::stable_norm_kernel(cg::cuda::ConstVectorView, const double *, double *)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_beta(cg::cuda::detail::DeviceState *, bool, bool)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::check_residual(cg::cuda::detail::DeviceState *, bool)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_direction(cg::cuda::ConstVectorView, cg::cuda::VectorView, const cg::cuda::detail::DeviceState *, double)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::begin_iteration(cg::cuda::detail::DeviceState *, bool, bool)

40

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::dot_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double *)

10

device/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::initialize_state(cg::cuda::detail::DeviceState *, double, double, double)

10

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::dense_kernel(cg::cuda::DenseMatrixView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, int, bool, double *)

1390

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::finish_kernel(const double *, unsigned long, double *)

2780

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::dot_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double *)

1390

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::guarded_axpy(cg::cuda::ConstVectorView, cg::cuda::VectorView, const cg::cuda::detail::DeviceState *, bool)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::check_alpha(cg::cuda::detail::DeviceState *, bool)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::guarded_direction(cg::cuda::ConstVectorView, cg::cuda::VectorView, const cg::cuda::detail::DeviceState *, double)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::check_beta(cg::cuda::detail::DeviceState *, bool, bool)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::check_residual(cg::cuda::detail::DeviceState *, bool)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::stable_norm_kernel(cg::cuda::ConstVectorView, const double *, double *)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::begin_iteration(cg::cuda::detail::DeviceState *, bool, bool)

690

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::linear_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double, double)

10

device/cuda-native/dense-1024/none/explicit

cg::cuda::detail::<unnamed>::initialize_state(cg::cuda::detail::DeviceState *, double, double, double)

10

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::finish_kernel(const double *, unsigned long, double *)

3950

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::csr_kernel(cg::cuda::CsrMatrixView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, int, bool, double *)

1330

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_update(cg::cuda::VectorView, cg::cuda::VectorView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, const cg::cuda::detail::DeviceState *, double *)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::multiply_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double *, bool)

1320

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::check_beta(cg::cuda::detail::DeviceState *, bool, bool)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::check_alpha(cg::cuda::detail::DeviceState *, bool)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::check_residual(cg::cuda::detail::DeviceState *, bool)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::guarded_direction(cg::cuda::ConstVectorView, cg::cuda::VectorView, const cg::cuda::detail::DeviceState *, double)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::stable_norm_kernel(cg::cuda::ConstVectorView, const double *, double *)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::begin_iteration(cg::cuda::detail::DeviceState *, bool, bool)

1290

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::initialize_state(cg::cuda::detail::DeviceState *, double, double, double)

30

device/cuda-native/poisson-32/jacobi/standard

cg::cuda::detail::<unnamed>::dot_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double *)

10

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::dense_kernel(cg::cuda::DenseMatrixView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, int, bool, double *)

60

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::finish_kernel(const double *, unsigned long, double *)

150

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::update_kernel(cg::cuda::VectorView, cg::cuda::VectorView, cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double, double *)

40

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::multiply_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double *, bool)

40

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::linear_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, cg::cuda::VectorView, double, double)

30

host/cuda-native/dense-1024/jacobi/standard

cg::cuda::detail::<unnamed>::dot_kernel(cg::cuda::ConstVectorView, cg::cuda::ConstVectorView, double *)

10

Diagnostic JSON/CSV and actual compiled-stage identities

profile JSON

JSON SHA256

API CSV SHA256

kernel CSV SHA256

compiled revision

stage identity SHA256

CUDA module SHA256

engine-device-cuda-cublas-dense-1024-jacobi-standard.json

f0b2c06bd145ab8453726af83d51dc6177d92d6b764258a3cf4482121473bfa6

4aa962d25ac3e42ccfcee879f0c31f47cb2b516d43d64ebd8bf1c6ee33965266

f6b70e676635fdca3df2bbad3c7c11699e1feff1fc05274085c55bfaf279e9d6

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

engine-device-cuda-native-dense-1024-jacobi-standard.json

a399fa76241de146435b1e2df7f3080e6a9e42540146baaa7de8a78e01a10085

0277b6ae2a98964a015e07ffc513dec223b442f56f9b97b6281d871428beb2b9

ec93777a9d62b5e59635219747ced604707f40c487b907682d5b2393e1715fa5

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

engine-device-cuda-native-dense-1024-none-explicit.json

800105b53c4874b7938d9c908a32f98ad46cdd7e6e73cc819bbcf14ca694adf7

50da0bd7141b95536ac1cb6c96e0fe06bad5ae4b9dadc4f9f266fe2ab5853703

6b4551aaf3447efdbddff6fcd660ce2e7fbbacc2948dbbce81114add74749d71

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

engine-device-cuda-native-poisson-32-jacobi-standard.json

b217688346b0b4722697fc52f0d4cdecfea276a98fdffe31741a3e4769953599

28d54e1a4eb7ea704d5645ab2be19632a6466d7749d843e02a9faae610a5531f

75fc67ae89adb7112033a7b3d6a01788e4fe61088461819f305248a4657b4932

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

engine-host-cuda-native-dense-1024-jacobi-standard.json

8a239ea2b1331bec1be67fab3ce030ccab5f34408b9e6a7e38fe11c66ff8ac99

6826bbe02dad56612ca8a633c4b0877eab6227d77b2ba0860470f7864f68868d

0e258920d75ab6f1327b0f4df404c2e983cb1a993f55269280b704cb6d06328d

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

The CPU diagnostic links the two preserved production archives through the same public CpuBackend methods, identical GNU 16 / -O3 -DNDEBUG C++20 flags and identical probe source. It uses the actual dense-1024/2048 cgbench fixtures, seed 20261015, one thread and fused=True. Each operation has one precheck, three warmups and thirty timed calls in each process; two fresh processes per side follow ABBA. Allocations, fixture file I/O, finite scans, independent scalar long-double reference arithmetic and before/after propagated FP64 rounding-bound gates are outside timing. All eight process artifacts satisfy the recorded vector/scalar gates.

The center below is the median of two process medians with their min/max range; no bootstrap interval or strict solver verdict is inferred. Inputs are fixed x=p=b: apply computes A*b, apply_and_dot computes b^T*A*b, and residual_squared_norm computes ||b-A*b||^2. These are not evolving CG directions or independent samples of the full solver. Do not sum these medians, subtract API/prepared scores, or use a fixed-p ratio to account for a percentage of the measured whole-CG improvement.

Fixed-input public CPU operation diagnostics; milliseconds

case

operation

A ms [process range]

B ms [process range]

B/A descriptive

max vector error/bound

max scalar error/bound

dense-1024

apply

0.1267 [0.1262–0.1272]

0.1157 [0.0953–0.1362]

0.9136

0.000740437

0

dense-1024

apply_and_dot

0.1336 [0.1306–0.1365]

0.1153 [0.0944–0.1362]

0.8630

0.000740437

0.000706711

dense-1024

residual_squared_norm

0.1358 [0.1282–0.1434]

0.1258 [0.1152–0.1365]

0.9268

0.000813839

1.05075e-05

dense-2048

apply

1.1198 [1.1178–1.1218]

0.8608 [0.8536–0.8681]

0.7687

0.00105014

0

dense-2048

apply_and_dot

1.0675 [1.0555–1.0794]

0.8565 [0.8492–0.8638]

0.8024

0.00105014

0.000403557

dense-2048

residual_squared_norm

1.0817 [1.0672–1.0963]

0.8544 [0.8497–0.8591]

0.7899

0.00108405

0.00039402

Diagnostic manifest SHA256: 26906357ce437c216c3aa297e6ff56d49653c35a4f12cd43ecd511c4450773b8; archive-snapshot manifest SHA256: d059000ce4ad6ce05a1826b57858102a163c7b4f9447da5bfbdb39830297d6a6; probe source SHA256: 018b5a18be29cb89a1febc9cc343da56e9fa5225931d4a35b93b90eec2ea3821. Compiler: c++ (Ubuntu 16-20260315-1ubuntu1~24~ppa1) 16.0.1 20260315 (experimental) [trunk r16-8100-g3aca3bae8ee].

Preserved diagnostic binaries, archive snapshots and exact commands

side

probe executable

executable SHA256

archive snapshot

archive SHA256

compile command

baseline

build/performance-optimization/cpu/profile-dense-baseline

5c65deef8d804592f65c3011908f748c17d145cdebbe61396fb027596279d428

build/performance-optimization/cpu/archives/baseline.a

190fac6b8e35ab82104b8fb425eaf5cf6060636fe2222f7a58b58630483c3460

/usr/bin/c++ -O3 -DNDEBUG -std=c++20 -fPIC -Wall -Wextra -Wpedantic -Icpp /home/threemonth03/Downloads/Conjugate-Gradient-Method-library/build/performance-optimization/cpu/profile_dense.cpp /home/threemonth03/Downloads/Conjugate-Gradient-Method-library/build/cpu-release/libcg_core.a -o /home/threemonth03/Downloads/Conjugate-Gradient-Method-library/build/performance-optimization/cpu/profile-dense-baseline

candidate

build/performance-optimization/cpu/profile-dense-candidate

457658cacc52fb76cefe94bd374a9671078dbc5a3a9cd33c45a626fb4d258dff

build/performance-optimization/cpu/archives/candidate.a

20bc5a202c4860041479d79c6510e8a7815b84400fd683ecf3cc96decc7d8602

/usr/bin/c++ -O3 -DNDEBUG -std=c++20 -fPIC -Wall -Wextra -Wpedantic -Icpp /home/threemonth03/Downloads/Conjugate-Gradient-Method-library/build/performance-optimization/cpu/profile_dense.cpp /home/threemonth03/.codex/worktrees/cpu-dense-optimization/Conjugate-Gradient-Method-library/build/cpu-release/libcg_core.a -o /home/threemonth03/Downloads/Conjugate-Gradient-Method-library/build/performance-optimization/cpu/profile-dense-candidate

All CPU diagnostic artifacts and formal input hashes

artifact

side

SHA256

input SHA256

diagnostic-dense-1024-1-baseline.json

baseline

1e7673bf397f8e5b970b7accb85244b4f9a14b74a4f3b305e69af8d8a67efcf7

58a504a95c04274e80597b08bb8363241cf0c16ddbb5060b0ec3758065181329

diagnostic-dense-1024-2-candidate.json

candidate

ca61ad5aff01d30f05a25a8ca8e3087dbf7bcb612849d7e76fe45c46c89601e9

58a504a95c04274e80597b08bb8363241cf0c16ddbb5060b0ec3758065181329

diagnostic-dense-1024-3-candidate.json

candidate

3373e2749aa5b7839839c33c4227304edfce5083260b36568f7039ea26b63358

58a504a95c04274e80597b08bb8363241cf0c16ddbb5060b0ec3758065181329

diagnostic-dense-1024-4-baseline.json

baseline

c2f79080a8ac3aa84a56ddbf1129866464f37e3e1718240e1c567102166f954c

58a504a95c04274e80597b08bb8363241cf0c16ddbb5060b0ec3758065181329

diagnostic-dense-2048-1-baseline.json

baseline

cbd12c0a72ace304f1405a422d99fa57e84466faa905ac11020ea8a69d97ee83

074f888f022f56e8ef847862a4554a716ce5571c6da3859a06568e2657f22bc9

diagnostic-dense-2048-2-candidate.json

candidate

b54cfd4a010ca999c8407e680ccf5cfb324fe693d91ba61c370defc20381cfeb

074f888f022f56e8ef847862a4554a716ce5571c6da3859a06568e2657f22bc9

diagnostic-dense-2048-3-candidate.json

candidate

08bf52f3356f886cc4dff7d61f7d507d5b0545dc41117d9e87d77467feec3cf6

074f888f022f56e8ef847862a4554a716ce5571c6da3859a06568e2657f22bc9

diagnostic-dense-2048-4-baseline.json

baseline

8ce80e9f5b8d9084f4f89b1bd770fb1e1ae759b6c9139cb0845c87b46c71174e

074f888f022f56e8ef847862a4554a716ce5571c6da3859a06568e2657f22bc9

Inspection of the preserved portable Release objects already finds SSE2 mulpd/addpd in the baseline; the starting kernel was not scalar-only. The two-row candidate’s bulk loop loads each x pair once, reuses it for both matrix rows, and maintains four independent packed accumulation chains. Four matrix loads remain. The inspected hot column loop has no FP-accumulator spill; ordinary prologue/argument stack traffic and the out-of-line pair-helper call remain. This confirms the generated mechanism, not a DRAM-bandwidth bottleneck or a solver speedup. The object uses no AVX/FMA instructions or architecture/fast-math flags.

Recorded evidence from cpu/codegen-review.txt:

130:    66 0f 10 1c 01          movupd xmm3,XMMWORD PTR [rcx+rax*1]
13f:    66 0f 10 4c 01 10       movupd xmm1,XMMWORD PTR [rcx+rax*1+0x10]
145:    66 0f 59 c3             mulpd  xmm0,xmm3
154:    66 0f 59 c1             mulpd  xmm0,xmm1
161:    66 0f 59 c3             mulpd  xmm0,xmm3
173:    66 0f 59 c1             mulpd  xmm0,xmm1
Inspected source/object identities; compiler commands are recorded in the codegen log

side

source SHA256

object SHA256

baseline

41953efc6109753785defaf3e95a3cddc6467edca0b8cd82875306d6f7d966e0

e4fd8683420601c6d2baa0d89289d86e8ddaa07d1e02486f367b86cf84565314

candidate

661a4f4a4164107d98dc739f8581f4e1f58851a3935d0e4fc546ad0278a8b906

c831ed8072ff1122edbfac4d21cebb30aa33423f6b0988053ea0df34b6f4cbb5

Codegen-review log SHA256: bd316fad03ea6ca93bfec12ff7415bcacaa7332d9e4f6e3cec41a5252b38f574. These diagnostic evidence files remain local ignored artifacts.

Retained CUDA campaign: cuda-api-abba

Local manifest build/performance-optimization/cuda-api-abba/manifest.json, SHA256 39cfdadfca4b409d6806a78b52d5fd759acb72746fdc0a16b8d49c8fdc3a40e3, stopped with 2 retained raw JSON/log pairs. The original audit compared CMake cache declaration suffix UNINITIALIZED versus STRING despite the same compiler path. The replacement frozen helper compares the key before : while still requiring exact compiler paths, flags and runtime controls. Neither of these two original files belongs to a completed four-worker ABBA cohort; they remain retained outside the reported medians/intervals.

These metadata-audit stops and restarted campaigns are disclosed: there is no overall retry-free/no-discard campaign claim. No completed cohort was remeasured to select favorable timing samples.

All retained artifacts from this stopped campaign

artifact

audit status

cohort use

SHA256

failure

cuda-release-cuda-dense-f64-v1-none-prepared-b01-baseline

measured

excluded incomplete ABBA

ae1a536fd0108976daa23024d4dc43569a4ae6c11e95f8af17af8796ef97cb13

cuda-release-cuda-dense-f64-v1-none-prepared-b02-current

failed

excluded incomplete ABBA

9bef771408a4a7d6911b0659caae82b25778fe1dd70bb26237f100296f981cb6

ValueError: Actual hardware/compiler/flags/runtime/thread environment changed across A/B

Retained CUDA campaign: cuda-api-abba-cachetypes

Local manifest build/performance-optimization/cuda-api-abba-cachetypes/manifest.json, SHA256 18457e203ff7656f21b4bd5f3b113a9fe165ea5db11a958b42fe9ce42eaf2dc2, stopped with 17 retained raw JSON/log pairs. This next audit stopped at the first CSR artifact because importing SciPy adds its one-thread library pool, unlike the dense configurations. Its 16 completed dense artifacts contain four full ABBA cohorts and are retained in the composite results. The single incomplete CSR baseline is not pooled; a separately preplanned CSR-only campaign supplies four complete ABBA cohorts. Complete library-pool metadata remains exact within configurations and host/device mode pairs; other environment controls remain exact globally.

These metadata-audit stops and restarted campaigns are disclosed: there is no overall retry-free/no-discard campaign claim. No completed cohort was remeasured to select favorable timing samples.

All retained artifacts from this stopped campaign

artifact

audit status

cohort use

SHA256

failure

cuda-release-cuda-dense-f64-v1-none-prepared-b01-baseline

measured

selected complete dense ABBA

fbe279fe11d992cd2f0b9eb376ef2edd3824b348cad1eb1c1eaa3d3f375bebb0

cuda-release-cuda-dense-f64-v1-none-prepared-b02-current

measured

selected complete dense ABBA

5ccd410ece6c7f14e7dd90c6e65b5db70d0493a6c6f127d2bed28f6ec7532f8e

cuda-release-cuda-dense-f64-v1-none-prepared-b03-current

measured

selected complete dense ABBA

17d52a6dbe631578b160a6afc25eac71b1312a5b0d5357e2fe4673304906e69e

cuda-release-cuda-dense-f64-v1-none-prepared-b04-baseline

measured

selected complete dense ABBA

386a1ec9d8c491ac340a8c776286824bad8ae72efdb70ead996f5491d28cb326

cuda-release-cuda-dense-f64-v1-none-api-b01-baseline

measured

selected complete dense ABBA

c80701930f848c20582f8f6f68ac3840c1443f90bb3967e7e03d21782957cbd5

cuda-release-cuda-dense-f64-v1-none-api-b02-current

measured

selected complete dense ABBA

72eff510d4f9606373d9ec628b2525765d09127db0fca6faa110c8d53df78145

cuda-release-cuda-dense-f64-v1-none-api-b03-current

measured

selected complete dense ABBA

588b9a6f79542f22147ae5e737406af983815d1c9cf6ccb4dc7c5a763c23aaa4

cuda-release-cuda-dense-f64-v1-none-api-b04-baseline

measured

selected complete dense ABBA

ac14f6fceb8ef3f66000701fa157576bc6ee87946d7cb6cf8eac6ff328b42f44

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b01-baseline

measured

selected complete dense ABBA

443700183d9a6f17f3a731a656808759a77e0ee061828bf0b84c3d8cafcc2f08

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b02-current

measured

selected complete dense ABBA

c4073e27d4f13257aaa3faa0c00637e40654c2137075fabbc87442bca6c4fbb7

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b03-current

measured

selected complete dense ABBA

61a81617593b6f0a82483c807591c4e0c0c119471612ca96e29bbcd2bb6f0063

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b04-baseline

measured

selected complete dense ABBA

10a076a68d3511c52bb37949fbc1a094cef86f6ab878413137588764b0031003

cuda-release-cuda-dense-f64-v1-jacobi-api-b01-baseline

measured

selected complete dense ABBA

1f54e566f08027c813c6bad3a967722570f8ee33b730bab0423a0bec32ca3521

cuda-release-cuda-dense-f64-v1-jacobi-api-b02-current

measured

selected complete dense ABBA

30227826cdbf3746649cef7f1eb96f83820afb770195e0d4dfe1a19c8308d236

cuda-release-cuda-dense-f64-v1-jacobi-api-b03-current

measured

selected complete dense ABBA

81564bf4a6d2adfa10c784af35ebeb8409aadabc269dd7e7862444a7c387623c

cuda-release-cuda-dense-f64-v1-jacobi-api-b04-baseline

measured

selected complete dense ABBA

f2dfdf3708b6d25cf0efdc3f306b36887be90d7c01486bc557deae04d3e0b636

cuda-release-cuda-csr-f64-v1-none-prepared-b01-baseline

failed

excluded incomplete ABBA

9cc26cf1bc4e99289ca7db2c0d6ad1f5eee38ab64a656c6b8354f10a102d8fa8

ValueError: Actual hardware/compiler/flags/runtime/thread environment changed across A/B

Source, binary and evidence identities

The compiled revision belongs to each frozen source/binary stage. The collector’s live checkout revision is recorded separately and is never used to relabel the compiled extension. Stage identity SHA256 covers the declared payload manifest; active extension hashes below identify what workers loaded. Raw JSON, logs, manifests, stages and this renderer remain local ignored artifacts under build/performance-optimization/; these paths are not public raw-data downloads and cannot be used for replay from a clean clone.

The measured candidate sources are publicly retained by exact tags; later rebased or merged heads do not replace their compiled identities. Source equivalence of selected GPU/Python files does not imply identical complete source trees after CPU/base changes.

  • benchmarks/cpu-dense-20261016 → cd1f292cd404241647a32cb10deaa6ae187c3e8c.

  • benchmarks/cuda-api-20261016 → 0ade08d30ccdf7d7817cb34338bb73510b52cb2d.

  • benchmarks/cuda-device-20261016 → abffa451c26d96f2a4ee8014333a8581afde46fb.

  • CPU ABBA: build/performance-optimization/cpu-abba/manifest.json, SHA256 12b036695c171b640630276f9ed8493e62cc6b00bc0ee7d52497d89f9bd1aa9b; 32 artifacts / 384 eligible candidate/case results.

  • CUDA API ABBA: build/performance-optimization/cuda-api-abba-complete/manifest.json, SHA256 53af02da6a703670b3681edfa17deb164f5db220812ada1a768494564c12d156; 32 artifacts / 320 eligible candidate/case results.

  • CUDA modes: build/performance-optimization/cuda-device-modes/manifest.json, SHA256 597b402fb5352f1c6479d1745f3bee61a1ac8e9159a305841cd7f950f628e52b; 48 artifacts / 480 eligible candidate/case results.

  • CUDA confirmation: build/performance-optimization/cuda-api-confirmation/manifest.json, SHA256 af329cb54bc05643ef63637fe3791c10e19aaba9bfa95c3eee8eaa053fb4af21; 8 artifacts / 96 eligible candidate/case results.

Frozen compiled stages and active modules

batch

side

compiled source

stage identity SHA256

active module SHA256

CPU ABBA

baseline

b96e455972b937641cec52fc7fc86e75a058f07c

641c23ef0781d8c419b32dd1c3f00e3c38ba5571a70cc4c27982c59981bb0546

_core fd4e3a62e057a70a18ad8dd60656d5fefb51bee559243171d0d84de45516746a

CPU ABBA

current

cd1f292cd404241647a32cb10deaa6ae187c3e8c

408ba1ab032d484acf9450d3cd6d3e5c43cff06d0f94605d12d163994b88fea6

_core 3111f94040afdea2519c5e61023336b8a7ef869c77bf84d7d6c4974eee8cbbff

CUDA API ABBA

baseline

b96e455972b937641cec52fc7fc86e75a058f07c

5bc918dfc424b36d994a383e2736de58942fb68795b092c530cd07d87d116364

_core 7e68ab3075f92801e2c2d53e58405f1cccf4f1dc8d2e3147b65c7159b2ecf853; _cuda 419b4718d7eed0b9544805fe8f89bf4675f29f000794a259a714d4198450454c

CUDA API ABBA

current

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

edb120ea47f8af1e9ee6f91b9b0eb780199fac5c39994e8251a277b808cebeb1

_core 7e68ab3075f92801e2c2d53e58405f1cccf4f1dc8d2e3147b65c7159b2ecf853; _cuda 098d81cbbc4df934b30bf74024059de171d39f5f7ab3a77bb805a29c9e433f26

CUDA modes

candidate

abffa451c26d96f2a4ee8014333a8581afde46fb

37849a4ee29c8a1755b9376633fba92c2a38ef2cc7932c5297f2396449ae1a31

_core 7e68ab3075f92801e2c2d53e58405f1cccf4f1dc8d2e3147b65c7159b2ecf853; _cuda d487e33440807c40cb789434ff40e5f3fbfe58831e3c655c384776b0f984f162

CUDA confirmation

baseline

b96e455972b937641cec52fc7fc86e75a058f07c

5bc918dfc424b36d994a383e2736de58942fb68795b092c530cd07d87d116364

_core 7e68ab3075f92801e2c2d53e58405f1cccf4f1dc8d2e3147b65c7159b2ecf853; _cuda 419b4718d7eed0b9544805fe8f89bf4675f29f000794a259a714d4198450454c

CUDA confirmation

current

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

edb120ea47f8af1e9ee6f91b9b0eb780199fac5c39994e8251a277b808cebeb1

_core 7e68ab3075f92801e2c2d53e58405f1cccf4f1dc8d2e3147b65c7159b2ecf853; _cuda 098d81cbbc4df934b30bf74024059de171d39f5f7ab3a77bb805a29c9e433f26

Frozen runner, worker and comparison helper identities

batch

helper

SHA256

CPU ABBA

build/performance-optimization/ab_runner.py

54668d5459fec4041f125d21d38a6fc73074c5b7dedc539a765a8bde254c7ace

CPU ABBA

build/performance-optimization/worker.py

48d7a1e7f4cd36cb39b17e8f509450dd86e5b403edfd94afd03352d095f22571

CPU ABBA

build/performance-optimization/run_baseline.py

213afaa21053d4f65dea506158dc65d60cc4587033bc388d0efccb362e76233f

CPU ABBA

scripts/compare_performance.py

956d0fc65dc463bb2edfdc800da2dbcbfe3049bc4ae6996844fc0c0c804f6124

CUDA API ABBA

build/performance-optimization/assemble_cuda_abba.py

d684bc77c59edad562c7b142cdaec6a0e8d6035aa2a52e42b2922ae0423fd68b

CUDA API ABBA

build/performance-optimization/ab_runner_csr.py

d5f244785cdf1da014f3ca09a0c97de6d50a3f0a5abd84ec785346e60e314c0c

CUDA API ABBA

scripts/compare_performance.py

956d0fc65dc463bb2edfdc800da2dbcbfe3049bc4ae6996844fc0c0c804f6124

CUDA modes

build/performance-optimization/run_device_modes.py

84e56fc5b688fe6fa91e752dc3bf069cc304d3f771460db3e5bdf4f1d9a7481b

CUDA modes

build/performance-optimization/worker.py

48d7a1e7f4cd36cb39b17e8f509450dd86e5b403edfd94afd03352d095f22571

CUDA modes

build/performance-optimization/run_baseline.py

213afaa21053d4f65dea506158dc65d60cc4587033bc388d0efccb362e76233f

CUDA modes

build/performance-optimization/ab_runner.py

54668d5459fec4041f125d21d38a6fc73074c5b7dedc539a765a8bde254c7ace

CUDA modes

scripts/compare_performance.py

956d0fc65dc463bb2edfdc800da2dbcbfe3049bc4ae6996844fc0c0c804f6124

CUDA confirmation

build/performance-optimization/ab_runner_confirmation.py

c3bde3d70c96cde0a3f407f0e340520a5ec7a2999375ca8a1c1fd4040662a3e4

CUDA confirmation

build/performance-optimization/worker.py

48d7a1e7f4cd36cb39b17e8f509450dd86e5b403edfd94afd03352d095f22571

CUDA confirmation

build/performance-optimization/run_baseline.py

213afaa21053d4f65dea506158dc65d60cc4587033bc388d0efccb362e76233f

CUDA confirmation

scripts/compare_performance.py

956d0fc65dc463bb2edfdc800da2dbcbfe3049bc4ae6996844fc0c0c804f6124

Full fixture specifications and shared input hashes

case specification

input SHA256

{“condition_scale”: 100.0, “diagonal_scale”: 20.0, “dimensions”: 3, “grid”: 10, “name”: “scaled-poisson-3d-10”, “size”: 1000, “storage”: “csr”}

9ec41e8562ee6a9fd198f544bd57d73e4ab336d5fbfc0e325ac1a3af7dd94a14

{“condition_scale”: 100.0, “diagonal_scale”: 20.0, “dimensions”: 3, “grid”: 6, “name”: “scaled-poisson-3d-6”, “size”: 216, “storage”: “csr”}

4e02a84a1bf5d5ca9405bb22428d7c4b17b9ae9a3e6cfca2b273dc8be2fd8b79

{“condition_scale”: 100.0, “diagonal_scale”: 20.0, “grid”: 16, “name”: “scaled-poisson-2d-16”, “size”: 256, “storage”: “csr”}

2c63599a62a84ed1a3a927453cf93e257911915078adde48692665ac04946bed

{“condition_scale”: 100.0, “diagonal_scale”: 20.0, “grid”: 32, “name”: “scaled-poisson-2d-32”, “size”: 1024, “storage”: “csr”}

3781fb80b92c567cb96f05581efc9496448112ddefab34d592a5a0e5a89f17a5

{“condition_scale”: 100.0, “grid”: 128, “name”: “poisson-128”, “size”: 16384, “storage”: “csr”}

366658110507894737aae729348095b3103c569c950fba3bf3c69a3f05205149

{“condition_scale”: 100.0, “grid”: 16, “name”: “poisson-2d-16-neutral”, “size”: 256, “storage”: “csr”}

97964de69d5bd0a4d355aca03f133609c86f1dd48213a14ab1bd558d305b4ff7

{“condition_scale”: 100.0, “grid”: 32, “name”: “poisson-32”, “size”: 1024, “storage”: “csr”}

2be39617e771847e425d64a8d997d0eea8942b930852010d2ac2c83bb3e26ab7

{“condition_scale”: 100.0, “grid”: 64, “name”: “poisson-64”, “size”: 4096, “storage”: “csr”}

366644870e9d921500fcf8ec3dc21b6daa83afdc9d3482e3846feb816df2483d

{“condition_scale”: 100.0, “grid”: 8, “name”: “poisson-8”, “size”: 64, “storage”: “csr”}

c42223d3f75a5c3b4637a56319aec5e0c74ac30f9e81647f0008ae311c362c71

{“condition_scale”: 100.0, “name”: “dense-1024”, “size”: 1024}

58a504a95c04274e80597b08bb8363241cf0c16ddbb5060b0ec3758065181329

{“condition_scale”: 100.0, “name”: “dense-2048”, “size”: 2048}

074f888f022f56e8ef847862a4554a716ce5571c6da3859a06568e2657f22bc9

{“condition_scale”: 100.0, “name”: “dense-256”, “size”: 256}

96f633f1697698d7e55c0e06b38ab801460f1ba1aa3909deaae939aa1d2e6274

{“condition_scale”: 100.0, “name”: “dense-64”, “size”: 64}

e8985fd6c5ed371b92931d8ff1bbddf1a718eeeebd399f5ca2a62a45255e4cb6

Complete raw artifact inventory; no numerical sample removed

batch

artifact

SHA256

bytes

compiled revision

collector live revision

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-b01-baseline

4d953940570b5ce79e849db2d9695516a42f047781c1a2a8728df30c6792ad26

41546

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-b02-current

d7814dc57a8f67ac6338e05ed34539af174646bd47a74aa7e301565ae1819afd

41542

cd1f292cd404241647a32cb10deaa6ae187c3e8c

cd1f292cd404241647a32cb10deaa6ae187c3e8c

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-b03-current

3b0c701a1bb1479cb15dff7dabc1b4a1e3601c998f8a0cc07b484cef2ef1d384

41572

cd1f292cd404241647a32cb10deaa6ae187c3e8c

cd1f292cd404241647a32cb10deaa6ae187c3e8c

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-b04-baseline

f41cb617a6ae456e9cfd3a594f582bdf25147a48cb951675e48afe176c2e0025

41538

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-b01-baseline

7dc60c418654fe7107e78a9c7297f93a8940144615b8fdac7a5b3f5a45418c44

41348

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-b02-current

042624eb7191e5022c7cae4a66cd469b0fff702aa6ddec87b3870d95e5e16670

41329

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-b03-current

99af435753f13e7c0ac36370f383fc24e27a2f8a57f830143bd9bf45420d3400

41326

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-b04-baseline

696a16750b2cccfdfc025dc6ae3cd365fc7219689f62414849508acb5eab0f3c

41348

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-b01-baseline

63b26b76c966b2bb68c8a04a4b09d932a026c6221a3ea27ea1021a7f203b2ca4

41340

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-b02-current

30390c0958217548778277ed4f5fcb3419c644e71a3494cad8381aab2662252c

41345

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-b03-current

bdc6879250f7bc61620b7a0f465219464db23298feb60233022502e6b2335e37

41345

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-b04-baseline

35f62590c46cb34de766a21008aa407f5436dd8da3ea5c1e01e835adc4759848

41329

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-b01-baseline

f3b751f1492510b9fa88f945cd7901b31002dd533af307d8af0a8a9570d7b1cd

41143

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-b02-current

69f36b1f2af1c2f757d8c5d7bd24421cfcde435bcd1157467f2e178a471504ff

41146

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-b03-current

918dcda190e8a434cef2bbdccc8b2306bc94312f9ab54ba9b217c77b0a2d889a

41154

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-b04-baseline

803f859ae7c8214bdf7c14d8ead5e4cd5812b165195330bfd0bb417fd39e0b54

41139

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-unfused-b01-baseline

232b343a42885fcdbab52f03d82839aa0b7cf8748a77af6896717816543f538f

41558

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-unfused-b02-current

8f97790fd5bbd0fa070c8211da84b826ab2f0339edcf3c2eed4d413abf9d6d56

41567

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-unfused-b03-current

f06d75995bc7dba54dd5491ce7bf601010f2b39ad8608d9119cfced28805a362

41586

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-prepared-unfused-b04-baseline

eab491de0922bc43a340d1fb26bc1f92624156fe70d84f046b9684a90326a291

41568

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-unfused-b01-baseline

2306b00c5d4346a503744c9471e3f5f2b6e9d7fc6169fea42c7300e5656c17f7

41357

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-unfused-b02-current

46ac6860a7b8984037ae9110c27bb8627a0b93ff3f0b9d749c0d7edd5ef69d07

41353

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-unfused-b03-current

2ee0c697d828665040c80bfd890699f8e0e812aa888932913117742d11070d28

41351

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-none-api-unfused-b04-baseline

6fba431381178306ab14db3567ad49d11f95e4e74f33fcb4d6a70535ae126879

41346

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused-b01-baseline

5edfc807a4393b84645dab46d732c376d3b29357a63890f6dfc38b8fe9409e7e

41337

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused-b02-current

9e5dfbf034a9c9a9d8730b4a0d8844b863eebbd8595a733a004e76bea0e5fabc

41340

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused-b03-current

fd0f6e153d2ff2ef80c987894b5832a953f94707507dd9a1de835d0063792549

41342

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused-b04-baseline

af4bf57a6c395fe05a521d7aff7295fcafd43ad345f94aec41562b78898e5f92

41336

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused-b01-baseline

e36044bcf72462ee34c448240f83366501d9c54b99a8d3e127572ca6e8e2da03

41151

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused-b02-current

01fb3b597f83a603de6fb949d44bb8cef65582d3cab8f7406c2f7924c7d8ce21

41158

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused-b03-current

9d590a7abc74da0a37fddda4fc57c842782b622c228e570395a51ff28b46a448

41152

cd1f292cd404241647a32cb10deaa6ae187c3e8c

ae5449a128c5b14ce4ec7021bbfa29ef352bf521

CPU ABBA

cpu-release-cpu-dense-f64-v1-jacobi-api-unfused-b04-baseline

4d9feb8cc692c41d920c4879de40423e7737691af40a8714e8a7cbf710cddbc9

41149

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-prepared-b01-baseline

fbe279fe11d992cd2f0b9eb376ef2edd3824b348cad1eb1c1eaa3d3f375bebb0

55228

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-prepared-b02-current

5ccd410ece6c7f14e7dd90c6e65b5db70d0493a6c6f127d2bed28f6ec7532f8e

55219

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-prepared-b03-current

17d52a6dbe631578b160a6afc25eac71b1312a5b0d5357e2fe4673304906e69e

55219

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-prepared-b04-baseline

386a1ec9d8c491ac340a8c776286824bad8ae72efdb70ead996f5491d28cb326

55229

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-api-b01-baseline

c80701930f848c20582f8f6f68ac3840c1443f90bb3967e7e03d21782957cbd5

55199

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-api-b02-current

72eff510d4f9606373d9ec628b2525765d09127db0fca6faa110c8d53df78145

55190

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-api-b03-current

588b9a6f79542f22147ae5e737406af983815d1c9cf6ccb4dc7c5a763c23aaa4

55190

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-none-api-b04-baseline

ac14f6fceb8ef3f66000701fa157576bc6ee87946d7cb6cf8eac6ff328b42f44

55199

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b01-baseline

443700183d9a6f17f3a731a656808759a77e0ee061828bf0b84c3d8cafcc2f08

54984

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b02-current

c4073e27d4f13257aaa3faa0c00637e40654c2137075fabbc87442bca6c4fbb7

54972

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b03-current

61a81617593b6f0a82483c807591c4e0c0c119471612ca96e29bbcd2bb6f0063

54972

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-prepared-b04-baseline

10a076a68d3511c52bb37949fbc1a094cef86f6ab878413137588764b0031003

54983

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-api-b01-baseline

1f54e566f08027c813c6bad3a967722570f8ee33b730bab0423a0bec32ca3521

54961

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-api-b02-current

30227826cdbf3746649cef7f1eb96f83820afb770195e0d4dfe1a19c8308d236

54949

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-api-b03-current

81564bf4a6d2adfa10c784af35ebeb8409aadabc269dd7e7862444a7c387623c

54951

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-dense-f64-v1-jacobi-api-b04-baseline

f2dfdf3708b6d25cf0efdc3f306b36887be90d7c01486bc557deae04d3e0b636

54961

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-prepared-b01-baseline

692406810c131ae2a256961d5c2235b301505fba973c312af2236a440208c9e8

43634

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-prepared-b02-current

a906bb452dbc0f51b2a41a1be96ca19922a936010c4784d293669d5fa2047dad

43624

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-prepared-b03-current

40c934c27c4a57d9baa210f19e6794a4a87a39a47e99624dfd539160b246accc

43623

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-prepared-b04-baseline

0c4cffb8b9108ed78896b9b8302826bf7da25055a971c5650b76a06fc835687a

43634

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-api-b01-baseline

a6feaf2080309a292c3c309b82cbf7172f4d406b47c21ec482f68cce30a9bfe5

43614

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-api-b02-current

1c5824f91775b359877b7028c4876e82de5aaf70ee321e35c8e0f773b65a580d

43606

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-api-b03-current

aacd54a87719efcd50c4a1a35c8cb31098d19053c50d85a52f5558294b7c0778

43607

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-none-api-b04-baseline

721cc7b6c226bfc3eb8e16aa20d946999258ea4ada28f121dac20795b075a072

43614

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-prepared-b01-baseline

815b6bad95d9bb5582bbd94de290509da3f2782baec12ba4b9edfc0775244bc6

43764

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-prepared-b02-current

fab1f41368f781a4d7b6058a39750019353630e0ae597de21c9f002082d79865

43748

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-prepared-b03-current

ea6c73311a1523d922772fdb0f0c6ea739ee1be61155417ea5ab061118f0d340

43746

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-prepared-b04-baseline

f117e0b88285bda61b5e1ec4355b8945ad32415c43ed2f9fddc920777d43a0ad

43756

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-api-b01-baseline

054dbd9127a27551b36d557e9e08c48105f027e66eac5a0f4674c38272c5b13a

43744

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-api-b02-current

ff6ab76545a0233e25459d979ec868bd8e197b57d7baf9c0a7fc39f5b486829d

43737

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-api-b03-current

e78a643eab67d5caa92156fac14200e9a38098ac88402bab007ade865926d62e

43736

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA API ABBA

cuda-release-cuda-csr-f64-v1-jacobi-api-b04-baseline

88f5e1dbd6ede4e58ad82e2c5896e15a3e397ea77f960cd34ecfcbe4e878b648

43743

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA modes

cuda-release-cuda-dense-f64-v1-none-prepared-host-r01

7ff8f7faf9ec5476039f5367c50a6e71006b78aac2ec5e6537bac602983a4f30

55929

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-prepared-device-r01

ebb6cb2a9c81b7c2f757dec7be75cde57209557956d7dc5f54fb447add277bea

56348

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-api-host-r01

5964c4b6cb2c5703afba02f4c6ea0c6a0a52a9657451f0fa382edca3248429b0

55901

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-api-device-r01

8e5ac380b8bf33ae9de0cb8e863a7418194559995d09376617dce28f19e313f6

56318

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-prepared-host-r01

431c52d93556d26efa44a9fbf59c91ff4f66e96bf52a726c2d81dbb81d1664a0

55682

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-prepared-device-r01

92a249419cea07d72d7eb1db90a4bd5e1cce7dc0aa364d5711006cba27726cad

56100

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-api-host-r01

0cadce59496f28b4e641ab32e59792c22795809c7d08d5a8ff93eba30ecfe99e

55662

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-api-device-r01

452a3600a7744f3d2798695db59a3d83fcb53582881e0fb46e84337d99e75bbc

56080

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-prepared-host-r01

851e93a83b8ceb8a8cb698ee3e5cb96082e07405ca886786af12cbf62d7477c1

44183

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-prepared-device-r01

6fdbf61d5e5d39b47b7354a2f0c2d716cb24ea9aec9fc4e82ee5201c019ea0a1

44412

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-api-host-r01

76bceeceff8993d50547e517d6e3f95846bac2354e17a4ce5fba4edd6b3b8085

44162

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-api-device-r01

633bad627d068c4d6eb5910ae3b6869bbbe3d858c992d6c4b20c185d16f60e2f

44393

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-prepared-host-r01

284ff70d4b4e21d27e8cb2cd9001d85d5ef13b900ba92cf75dae1d096b327aab

44309

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-prepared-device-r01

dd6e597eb61c1c1d6ca081fa90671e97043fd9d6f7b1f8448016035efe59bf5f

44537

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-api-host-r01

06e748ad2a07b7f861ae4acfe69a36ae30d1115a11eebece5060c7ad70fcca20

44295

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-api-device-r01

3724756048d99d1e8dc8100eade8328c8b1ae997f5bb61dcd6ed195c02ab0b92

44522

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-prepared-host-r01

30f25cc0a486fb5fb27c16f23ae02f57982bfcbeb004f17bc67f81bc1f77b5e4

52843

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-prepared-device-r01

178a5c5aaf3d902494436585303fb4a19d99ee4655b64bd906fd803c73222076

53090

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-api-host-r01

c7a2d3ad3ae14fd47c2ce6c42edb010ea2217cd11d45ca4c95de7f2003500abc

52799

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-api-device-r01

2b8a86686ab47cf8c9d82963573c80ecf72c13245853b970d0980213f7db9d21

53073

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-prepared-host-r01

fe7c621591aa5993981f6929aac9c8ef109b798de3aa345b4bbb9920dd1bc91c

52702

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-prepared-device-r01

698bcdfb67912d34fb41d912f8c5f896715fbd1ac64d40e61386e038b6802dc3

52986

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-api-host-r01

97764f18714985821c22da30b38c6a7820bcd4f31ebad2bdfaa3c59d1f361c61

52691

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-api-device-r01

cee644c6757fb1b0f985ce38628e715ca4f54c533c50a11137b9d3023ad16a37

52978

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-api-device-r02

8b62eecac1879f98b7d93ae5f236d1b4bcd569e757c846ceaea408bbccc870fd

52981

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-api-host-r02

7019be9694d0a8c66c8c311799ae8a495bcada113115f1564b4137144cd3a0a7

52705

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-prepared-device-r02

e48a38140484d46ee10225a7f0da24cc40389d24c3ba740dc79ea2ea88bd6bd0

52984

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-jacobi-prepared-host-r02

8de09dced24ff16f59ace5960f2eb72425d76e0911f170e46bc87d76a96ffef1

52705

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-api-device-r02

47b72ac0cf29db691163a68a3eaad7ba87288b1ac0d156c0836cf39c9dd71451

53077

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-api-host-r02

24504f64759d40e68fdb09e42f1f37a7a9bdd9dd45cf9261fd348fa0033c9a87

52809

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-prepared-device-r02

6802aa2c5a8cc83d5a59a2648df913053180e193b1f790ab0eca58f40c38378f

53090

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-sparse-solvers-none-prepared-host-r02

7faf9fe86225ccad9f5d4bfb3f484b22feded0454795d25362f2e9376a36d7c5

52848

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-api-device-r02

c257e97783e669083e0ab7d171ae16f614581efdc122c7928a11d6cf1e4bccc4

44523

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-api-host-r02

65fdd7bad7d0d00791ba07e1e69391689626c061b2152ad5782cd58b4a0c713d

44335

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-prepared-device-r02

9e4ec5db4867c613bf577f012c95548600188384db0c454db3ccd0700878592d

44580

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-jacobi-prepared-host-r02

089d9ab3411891381a1c967e671866c59e134556a598fb721733c8aff64afc36

44314

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-api-device-r02

1ef474711f95c2781ac26142c7ddf2d02ea12bcf0530bef1e6332d318f835f54

44392

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-api-host-r02

e757715436a4d27806a151f40d2a9916147b61fb772220ffbe5a6abed031a161

44163

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-prepared-device-r02

8c358f8996b305b5a12ec25c6fc9fbd00ac7d3c757b24dbaeef1c33c0e45d613

44400

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-csr-f64-v1-none-prepared-host-r02

84505f65567e97cbd0c446fe5c6ab6f22b61164a12e7697ff7d8184fd9c92ee3

44181

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-api-device-r02

005b751e05fbc30d7c1697e2b17ed3d6ce47e3688d295ca495e642d4e7ebf2f9

56078

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-api-host-r02

5dd4eba388eff7c74c027fe49d01527121f19aeb54dfb5c19c6fb94b1139ef7c

55660

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-prepared-device-r02

f6f094d3c1f86b3a79ea94dd648f64771f2edbb9e5c5fcb2c77e54264bb8ccbb

56100

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-jacobi-prepared-host-r02

5259af75bac099bf80ee9585e61f03f7637a098f79d671edd363d0e6596bd5ed

55681

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-api-device-r02

e043e3498fe5c615b23ff3e01d00e82f6d2e8b4b205b2f93abf5ecdc64a5d9d3

56318

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-api-host-r02

9861aceadb76f842877503196dd9512212a0f4e0b50a069ee09f78d067c931ad

55900

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-prepared-device-r02

5d78dd5d0a172e024278e1c3d695f92615eeb4df4f1f9f5299b4b765b571acfd

56346

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA modes

cuda-release-cuda-dense-f64-v1-none-prepared-host-r02

3a6c8548bd6d16a4969274f7b2fc82cff7e412f109833ecc7c179d1262bf837b

55928

abffa451c26d96f2a4ee8014333a8581afde46fb

7369578026bc69095ea249a8d52896e4dcccb6c0

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b01-baseline

2edb13894a3f1934f008956fc0ea849a2695309b639bb7247f05d236e55b9be5

55230

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b02-current

a18926ffbf787fbe68b65217007e7d3a35c27d2738fc24a291808addbbb62124

55219

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b03-current

0085a48f5fdfcc60507044afb9dd5be443a950024296ab9c724365af585b7082

55221

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b04-baseline

b1d9131f70e852b90f070e93cc5efeb49a02069113c19decb7ca6b75f213343b

55229

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b05-current

017bb391a0f7b6f86c63c3fd7fe1a3e7e6984efb1e27b8fe83379c0ef4f72f69

55218

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b06-baseline

7083966fb37dbeded596072ecd1d33c9d2e3403fce22a9070333c9394cc5f0f3

55230

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b07-baseline

50520b192abbe08d2208026e238200fa53385582cb5a349b3f8314056dcf0a59

55229

b96e455972b937641cec52fc7fc86e75a058f07c

a27e010b7297fbb7e9143c888ea09efff815af94

CUDA confirmation

cuda-release-cuda-dense-f64-v1-none-prepared-b08-current

8111196d9274b5c22b78f11ee5f1f23b37662170b4fa3fb435a764d30159af19

55220

0ade08d30ccdf7d7817cb34338bb73510b52cb2d

ac1ff6e1956c7aec33a7d828a28a29c18a27a57b

Reproduce the configurations with public commands

First follow Build, test and document for the project-local CPU/CUDA virtual environments and pinned toolkit. Keep the same package locks, compiler paths, CUDA 12.8 toolkit, sm75 target and visible physical GPU for both sources; build and test all sources before quiet measurements. The commands below use only the public Make/cgbench interfaces. Rebuilding a revision produces a new binary identity and timing evidence, rather than reproducing the original binary hashes. The local ignored stages, runner, manifests and raw replay files are not installed or public APIs.

Use detached source checkouts at the exact compiled revisions in the identity table above. Keep separate absolute BUILD_DIR paths for each source, and use the same root-local environments/toolkit. For example:

ROOT=$PWD
OUT="$ROOT/build/reproduce-optimization-20261016"
mkdir -p "$OUT"
export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1
export BLIS_NUM_THREADS=1 NUMEXPR_NUM_THREADS=1 VECLIB_MAXIMUM_THREADS=1
export OMP_DYNAMIC=FALSE MKL_DYNAMIC=FALSE
export PYTHONNOUSERSITE=1 PYTHONDONTWRITEBYTECODE=1
export CUBLAS_WORKSPACE_CONFIG=:4096:8
unset CUDA_LAUNCH_BLOCKING
git fetch origin refs/tags/benchmarks/cpu-dense-20261016:refs/tags/benchmarks/cpu-dense-20261016 refs/tags/benchmarks/cuda-api-20261016:refs/tags/benchmarks/cuda-api-20261016 refs/tags/benchmarks/cuda-device-20261016:refs/tags/benchmarks/cuda-device-20261016
test "$(git rev-parse refs/tags/benchmarks/cpu-dense-20261016)" = cd1f292cd404241647a32cb10deaa6ae187c3e8c
test "$(git rev-parse refs/tags/benchmarks/cuda-api-20261016)" = 0ade08d30ccdf7d7817cb34338bb73510b52cb2d
test "$(git rev-parse refs/tags/benchmarks/cuda-device-20261016)" = abffa451c26d96f2a4ee8014333a8581afde46fb
git worktree add --detach "$OUT/cpu-abba-baseline-source" b96e455972b937641cec52fc7fc86e75a058f07c
git worktree add --detach "$OUT/cpu-abba-current-source" cd1f292cd404241647a32cb10deaa6ae187c3e8c
git worktree add --detach "$OUT/cuda-api-abba-baseline-source" b96e455972b937641cec52fc7fc86e75a058f07c
git worktree add --detach "$OUT/cuda-api-abba-current-source" 0ade08d30ccdf7d7817cb34338bb73510b52cb2d
git worktree add --detach "$OUT/cuda-modes-candidate-source" abffa451c26d96f2a4ee8014333a8581afde46fb

Build each source once with make build and the same variables shown below before starting the ABBA or forward/reverse sequence. Each subsequent make pyprof launches one fresh numerical Python worker and performs an up-to-date build check; stop if it would compile during measurement. For CUDA, the C++ and nvcc host compiler are explicitly GNU 13; CPU uses the recorded GNU 16 compiler. Each configuration template is listed below; use a fresh output file for every launch.

For each ABBA configuration, run its template four times with source/build selector A, B, B, A, sequentially. SRC_A/BUILD_A and SRC_B/BUILD_B point to its baseline/current detached sources and separate builds above; choose SRC/BUILD for that launch. Set RUN=1, then 2/3/4, so all raw artifacts survive. For explicit modes, SRC/BUILD select the one candidate stage: execute all 24 templates in listed order for RUN=1, then their exact reverse for RUN=2. This reproduces 32 CPU + 32 CUDA ABBA + 48 mode workers, excluding the separately retained stopped CUDA attempts.

CPU ABBA command templates

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-none-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-none-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-jacobi-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-jacobi-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-none-prepared-unfused-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --no-fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-none-api-unfused-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --no-fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-jacobi-prepared-unfused-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --no-fused --implementations native,numpy-out,torch-eager-out'

taskset -c 0 make -C "$SRC" pyprof PRESET=cpu-release \
    PYTHON="$ROOT/.venv/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/c++ \
    PYPROF_SUITE=cpu-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cpu-release-cpu-dense-f64-v1-jacobi-api-unfused-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --no-fused --implementations native,numpy-out,torch-eager-out'

CUDA API ABBA command templates

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-prepared-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-api-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

CUDA modes command templates

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-none-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-dense-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=3 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-dense-f64-v1-jacobi-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,cuda-cublas,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-none-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=cuda-csr-f64-v1 PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-cuda-csr-f64-v1-jacobi-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-none-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-none-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-none-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-none-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner none --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-jacobi-prepared-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=prepared \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-jacobi-prepared-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-jacobi-api-host-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0'

taskset -c 0 make -C "$SRC" pyprof PRESET=cuda-release \
    PYTHON="$ROOT/.venv-cuda/bin/python" BUILD_DIR="$BUILD" JOBS=2 \
    CMAKE_ARGS=-DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \
    CUDA_ROOT="$ROOT/.deps/cuda-12.8" CUDA_HOST_COMPILER=/usr/bin/g++-13 CUDA_ARCHITECTURES=75 \
    PYPROF_SUITE=sparse-solvers PYPROF_THREADS=1 PYPROF_SCOPE=api \
    PYPROF_ROUNDS=30 PYPROF_REPETITIONS=1 \
    PYPROF_OUTPUT="$OUT/cuda-release-sparse-solvers-jacobi-api-device-r$RUN.json" \
    PYPROF_ARGS='--warmups 3 --seed 20261015 --algorithm standard --rtol 1e-8 --atol 1e-12 --maxiter 2000 --residual-refresh 50 --preconditioner jacobi --fused --implementations cuda-native,torch-cuda-eager --device cuda --cuda-device 0 --cuda-execution-mode device'

For each completed ABBA configuration, supply both distinct baseline files and both distinct current files to the unchanged strict comparator:

PYTHONPATH="$BUILD_B/python" "$ROOT/.venv/bin/python" \
    "$SRC_B/scripts/compare_performance.py" \
    --baseline "$OUT/config-r1.json" "$OUT/config-r4.json" \
    --current "$OUT/config-r2.json" "$OUT/config-r3.json" \
    --max-regression 0.05 --bootstrap-samples 10000 --seed 20261015 \
    --output "$OUT/config-comparison.json"

Replace config with its exact configuration name. A nonzero exit status is expected for regression, inconclusive or incompatible-work reports; retain the report and raw data. Never compare host/device modes with this command, suppress a changed-count row, or divide timing by work counts to manufacture a pass. Existing raw replay requires the local raw file plus its matching compiled source and runtime; a clean clone must generate fresh measurements with the commands above.

The separately disclosed focused confirmation uses the same unpreconditioned prepared dense CUDA template and unchanged compiled source pairs. Execute it once in A-B-B-A-B-A-A-B order, with fresh outputs named confirmation-r1.json through confirmation-r8.json. Retain all four cases and all three candidates in every artifact. Its standalone four-block report is diagnostic; the pooled strict comparison must also include both original blocks per side, never replace them. For this one configuration:

PYTHONPATH="$BUILD_B/python" "$ROOT/.venv/bin/python" \
    "$SRC_B/scripts/compare_performance.py" \
    --baseline "$OUT/config-r1.json" "$OUT/config-r4.json" \
        "$OUT/confirmation-r1.json" "$OUT/confirmation-r4.json" \
        "$OUT/confirmation-r6.json" "$OUT/confirmation-r7.json" \
    --current "$OUT/config-r2.json" "$OUT/config-r3.json" \
        "$OUT/confirmation-r2.json" "$OUT/confirmation-r3.json" \
        "$OUT/confirmation-r5.json" "$OUT/confirmation-r8.json" \
    --max-regression 0.05 --bootstrap-samples 10000 --seed 20261015 \
    --output "$OUT/config-pooled-comparison.json"