Feature request
Add CPU-only host AddressSanitizer presubmit coverage for explicitly audited host-side test suites in rocm-libraries and its TheRock-managed dependencies. Device code remains outside host-ASAN scope and continues to be validated by the existing non-ASAN GPU lanes.
Motivation
Running proven host-only suites on the existing CPU build-runner class provides earlier memory-safety signal without consuming GPU runners or duplicating device validation.
Proposed behavior
- Provide an opt-in, label-gated presubmit lane and a manual full-matrix dispatch while rollout remains staged.
- Reuse the existing AWS Linux build-runner class for both artifact production and CPU-only execution; do not request GPU devices.
- Admit components through explicit positive allowlists. New tests must not enter host-ASAN implicitly.
- Require every native executable to directly load the shared Clang ASAN runtime; remove inherited
LD_PRELOAD.
- Fail on missing artifacts, empty selections, unexpected skips, inventory/count/digest drift, sanitizer findings, or nonzero subprocess exits.
- Keep LeakSanitizer enabled for native execution and separately verify that admitted suites do not open
/dev/kfd or /dev/dri.
- Retain parallel non-ASAN GPU testing for device functionality.
Initial phased scope
- Phase 1: rocRoller, TensileLite, Origami, hipDNN, hipDNN HIP kernel provider.
- Phase 2: rocRAND, hipRAND, rocSPARSE, StinkyTofu.
- Phase 3: rocPRIM, rocThrust, rocALUTION.
- Phase 4: Composable Kernel, hipDNN MIOpen provider, hipDNN hipBLASLt provider.
- Phase 5: hipFile, rocprofiler-compute, rocprofiler-sdk, ROCr tests.
- Phase 6: HIP tests, hipDNN integration/install, AQLProfile, rocSHMEM, and expanded ROCr coverage.
Components without a meaningful CPU-only seam remain explicitly deferred with a recorded reason; this request does not weaken their existing GPU coverage.
Acceptance criteria
- All admitted component jobs run on CPU-only workers and request no GPU devices.
- Direct ASAN linkage, positive inventory admission, LeakSanitizer, and zero-device-access checks are fail closed.
- Artifact production includes only the required test/runtime closure.
- Existing quick, standard, full, and non-ASAN GPU behavior remains unchanged.
- A complete presubmit run passes all producer, sanity, artifact-validation, component, and summary jobs.
- Rollout can be promoted phase by phase after stability and cost are established.
Validation
Full Phase 1-6 run 34920409167 is green: 6/6 producer builds, artifact validation, 1/1 sanitizer sanity, and 24/24 CPU component jobs passed with no failures or cancellations. Composable Kernel specifically passed 409/409 cases across 18 directly ASAN-linked executables.
Related draft implementation
Feature request
Add CPU-only host AddressSanitizer presubmit coverage for explicitly audited host-side test suites in
rocm-librariesand its TheRock-managed dependencies. Device code remains outside host-ASAN scope and continues to be validated by the existing non-ASAN GPU lanes.Motivation
Running proven host-only suites on the existing CPU build-runner class provides earlier memory-safety signal without consuming GPU runners or duplicating device validation.
Proposed behavior
LD_PRELOAD./dev/kfdor/dev/dri.Initial phased scope
Components without a meaningful CPU-only seam remain explicitly deferred with a recorded reason; this request does not weaken their existing GPU coverage.
Acceptance criteria
Validation
Full Phase 1-6 run 34920409167 is green: 6/6 producer builds, artifact validation, 1/1 sanitizer sanity, and 24/24 CPU component jobs passed with no failures or cancellations. Composable Kernel specifically passed 409/409 cases across 18 directly ASAN-linked executables.
Related draft implementation