name: TheRock Test Packages multi-node on: workflow_call: inputs: amdgpu_families: type: string test_runs_on: type: string artifact_run_id: type: string workflow_dispatch: inputs: amdgpu_families: type: string test_runs_on: type: string artifact_run_id: type: string permissions: contents: read jobs: test_rccl_multi_node: name: 'Test multi-node' runs-on: ${{ inputs.test_runs_on }} defaults: run: shell: bash env: VENV_DIR: ${{ github.workspace }}/.venv ARTIFACT_RUN_ID: "${{ inputs.artifact_run_id }}" OUTPUT_ARTIFACTS_DIR: /home/arravikum/dist_new/dist/rocm THEROCK_BIN_DIR: "./build/bin" steps: - name: Checkout Repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: "ROCm/TheRock" ref: 890c856134d955441790c8ed2d60ad4fb027f4e5 - name: Run setup test environment workflow uses: './.github/actions/setup_test_environment' with: ARTIFACT_RUN_ID: ${{ env.ARTIFACT_RUN_ID }} AMDGPU_FAMILIES: ${{ inputs.amdgpu_families }} OUTPUT_ARTIFACTS_DIR: ${{ env.OUTPUT_ARTIFACTS_DIR }} VENV_DIR: ${{ env.VENV_DIR }} FETCH_ARTIFACT_ARGS: "--rccl" IS_PR_FROM_FORK: ${{ github.event.pull_request.head.repo.fork }} # The following step leverages slurm to run multi node rccl tests on the slurm mi350x cluster. # salloc will hold 4 nodes while the commands inside the block run. After the block completes, salloc automatically releases the nodes. - name: Test gfx950 if: ${{ inputs.amdgpu_families == 'gfx950-dcgpu' }} run: | salloc -N 4 -p meta64 -t 04:00:00 --exclusive bash -c " source /home/arravikum/TheRock/.venv/bin/activate && cd /home/arravikum/cvs && python input/setup.py && pytest -vvv -s ./tests/rccl/rccl_multinode_cvs.py \ --cluster_file ./input/cluster.json \ --config_file ./input/mi350_config.json \ --log-file=/tmp/rccl_log.log \ --html=/home/arravikum/cvs/ci_test_report.html \ --capture=tee-sys \ --self-contained-html"