Repository navigation
Conversation
|
partially fixes #3793 |
Codecov Report❌ Patch coverage is
❌ Your patch check has failed because the patch coverage (71.58%) is below the target coverage (98.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files
|
|
The documentation preview is ready to be viewed at https://preview.awkward-array.org/PR4483/ |
|
GPU validation and performance update for Canonical parity passed and the kernel measurements completed. The benchmark harness is in ianna/awkward-matrix#1. JIT warmup is excluded; timings are unprofiled medians, with trace/allocation measurements collected in separate passes. Completed public operationsThese measurements include the public call, result construction, stream completion, and deferred-error draining on both revisions. CPU reference checks and input preparation are outside timing. Five repeats of 50 calls follow 20 warmup calls per workload.
Long-list public Kernel-level results and tradeoffsThe separate kernel comparison already includes completion/error draining in
All measured public cases are below the public report's 10% completed-latency regression threshold. The separate kernel review gate still fails for the remaining Benchmark runs: kernel comparison This summary and the benchmark tooling were prepared with AI assistance; the reported numbers come from the GPU runs supplied by Ianna. |
Migrate five ListOffsetArray CUDA kernel families from RawKernel dispatch to cuda.compute: flatten_offsets, toRegularArray, rpad_axis1, drop_none_indexes, and reduce_nonlocal_outstartsstops_64. Remove their raw registrations and sources, preserving canonical CPU errors, partial output, untouched buffer capacity, and current-stream execution.
The deprecated reduce_local_nextparents_64 converter has no live layout callers and is excluded from this migration and its performance gate. Its original raw source, registrations, canonical specification, existing cases, and CPU ABI remain available. No replacement or new converter tests are included.
The nonlocal-range implementation preserves interior holes and uses a host-known segment-width hint. Materialize positions before segmented reduction to avoid the stateful iterator path implicated in launch failures. A fresh-process CUDA smoke step localizes nonlocal-range failures.
Align the drop_none_indexes reference with the bounds check already present in C++, document contracts, add canonical cases, regenerate signatures/tests, and provide focused CPU/GPU checks and benchmarks. Padding widens narrow input offsets on-device before invoking the canonical matching-type length kernel, and its scan forwards the current CuPy stream.
Validation: 257 focused local checks pass, including padding across signed/unsigned offset widths, empty/nonzero-origin layouts, typetracer forms, and scan stream forwarding. Lint, formatting, generation, and diff checks pass. Actual GPU confirmation and comparative performance measurements remain pending; no speedup is claimed.
Independent main-based branch. Related work: #4464 (nonlocal ranges), #4481/#4484 (returned-KernelError test adapter sets must be combined on merge), #4482 (segment-size-hint synchronization), and #4461 (unused prototypes). Tracking issue: #4463.
No C++ implementation, dependency, awkward-cpp version, or dependency-pin changes.
AI assistance was used for implementation, diagnosis, and validation.