Skip to content

feat: extend CUDA parity matrix and public-operation diagnostics - #2

Merged
ianna merged 15 commits into
mainfrom
ianna/cuda-migration-validation
Oct 27, 2026
Merged

ianna merged 15 commits into
mainfrom
ianna/cuda-migration-validation

Conversation

@ianna

@ianna ianna commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Extend the CUDA migration benchmark harness beyond isolated kernel timings so migrations can be checked against CPU behavior, historical RawKernel implementations, and completed public operations. The initial harness was merged in #1; these are the subsequent additions on this branch.

  • Add a discoverable CPU / RawKernel / cuda.compute parity matrix, selectable by kernel, family or public operation, with explicit missing/unavailable coverage and full-buffer/error comparisons.
  • Measure completed public ListOffsetArray and ListArray operations, excluding JIT warmup and input/reference preparation, while retaining parity failures and continuing other cases.
  • Add separate dispatch traces, cProfile diagnostics, prepared-stage measurements, chunk/lane tuning experiments, Della launchers and a standalone cuda.compute dispatch reproducer.
  • Regenerate each checkout's CUDA signatures before editable benchmark runs, preventing stale generated RawModule registrations after source updates.

Instrumentation is kept separate from unprofiled timings. CUDA-event intervals include host submission gaps and are not labeled pure device execution time. The comprehensive matrix does not claim exhaustive public API coverage or substitute for Nsight synchronization/allocation measurements; coverage gaps are explicit.

Validation: 194 local tests passed for this revision; batch scripts passed syntax checks. Della runs have exercised public-operation comparisons and diagnostics. The latest public ListArray result (run 16325085) passes every candidate case while exposing missing historical-baseline jagged bounds errors. A direct before/after comparison of the latest Awkward jagged scratch optimization is still queued; no performance benefit from that optimization is claimed here.

Related upstream work: scikit-hep/awkward#4481, scikit-hep/awkward#4483 and scikit-hep/awkward#4484. Results describe measured revisions, not a blanket performance claim for all migrations.

AI assistance was used to implement, test and document this contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant