wrap up test compilation with an ENABLE_TESTS option #69
This file contains 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
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 |