Skip to content

CPU-only host-ASAN presubmit coverage for audited ROCm component tests #12091

Description

@sa-faizal

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

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions