diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..196c33c0be --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +--- +version: 2 +updates: + - package-ecosystem: pip + directory: / + schedule: + interval: monthly + assignees: + - Harshil2107 + commit-message: + prefix: 'misc: ' + # Raise pull requests for version updates + # to pip against the `develop` branch + target-branch: develop + # Labels on pull requests for version updates only + labels: + - misc diff --git a/.github/workflows/compiler-tests.yaml b/.github/workflows/compiler-tests.yaml index 4656563357..5e903732ce 100644 --- a/.github/workflows/compiler-tests.yaml +++ b/.github/workflows/compiler-tests.yaml @@ -38,9 +38,8 @@ jobs: strategy: fail-fast: false matrix: - gem5-compilation: [ARM, ARM_MESI_Three_Level, ARM_MESI_Three_Level_HTM, ARM_MOESI_hammer, Garnet_standalone, GCN3_X86, MIPS, 'NULL', NULL_MESI_Two_Level, - NULL_MOESI_CMP_directory, NULL_MOESI_CMP_token, NULL_MOESI_hammer, POWER, RISCV, SPARC, X86, X86_MI_example, X86_MOESI_AMD_Base, VEGA_X86, - GCN3_X86] + gem5-compilation: [ARM, ARM_MESI_Three_Level, ARM_MESI_Three_Level_HTM, ARM_MOESI_hammer, Garnet_standalone, MIPS, 'NULL', NULL_MESI_Two_Level, + NULL_MOESI_CMP_directory, NULL_MOESI_CMP_token, NULL_MOESI_hammer, POWER, RISCV, SPARC, X86, X86_MI_example, X86_MOESI_AMD_Base, VEGA_X86] image: [gcc-version-12, clang-version-16] opts: [.opt] runs-on: [self-hosted, linux, x64] diff --git a/.github/workflows/daily-tests.yaml b/.github/workflows/daily-tests.yaml index 987f5c1ad2..6aeb195b1f 100644 --- a/.github/workflows/daily-tests.yaml +++ b/.github/workflows/daily-tests.yaml @@ -280,25 +280,25 @@ jobs: # Scheduled workflows run on the default branch by default. We # therefore need to explicitly checkout the develop branch. ref: develop - - name: Compile build/GCN3_X86/gem5.opt - run: scons build/GCN3_X86/gem5.opt -j $(nproc) + - name: Compile build/VEGA_X86/gem5.opt + run: scons build/VEGA_X86/gem5.opt -j $(nproc) - name: Get Square test-prog from gem5-resources uses: wei/wget@v1 with: - args: -q http://dist.gem5.org/dist/develop/test-progs/square/square # Removed -N bc it wasn't available within actions, should be okay bc workspace is clean every time: https://github.com/coder/sshcode/issues/102 - - name: Run Square test with GCN3_X86/gem5.opt (SE mode) + args: -q https://dist.gem5.org/dist/v24-0/test-progs/square/square # Removed -N bc it wasn't available within actions, should be okay bc workspace is clean every time: https://github.com/coder/sshcode/issues/102 + - name: Run Square test with VEGA_X86/gem5.opt (SE mode) run: | mkdir -p tests/testing-results - ./build/GCN3_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c square + ./build/VEGA_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c square - name: Get allSyncPrims-1kernel from gem5-resources uses: wei/wget@v1 with: - args: -q http://dist.gem5.org/dist/develop/test-progs/heterosync/gcn3/allSyncPrims-1kernel # Removed -N bc it wasn't available within actions, should be okay bc workspace is clean every time - - name: Run allSyncPrims-1kernel sleepMutex test with GCN3_X86/gem5.opt (SE mode) - run: ./build/GCN3_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel --options="sleepMutex 10 16 + args: -q https://dist.gem5.org/dist/v24-0/test-progs/heterosync/allSyncPrims-1kernel # Removed -N bc it wasn't available within actions, should be okay bc workspace is clean every time + - name: Run allSyncPrims-1kernel sleepMutex test with VEGA_X86/gem5.opt (SE mode) + run: ./build/VEGA_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel --options="sleepMutex 10 16 4" - - name: Run allSyncPrims-1kernel lfTreeBarrUsing test with GCN3_X86/gem5.opt (SE mode) - run: ./build/GCN3_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel --options="lfTreeBarrUniq + - name: Run allSyncPrims-1kernel lfTreeBarrUsing test with VEGA_X86/gem5.opt (SE mode) + run: ./build/VEGA_X86/gem5.opt configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel --options="lfTreeBarrUniq 10 16 4" daily-tests: # The dummy job is used to indicate whether the daily tests have diff --git a/.github/workflows/gpu-tests.yaml b/.github/workflows/gpu-tests.yaml deleted file mode 100644 index a60218e6e7..0000000000 --- a/.github/workflows/gpu-tests.yaml +++ /dev/null @@ -1,95 +0,0 @@ ---- -# This workflow runs all the Weekly GPU Tests. -# For now this file is kept separate as we are still developing and testing -# this workflow. It will eventually be merged with "weekly-tests.yaml" - -name: Weekly Tests (GPU) - -on: - # Runs every Sunday from 7AM UTC - schedule: - - cron: 00 7 * * 6 - # Allows us to manually start workflow for testing - workflow_dispatch: - -jobs: - build-gem5: - runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/gcn-gpu:latest - steps: - - uses: actions/checkout@v3 - with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. - ref: develop - - name: Build gem5 - run: scons build/VEGA_X86/gem5.opt -j $(nproc) --ignore-style - - uses: actions/upload-artifact@v3 - with: - name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega - path: build/VEGA_X86/gem5.opt - retention-days: 5 - - run: echo "This job's status is ${{ job.status }}." - - LULESH-tests: - runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/gcn-gpu:latest - needs: build-gem5 - timeout-minutes: 480 # 8 hours - steps: - - uses: actions/checkout@v3 - with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. - ref: develop - - - name: Download build/VEGA_X86/gem5.opt - uses: actions/download-artifact@v3 - with: - name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega - path: build/VEGA_X86 - # `download-artifact` does not preserve permissions so we need to set - # them again. - - run: chmod u+x build/VEGA_X86/gem5.opt - - - name: Obtain LULESH - # Obtains the latest LULESH compatible with this version of gem5 via - # gem5 Resources. - run: build/VEGA_X86/gem5.opt util/obtain-resource.py lulesh -p lulesh - - - name: Run LULUESH tests - working-directory: ${{ github.workspace }} - run: | - build/VEGA_X86/gem5.opt configs/example/apu_se.py -n3 --mem-size=8GB --reg-alloc-policy=dynamic --dgpu --gfx-version=gfx900 -c \ - lulesh --options="0.01 2" - - HACC-tests: - runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/gcn-gpu:latest - needs: build-gem5 - timeout-minutes: 120 # 2 hours - steps: - - uses: actions/checkout@v3 - with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. - ref: develop - - uses: actions/download-artifact@v3 - with: - name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega - path: build/VEGA_X86 - - run: chmod u+x build/VEGA_X86/gem5.opt - - name: make hip directory - run: mkdir hip - - name: Compile m5ops and x86 - working-directory: ${{ github.workspace }}/util/m5 - run: | - export TERM=xterm-256color - scons build/x86/out/m5 - - name: Download tests - working-directory: ${{ github.workspace }}/hip - run: wget http://dist.gem5.org/dist/v22-1/test-progs/halo-finder/ForceTreeTest - - name: Run HACC tests - working-directory: ${{ github.workspace }} - run: | - build/VEGA_X86/gem5.opt configs/example/apu_se.py -n3 --reg-alloc-policy=dynamic --benchmark-root=hip -c ForceTreeTest --options="0.5 0.1 64 0.1 1 N 12 rcb" diff --git a/.github/workflows/weekly-tests.yaml b/.github/workflows/weekly-tests.yaml index 6c211435c2..62d047709f 100644 --- a/.github/workflows/weekly-tests.yaml +++ b/.github/workflows/weekly-tests.yaml @@ -4,13 +4,94 @@ name: Weekly Tests on: - # Runs every Sunday from 7AM UTC + # Runs every Sunday from 7AM UTC schedule: - cron: 00 7 * * 6 - # Allows us to manually start workflow for testing + # Allows us to manually start workflow for testing workflow_dispatch: jobs: + build-gcn-gpu-gem5: + runs-on: [self-hosted, linux, x64] + container: ghcr.io/gem5/gcn-gpu:latest + steps: + - uses: actions/checkout@v3 + with: + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. + ref: develop + - name: Build gem5 + run: scons build/VEGA_X86/gem5.opt -j $(nproc) --ignore-style + - uses: actions/upload-artifact@v3 + with: + name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega + path: build/VEGA_X86/gem5.opt + retention-days: 5 + - run: echo "This job's status is ${{ job.status }}." + + LULESH-tests: + runs-on: [self-hosted, linux, x64] + container: ghcr.io/gem5/gcn-gpu:latest + needs: build-gcn-gpu-gem5 + timeout-minutes: 480 # 8 hours + steps: + - uses: actions/checkout@v3 + with: + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. + ref: develop + + - name: Download build/VEGA_X86/gem5.opt + uses: actions/download-artifact@v3 + with: + name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega + path: build/VEGA_X86 + # `download-artifact` does not preserve permissions so we need to set + # them again. + - run: chmod u+x build/VEGA_X86/gem5.opt + + - name: Obtain LULESH + # Obtains the latest LULESH compatible with this version of gem5 via + # gem5 Resources. + run: build/VEGA_X86/gem5.opt util/obtain-resource.py lulesh -p lulesh + + - name: Run LULUESH tests + working-directory: ${{ github.workspace }} + run: | + build/VEGA_X86/gem5.opt configs/example/apu_se.py -n3 --mem-size=8GB --reg-alloc-policy=dynamic --dgpu --gfx-version=gfx900 -c \ + lulesh --options="0.01 2" + + HACC-tests: + runs-on: [self-hosted, linux, x64] + container: ghcr.io/gem5/gcn-gpu:latest + needs: build-gcn-gpu-gem5 + timeout-minutes: 120 # 2 hours + steps: + - uses: actions/checkout@v3 + with: + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. + ref: develop + - uses: actions/download-artifact@v3 + with: + name: weekly-test-${{ github.run_number }}-attempt-${{ github.run_attempt }}-gem5-build-vega + path: build/VEGA_X86 + - run: chmod u+x build/VEGA_X86/gem5.opt + - name: make hip directory + run: mkdir hip + - name: Compile m5ops and x86 + working-directory: ${{ github.workspace }}/util/m5 + run: | + export TERM=xterm-256color + scons build/x86/out/m5 + - name: Download tests + working-directory: ${{ github.workspace }}/hip + run: wget http://dist.gem5.org/dist/v22-1/test-progs/halo-finder/ForceTreeTest + - name: Run HACC tests + working-directory: ${{ github.workspace }} + run: | + build/VEGA_X86/gem5.opt configs/example/apu_se.py -n3 --reg-alloc-policy=dynamic --benchmark-root=hip -c ForceTreeTest --options="0.5 0.1 64 0.1 1 N 12 rcb" + build-gem5: runs-on: [self-hosted, linux, x64] container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest @@ -19,8 +100,8 @@ jobs: steps: - uses: actions/checkout@v3 with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. ref: develop - id: artifact-name run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL" >> $GITHUB_OUTPUT @@ -34,7 +115,7 @@ jobs: retention-days: 5 - run: echo "This job's status is ${{ job.status }}." - # start running the very-long tests + # start running the very-long tests testlib-very-long-tests: strategy: fail-fast: false @@ -49,8 +130,8 @@ jobs: run: rm -rf ./* || true rm -rf ./.??* || true rm -rf ~/.cache || true - uses: actions/checkout@v3 with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. ref: develop - uses: actions/download-artifact@v3 with: @@ -83,15 +164,15 @@ jobs: steps: - uses: actions/checkout@v3 with: - # Scheduled workflows run on the default branch by default. We - # therefore need to explicitly checkout the develop branch. + # Scheduled workflows run on the default branch by default. We + # therefore need to explicitly checkout the develop branch. ref: develop - 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 + # 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)