Skip to content

wrap up test compilation with an ENABLE_TESTS option #69

wrap up test compilation with an ENABLE_TESTS option

wrap up test compilation with an ENABLE_TESTS option #69

Workflow file for this run

name: mi-rhel9
on:
push:
branches:
- 'main'
# Allows manual execution
workflow_dispatch:
permissions:
contents: read
checks: write
pull-requests: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
profile:
strategy:
matrix:
version: [5.7.1, 6.0.2]
hardware: [mi100, mi200]
profiler: [default, rocprofv2]
exclude:
- profiler: rocprofv2
hardware: mi100
fail-fast: false
runs-on: [mi100, rhel9]
env:
PYTHONPATH: /home1/ciuser/omniperf_deps
CI_VISIBLE_DEVICES: 1
name: ROCm v${{ matrix.version }} / ${{ matrix.hardware }} / ${{ matrix.profiler }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Python Path
run: echo ${PYTHONPATH}
- name: Setup hardware-specific run details
run: |
if [ ${{ matrix.hardware }} == "mi100" ];then
echo "CI_QUEUE=ci" >> $GITHUB_ENV
echo "CI_ARCH=gfx908" >> $GITHUB_ENV
elif [ ${{ matrix.hardware }} == "mi200" ];then
echo "CI_QUEUE=mi2104x" >> $GITHUB_ENV
echo "CI_ARCH=gfx90a" >> $GITHUB_ENV
else
echo "Unsupported hardware"
exit 1
fi
- name: Setup profiling mode
run: |
if [ ${{ matrix.profiler }} == "rocprofv2" ];then
echo "ROCPROF=rocprofv2" >> $GITHUB_ENV
fi
- name: Install Python collateral (build and test)
run: |
pip3 install -t ${PYTHONPATH} -r requirements.txt
pip3 install -t ${PYTHONPATH} -r requirements-test.txt
- name: Load ROCm ${{ matrix.version}}
run: |
module load cmake
module load rocm/${{ matrix.version }}
echo $PATH > $GITHUB_PATH
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> "$GITHUB_ENV"
echo "ROCM_PATH=$ROCM_PATH" >> "$GITHUB_ENV"
- name: Check Environment
run: |
echo "PATH=$PATH"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "ROCM_PATH=$ROCM_PATH"
echo "CI_QUEUE=$CI_QUEUE"
echo "CI_ARCH=$CI_ARCH"
echo "CI_VISIBLE_DEVICES=$CI_VISIBLE_DEVICES"
echo "ROCPROF=$ROCPROF"
- name: Configure
run: |
mkdir build
cd build
ml cmake
cmake -DENABLE_COVERAGE=ON -DPYTEST_NUMPROCS=8 ..
- name: Build tests and Run [profile] mode
run: |
cd build
srun -N 1 -J omniperf -p $CI_QUEUE -t 00:20:00 make; ctest -j 4 --resource-spec-file ../tests/4gpus.json --verbose -L profile
- name: Run [analyze workloads] mode
if: '!cancelled()'
run: |
cd build
srun -N 1 -J omniperf -p $CI_QUEUE -t 00:10:00 ctest --verbose -R test_analyze_workloads
- name: Run [analyze commands] mode
if: '!cancelled()'
run: |
cd build
srun -N 1 -J omniperf -p $CI_QUEUE -t 00:10:00 ctest --verbose -R test_analyze_commands
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action/linux@v2
if: always()
with:
files: |
tests/**/test_*.xml
- name: Summarize code coverage
if: always()
run: coverage report
- name: Upload code coverage
uses: zgosalvez/github-actions-report-lcov@v4
if: always()
with:
coverage-files: tests/coverage.info
minimum-coverage: 35
artifact-name: code-coverage-report-rocm${{ matrix.version }}-${{ matrix.hardware }}-${{ matrix.profiler }}
github-token: ${{ secrets.GITHUB_TOKEN }}
update-comment: true