test(rocke): add a launch-path kernarg-packing A/B profiler #10322
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright Advanced Micro Devices, Inc. | |
| # SPDX-License-Identifier: MIT | |
| # Multi-Arch CI ASAN for rocm-libraries | |
| # | |
| # Presubmit and on-demand ASAN builds. TheRock's configure_multi_arch_ci.py | |
| # automatically selects host-asan for pull_request events (faster, host-only) | |
| # and full asan for workflow_dispatch (comprehensive device-side instrumentation). | |
| # | |
| # For scheduled nightly runs, see therock-multi-arch-ci-asan-nightly.yml. | |
| name: TheRock Multi-Arch CI ASAN | |
| on: | |
| pull_request: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - labeled | |
| workflow_dispatch: | |
| inputs: | |
| linux_amdgpu_families: | |
| type: string | |
| description: "Insert comma-separated list of Linux GPU families to build and test. ex: gfx94X, gfx120X" | |
| default: "" | |
| linux_test_labels: | |
| type: string | |
| description: "If enabled, reduce test set on Linux to the list of labels prefixed with 'test:'. ex: test:rocprim, test:hipcub" | |
| default: "" | |
| prebuilt_stages: | |
| type: string | |
| default: "" | |
| description: "Comma-separated build stages to skip (or 'all' for all stages); artifacts are copied from baseline_run_id instead" | |
| baseline_run_id: | |
| type: string | |
| default: "" | |
| description: "Workflow run ID to copy prebuilt stage artifacts from; required when prebuilt_stages is set" | |
| baseline_repository: | |
| type: string | |
| default: "" | |
| description: "Repository to query for baseline_run_id. Defaults to github.repository for workflow_dispatch." | |
| permissions: | |
| contents: read | |
| actions: read | |
| concurrency: | |
| # Only allow one run at a time for 'pull_request' events. | |
| # Allow multiple runs for 'push' and 'workflow_dispatch'. | |
| # | |
| # `github.workflow`: each workflow gets its own concurrency group | |
| # `github.head_ref`: the branch name (only defined for pull_request events) | |
| # `github.run_id` : fallback, unique for each run | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| setup: | |
| uses: ROCm/TheRock/.github/workflows/setup_multi_arch.yml@df3d451a3c054e14705ddf94e58498e1208df8d5 # 2026-09-08 | |
| with: | |
| build_variant: "asan" | |
| linux_amdgpu_families: ${{ inputs.linux_amdgpu_families || 'gfx94X,gfx950,gfx125X' }} | |
| linux_test_labels: ${{ inputs.linux_test_labels || '' }} | |
| prebuilt_stages: ${{ inputs.prebuilt_stages || '' }} | |
| baseline_run_id: ${{ inputs.baseline_run_id || '' }} | |
| baseline_repository: ${{ inputs.baseline_repository || (github.event_name == 'workflow_dispatch' && github.repository) || '' }} | |
| # Python/PyTorch/JAX builds are not supported with ASAN yet | |
| build_python_packages: false | |
| build_pytorch: false | |
| build_jax: false | |
| repository: ROCm/TheRock | |
| ref: df3d451a3c054e14705ddf94e58498e1208df8d5 # 2026-09-08 | |
| external_repo: '{"repository":"${{ github.repository }}","ref":"${{ github.sha }}"}' | |
| linux_build_and_test: | |
| name: Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} | |
| needs: setup | |
| if: >- | |
| ${{ | |
| needs.setup.outputs.linux_build_config != '' && | |
| needs.setup.outputs.enable_build_jobs == 'true' | |
| }} | |
| uses: ROCm/TheRock/.github/workflows/multi_arch_ci_linux.yml@df3d451a3c054e14705ddf94e58498e1208df8d5 # 2026-09-08 | |
| secrets: inherit | |
| with: | |
| build_config: ${{ needs.setup.outputs.linux_build_config }} | |
| test_labels: ${{ needs.setup.outputs.linux_test_labels }} | |
| rocm_package_version: ${{ needs.setup.outputs.rocm_package_version }} | |
| rocm_deb_package_version: ${{ needs.setup.outputs.rocm_deb_package_version }} | |
| rocm_rpm_package_version: ${{ needs.setup.outputs.rocm_rpm_package_version }} | |
| test_type: ${{ needs.setup.outputs.test_type }} | |
| external_repo_config: ${{ needs.setup.outputs.external_repo_config }} | |
| repository: ROCm/TheRock | |
| ref: df3d451a3c054e14705ddf94e58498e1208df8d5 # 2026-09-08 | |
| permissions: | |
| contents: read | |
| id-token: write | |
| multi_arch_ci_asan_summary: | |
| name: Multi-Arch CI ASAN Summary | |
| if: always() | |
| needs: | |
| - setup | |
| - linux_build_and_test | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout TheRock repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| repository: "ROCm/TheRock" | |
| ref: df3d451a3c054e14705ddf94e58498e1208df8d5 # 2026-09-08 | |
| sparse-checkout: build_tools/github_actions | |
| sparse-checkout-cone-mode: true | |
| - name: Evaluate workflow results | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| run: | | |
| python build_tools/github_actions/workflow_summary.py \ | |
| --needs-json '${{ toJSON(needs) }}' |