The Weekly GPU tests are failing due to a timeout but I found the testing timeout was set to 5 hours and we have been frequently close to reaching this but have recently changes the test enought o consistently go over. The main two things that appear to have caused this are: 1. Moving the X86_VEGA compilation into the the same step as the running of the tests. 2. Reducing the number of threads per GitHub Actions runner, thus slowing job execution. In addition we've added more tests to this weekly GPU suite though I don't believe have got to running these tests yet. The timeout appears to always been triggered before this. This PR increases the timout to 3 days and moves the compilation into a seperate step.
116 lines
4.5 KiB
YAML
116 lines
4.5 KiB
YAML
---
|
|
# This workflow runs all of the very-long tests within main.py
|
|
|
|
name: Weekly Tests
|
|
|
|
on:
|
|
# This is triggered weekly via the 'scheduler.yaml' workflow.
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
# start running the very-long tests
|
|
testlib-very-long-tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
test-type: [gem5_library_example_tests, gem5_resources, stdlib, parsec_benchmarks, x86_boot_tests]
|
|
runs-on: [self-hosted, linux, x64]
|
|
container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest
|
|
timeout-minutes: 4320 # 3 days
|
|
steps:
|
|
- name: Clean runner
|
|
run: rm -rf ./* || true rm -rf ./.??* || true rm -rf ~/.cache || true
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache build/ALL
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: build/ALL
|
|
key: testlib-build-all-${{ hashFiles('src/**') }}
|
|
restore-keys: |
|
|
testlib-build-all
|
|
|
|
- name: very-long ${{ matrix.test-type }}
|
|
working-directory: ${{ github.workspace }}/tests
|
|
run: ./main.py run gem5/${{ matrix.test-type }} --length very-long -j$(nproc) -vv
|
|
- name: upload results
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v4
|
|
env:
|
|
MY_STEP_VAR: ${{ matrix.test-type }}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
|
|
with:
|
|
name: ${{ env.MY_STEP_VAR }}
|
|
path: tests/testing-results
|
|
retention-days: 7
|
|
- run: echo "This job's status is ${{ job.status }}."
|
|
|
|
gpu-tests:
|
|
runs-on: [self-hosted, linux, x64]
|
|
container: ghcr.io/gem5/gcn-gpu:latest
|
|
timeout-minutes: 4320 # 3 days
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: develop
|
|
|
|
- name: Cache build/VEGA_X86
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: build/VEGA_X86
|
|
key: testlib-build-vega-${{ hashFiles('src/**') }}
|
|
restore-keys: |
|
|
testlib-build-vega
|
|
|
|
- name: Build VEGA_X86/gem5.opt
|
|
working-directory: ${{ github.workspace }}
|
|
run: scons build/VEGA_X86/gem5.opt -j $(nproc)
|
|
|
|
- name: Run Testlib GPU Tests
|
|
working-directory: ${{ github.workspace }}/tests
|
|
run: ./main.py run --length=very-long -vvv --skip-build -t $(nproc) --host gcn_gpu gem5/gpu
|
|
|
|
- name: Upload results
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v4.0.0
|
|
with:
|
|
name: gpu_tests_${{github.sha}}_RUN_${{github.run_id}}_ATTEMPT_${{github.run_attempt}}
|
|
path: tests/testing-results
|
|
retention-days: 7
|
|
|
|
dramsys-tests:
|
|
runs-on: [self-hosted, linux, x64]
|
|
container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest
|
|
timeout-minutes: 4320 # 3 days
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checkout DRAMSys
|
|
working-directory: ${{ github.workspace }}/ext/dramsys
|
|
run: git clone https://github.com/tukl-msd/DRAMSys --branch v5.0 --depth 1 DRAMSys
|
|
|
|
# gem5 is built separately because it depends on the DRAMSys library
|
|
- name: Build gem5
|
|
working-directory: ${{ github.workspace }}
|
|
run: scons build/ALL/gem5.opt -j $(nproc)
|
|
|
|
- name: Run DRAMSys Checks
|
|
working-directory: ${{ github.workspace }}
|
|
run: |
|
|
./build/ALL/gem5.opt configs/example/gem5_library/dramsys/arm-hello-dramsys.py
|
|
./build/ALL/gem5.opt configs/example/gem5_library/dramsys/dramsys-traffic.py
|
|
./build/ALL/gem5.opt configs/example/dramsys.py
|
|
weekly-tests:
|
|
# The dummy job is used to indicate whether the weekly tests have
|
|
# passed or not. This can be used as status check for pull requests.
|
|
# I.e., if we want to stop pull requests from being merged if the
|
|
# weekly tests are failing we can add this job as a required status
|
|
# check.
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- testlib-very-long-tests
|
|
- dramsys-tests
|
|
- gpu-tests
|
|
steps:
|
|
- run: echo "This weekly tests have passed."
|