CPU/GPU parity

Last changes: Documentation changelog

Parity means the CPU and GPU execution lanes of one solver produce the same physical result within per-interaction tolerances, with the rigorous GPU path provably not falling back to host work.

Relaxation parity

The production relaxation contract qualifies the minimizers across lanes. The 2026-07-11 relaxation qualification matrix records:

Coverage

Result

CPU/GPU consistency

6/6 rows, 3/3 pairs passed

FEM PG-BB production benchmark

39 comparison pairs, required coverage 21/21

These results apply to the qualified relaxation workloads; they do not transfer automatically to heterogeneous CUDA material payloads, which fail capability checks instead of substituting a looser path.

Rigorous GPU residency

A real GPU claim requires the strict GPU path to report the device as source of truth and zero host hot-loop traffic:

  • hot_loop_compute_h2d_bytes = 0,

  • hot_loop_compute_d2h_bytes = 0,

  • hot_loop_compute_host_sync_count = 0.

The enforcement gate is scripts/analysis/fem_gpu_benchmark.py --require-gpu-strict-residency, and the interaction consistency preset is scripts/analysis/fem_gpu_benchmark.py --box500-airbox-interaction-consistency-preset (just bench-fem-box500-consistency).

  • Status — scripted; the current qualification rerun in the CUDA-visible managed runtime is still required before strict residency and hosted CPU/GPU field parity are claimed as closed.

What counts as evidence

Compiling CUDA code on a host, loading a CUDA library, or passing a source-only counter check is not parity proof. Parity is claimed only when executed same-workload CPU and GPU artifacts agree within documented tolerances and the GPU run records its device identity.

Control Room crosswalk

Validation pages are inspection-only in Control Room. The UI may expose runtime metadata, fields, tables, or reports for inspection, but it does not create a qualification claim. TODO: frontend support applies to validation workflow authoring and report publication unless a specific control is named. See Control Room capability register.

Python/API crosswalk

Validation is not a standalone Python constructor unless the linked case page names one. Reproduce the exact case, inputs, device, precision, and receipt described by the page; use the referenced API pages for callable signatures.

Physics and bibliography scope

The page either states the governing benchmark model or delegates it to the linked physics/numerical-methods page. Any missing derivation is a documented boundary, not an implicit equation. Bibliography and source evidence remain the authoritative references listed by the validation case.

Source-code index

  • No standalone implementation function is introduced by this validation page. Source evidence is the exact API, managed recipe, runtime manifest, and receipt named by the validation case.