diff --git a/.github/actions/prepare-gpu/action.yml b/.github/actions/prepare-gpu/action.yml new file mode 100644 index 00000000..050e4657 --- /dev/null +++ b/.github/actions/prepare-gpu/action.yml @@ -0,0 +1,29 @@ +name: prepare-gpu +description: 'Copy over GPU binaries to be used in simulation time to sims directory' + +inputs: + group-key: + description: group key + required: true + prepare-script: + description: prepare script to use + required: false + default: "copy-gpu-binaries.sh" + toolchain: + description: toolchain to use + required: false + default: "riscv-tools" + +runs: + using: "composite" + steps: + - name: Init submodules to ensure stimuli is located + run: | + conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-${{ inputs.toolchain }} + ./scripts/init-submodules-no-riscv-tools.sh --force + shell: bash -leo pipefail {0} + + - name: Copy binaries from rocket-gpu + run: | + ./.github/scripts/${{ inputs.prepare-script }} + shell: bash -leo pipefail {0} diff --git a/.github/actions/prepare-rtl/action.yml b/.github/actions/prepare-rtl/action.yml index 74a04037..b4abde09 100644 --- a/.github/actions/prepare-rtl/action.yml +++ b/.github/actions/prepare-rtl/action.yml @@ -26,6 +26,7 @@ runs: with: path: | sims/verilator + sims/vcs sims/firesim/sim generators/gemmini/software/gemmini-rocc-tests key: ${{ inputs.group-key }}-${{ github.sha }} diff --git a/.github/scripts/copy-gpu-binaries.sh b/.github/scripts/copy-gpu-binaries.sh new file mode 100755 index 00000000..a2932bd1 --- /dev/null +++ b/.github/scripts/copy-gpu-binaries.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# copy gpu binaries from stimuli folder +# usage: +# copy-gpu-binaries.sh + +# turn echo on and error on earliest command +set -ex + +# get shared variables +SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" +source $SCRIPT_DIR/defaults.sh + +cd $REMOTE_CHIPYARD_DIR + +cp -av $REMOTE_CHIPYARD_DIR/generators/rocket-gpu/stimuli/vecadd.bin.elf \ + $REMOTE_CHIPYARD_DIR/sims/ +cp -av $REMOTE_CHIPYARD_DIR/generators/rocket-gpu/stimuli/vecadd.args.size64.romAddr.bin \ + $REMOTE_CHIPYARD_DIR/sims/args.bin +cp -av $REMOTE_CHIPYARD_DIR/generators/rocket-gpu/stimuli/vecadd.input.a.size64.bin \ + $REMOTE_CHIPYARD_DIR/sims/op_a.bin +cp -av $REMOTE_CHIPYARD_DIR/generators/rocket-gpu/stimuli/vecadd.input.b.size64.bin \ + $REMOTE_CHIPYARD_DIR/sims/op_b.bin diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh index 1028960e..a5f7f62e 100755 --- a/.github/scripts/defaults.sh +++ b/.github/scripts/defaults.sh @@ -32,6 +32,7 @@ grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-he grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboom chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered" grouping["group-accels"]="chipyard-mempress chipyard-sha3 chipyard-hwacha chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla" grouping["group-constellation"]="chipyard-constellation" +grouping["group-gpu"]="chipyard-vortex chipyard-coalescer coalescer" grouping["group-tracegen"]="tracegen tracegen-boom" grouping["group-other"]="icenet testchipip constellation rocketchip-amba rocketchip-tlsimple rocketchip-tlwidth rocketchip-tlxbar" grouping["group-fpga"]="arty vcu118 vc707 arty100t" @@ -67,8 +68,11 @@ mapping["chipyard-shuttle"]=" CONFIG=ShuttleConfig" mapping["chipyard-multiclock-rocket"]=" CONFIG=MulticlockRocketConfig" mapping["chipyard-nomem-scratchpad"]=" CONFIG=MMIOScratchpadOnlyRocketConfig" mapping["chipyard-constellation"]=" CONFIG=SharedNoCConfig" +mapping["chipyard-vortex"]=" CONFIG=RadianceROMConfig" +mapping["chipyard-coalescer"]=" CONFIG=MemtraceCoreConfig" mapping["constellation"]=" SUB_PROJECT=constellation" +mapping["coalescer"]=" SUB_PROJECT=coalescer" mapping["firesim"]="SCALA_TEST=firesim.firesim.RocketNICF1Tests" mapping["fireboom"]="SCALA_TEST=firesim.firesim.BoomF1Tests" mapping["icenet"]="SUB_PROJECT=icenet" diff --git a/.github/scripts/run-tests.sh b/.github/scripts/run-tests.sh index ce272737..378dae0c 100755 --- a/.github/scripts/run-tests.sh +++ b/.github/scripts/run-tests.sh @@ -137,6 +137,12 @@ case $1 in chipyard-constellation) run_binary LOADMEM=1 BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv ;; + chipyard-vortex) + run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/rocket-gpu/stimuli/vecadd.bin.elf + ;; + chipyard-coalescer) + run_binary BINARY=none EXTRA_SIM_FLAGS="+memtracefile=$LOCAL_CHIPYARD_DIR/generators/rocket-gpu/tracefiles/vecadd.core1.thread4.trace" + ;; icenet) run_binary BINARY=none ;; @@ -146,6 +152,9 @@ case $1 in constellation) run_binary BINARY=none ;; + coalescer) + run_binary BINARY=none EXTRA_SIM_FLAGS="+memtracefile=$LOCAL_CHIPYARD_DIR/generators/rocket-gpu/tracefiles/vecadd.core1.thread4.trace" + ;; rocketchip-amba) run_binary BINARY=none ;; diff --git a/.github/workflows/chipyard-run-tests-gpu.yml b/.github/workflows/chipyard-run-tests-gpu.yml index d0983855..55970939 100644 --- a/.github/workflows/chipyard-run-tests-gpu.yml +++ b/.github/workflows/chipyard-run-tests-gpu.yml @@ -16,6 +16,7 @@ env: conda-env-name-no-time: cy-${{ github.run_id }} workflow-timestamp: ${{ github.event.pull_request.updated_at }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SSH_AUTH_SOCK: /tmp/ssh_agent_github.sock jobs: cancel-prior-workflows: @@ -72,6 +73,12 @@ jobs: rm -rf ${{ github.workspace }}/* || true rm -rf ${{ github.workspace }}/.* || true ls -alh . + # note: the agent spun up here will be made available throughout the + # workflow via env.SSH_AUTH_SOCK. + - name: Run ssh-agent + run: | + eval `ssh-agent -a $SSH_AUTH_SOCK -s` + echo "${{ secrets.PRIVATE_SSH_KEY }}" | ssh-add - - name: Checkout uses: actions/checkout@v3 - name: Git workaround @@ -94,30 +101,30 @@ jobs: ########################################################################## - prepare-chipyard-cores: - name: prepare-chipyard-cores - needs: setup-complete - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-cores" + # prepare-chipyard-cores: + # name: prepare-chipyard-cores + # needs: setup-complete + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Build RTL on self-hosted + # uses: ./.github/actions/prepare-rtl + # with: + # group-key: "group-cores" - prepare-chipyard-accels: - name: prepare-chipyard-accels + prepare-chipyard-gpu: + name: prepare-chipyard-gpu needs: setup-complete runs-on: self-hosted steps: @@ -133,89 +140,137 @@ jobs: uses: ./.github/actions/git-workaround - name: Create conda env uses: ./.github/actions/create-conda-env + - name: Prepare GPU binaries + uses: ./.github/actions/prepare-gpu - name: Build RTL on self-hosted uses: ./.github/actions/prepare-rtl with: - group-key: "group-accels" + group-key: "group-gpu" - prepare-chipyard-tracegen: - name: prepare-chipyard-tracegen - needs: setup-complete - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-tracegen" + # prepare-chipyard-accels: + # name: prepare-chipyard-accels + # needs: setup-complete + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Build RTL on self-hosted + # uses: ./.github/actions/prepare-rtl + # with: + # group-key: "group-accels" - prepare-chipyard-other: - name: prepare-chipyard-other - needs: setup-complete - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build RTL on self-hosted - uses: ./.github/actions/prepare-rtl - with: - group-key: "group-other" + # prepare-chipyard-other: + # name: prepare-chipyard-other + # needs: setup-complete + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Build RTL on self-hosted + # uses: ./.github/actions/prepare-rtl + # with: + # group-key: "group-other" ########################################################################## - chipyard-spike-gemmini-run-tests: - name: chipyard-spike-gemmini-run-tests - needs: prepare-chipyard-accels # technically doesn't depend on RTL but should be after the build.sh for Gemmini - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Build Gemmini FireMarshal - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools - cd ${{ github.workspace }} && ./scripts/init-submodules-no-riscv-tools.sh --force - cd ${{ github.workspace }} && source ./scripts/fix-open-files.sh - git submodule update --init software/firemarshal && cd software/firemarshal && ./init-submodules.sh - cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d build gemmini-smoke.json - - name: Running Gemmini FireMarshal smoke test - run: | - conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools - cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d launch -s gemmini-smoke.json + # chipyard-spike-gemmini-run-tests: + # name: chipyard-spike-gemmini-run-tests + # needs: prepare-chipyard-accels # technically doesn't depend on RTL but should be after the build.sh for Gemmini + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Build Gemmini FireMarshal + # run: | + # conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools + # cd ${{ github.workspace }} && ./scripts/init-submodules-no-riscv-tools.sh --force + # cd ${{ github.workspace }} && source ./scripts/fix-open-files.sh + # git submodule update --init software/firemarshal && cd software/firemarshal && ./init-submodules.sh + # cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d build gemmini-smoke.json + # - name: Running Gemmini FireMarshal smoke test + # run: | + # conda activate ${{ env.conda-env-name-no-time }}-$(date --date "${{ env.workflow-timestamp }}" +%Y%m%d)-riscv-tools + # cd ${{ github.workspace }}/generators/gemmini/software && ${{ github.workspace }}/software/firemarshal/marshal -v -d launch -s gemmini-smoke.json - chipyard-rocket-run-tests: - name: chipyard-rocket-run-tests - needs: prepare-chipyard-cores + # chipyard-rocket-run-tests: + # name: chipyard-rocket-run-tests + # needs: prepare-chipyard-cores + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-cores" + # project-key: "chipyard-rocket" + + # chipyard-boom-run-tests: + # name: chipyard-boom-run-tests + # needs: prepare-chipyard-cores + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-cores" + # project-key: "chipyard-boom" + + chipyard-vortex-run-tests: + name: chipyard-vortex-run-tests + needs: prepare-chipyard-gpu runs-on: self-hosted steps: - name: Delete old checkout @@ -233,12 +288,12 @@ jobs: - name: Run tests uses: ./.github/actions/run-tests with: - group-key: "group-cores" - project-key: "chipyard-rocket" + group-key: "group-gpu" + project-key: "chipyard-vortex" - chipyard-prefetchers-run-tests: - name: chipyard-prefetchers-run-tests - needs: prepare-chipyard-cores + chipyard-coalescer-run-tests: + name: chipyard-coalescer-run-tests + needs: prepare-chipyard-gpu runs-on: self-hosted steps: - name: Delete old checkout @@ -256,12 +311,12 @@ jobs: - name: Run tests uses: ./.github/actions/run-tests with: - group-key: "group-cores" - project-key: "chipyard-prefetchers" + group-key: "group-gpu" + project-key: "chipyard-coalescer" - chipyard-hetero-run-tests: - name: chipyard-hetero-run-tests - needs: prepare-chipyard-cores + coalescer-run-tests: + name: coalescer-run-tests + needs: prepare-chipyard-gpu runs-on: self-hosted steps: - name: Delete old checkout @@ -279,215 +334,54 @@ jobs: - name: Run tests uses: ./.github/actions/run-tests with: - group-key: "group-cores" - project-key: "chipyard-hetero" + group-key: "group-gpu" + project-key: "coalescer" - chipyard-boom-run-tests: - name: chipyard-boom-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-boom" + # chipyard-spike-run-tests: + # name: chipyard-spike-run-tests + # needs: prepare-chipyard-cores + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-cores" + # project-key: "chipyard-spike" - chipyard-shuttle-run-tests: - name: chipyard-shuttle-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-shuttle" - - chipyard-cva6-run-tests: - name: chipyard-cva6-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-cva6" - - chipyard-ibex-run-tests: - name: chipyard-ibex-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-ibex" - - chipyard-sodor-run-tests: - name: chipyard-sodor-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-sodor" - - chipyard-spike-run-tests: - name: chipyard-spike-run-tests - needs: prepare-chipyard-cores - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-cores" - project-key: "chipyard-spike" - - chipyard-sha3-run-tests: - name: chipyard-sha3-run-tests - needs: prepare-chipyard-accels - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-sha3" - - chipyard-gemmini-run-tests: - name: chipyard-gemmini-run-tests - needs: prepare-chipyard-accels - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-gemmini" - - chipyard-manymmioaccels-run-tests: - name: chipyard-manymmioaccels-run-tests - needs: prepare-chipyard-accels - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-manymmioaccels" + # chipyard-gemmini-run-tests: + # name: chipyard-gemmini-run-tests + # needs: prepare-chipyard-accels + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-accels" + # project-key: "chipyard-gemmini" # chipyard-nvdla-run-tests: # name: chipyard-nvdla-run-tests @@ -512,160 +406,67 @@ jobs: # group-key: "group-accels" # project-key: "chipyard-nvdla" - chipyard-mempress-run-tests: - name: chipyard-mempress-run-tests - needs: prepare-chipyard-accels - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-accels" - project-key: "chipyard-mempress" + # testchipip-run-tests: + # name: testchipip-run-tests + # needs: prepare-chipyard-other + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-other" + # project-key: "testchipip" - - tracegen-boom-run-tests: - name: tracegen-boom-run-tests - needs: prepare-chipyard-tracegen - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-tracegen" - project-key: "tracegen-boom" - - tracegen-run-tests: - name: tracegen-run-tests - needs: prepare-chipyard-tracegen - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-tracegen" - project-key: "tracegen" - - icenet-run-tests: - name: icenet-run-tests - needs: prepare-chipyard-other - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "icenet" - - testchipip-run-tests: - name: testchipip-run-tests - needs: prepare-chipyard-other - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "testchipip" - - rocketchip-run-tests: - name: rocketchip-run-tests - needs: prepare-chipyard-other - runs-on: self-hosted - steps: - - name: Delete old checkout - run: | - ls -alh . - rm -rf ${{ github.workspace }}/* || true - rm -rf ${{ github.workspace }}/.* || true - ls -alh . - - name: Checkout - uses: actions/checkout@v3 - - name: Git workaround - uses: ./.github/actions/git-workaround - - name: Create conda env - uses: ./.github/actions/create-conda-env - - name: Run amba tests - uses: ./.github/actions/run-tests - with: - group-key: "group-other" - project-key: "rocketchip-amba" - # Below tests segfault with verilator, work fine in VCS - # - name: Run tlsimple tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlsimple" - # - name: Run tlwidth tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlwidth" - # - name: Run tlxbar tests - # uses: ./.github/actions/run-tests - # with: - # group-key: "group-other" - # project-key: "rocketchip-tlxbar" + # rocketchip-run-tests: + # name: rocketchip-run-tests + # needs: prepare-chipyard-other + # runs-on: self-hosted + # steps: + # - name: Delete old checkout + # run: | + # ls -alh . + # rm -rf ${{ github.workspace }}/* || true + # rm -rf ${{ github.workspace }}/.* || true + # ls -alh . + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Git workaround + # uses: ./.github/actions/git-workaround + # - name: Create conda env + # uses: ./.github/actions/create-conda-env + # - name: Run amba tests + # uses: ./.github/actions/run-tests + # with: + # group-key: "group-other" + # project-key: "rocketchip-amba" + # # Below tests segfault with verilator, work fine in VCS + # # - name: Run tlsimple tests + # # uses: ./.github/actions/run-tests + # # with: + # # group-key: "group-other" + # # project-key: "rocketchip-tlsimple" + # # - name: Run tlwidth tests + # # uses: ./.github/actions/run-tests + # # with: + # # group-key: "group-other" + # # project-key: "rocketchip-tlwidth" + # # - name: Run tlxbar tests + # # uses: ./.github/actions/run-tests + # # with: + # # group-key: "group-other" + # # project-key: "rocketchip-tlxbar" # Sentinel job to simplify how we specify which checks need to pass in branch # protection and in Mergify @@ -673,23 +474,15 @@ jobs: # When adding new top level jobs, please add them to `needs` below all_tests_passed: name: "all tests passed" - needs: [chipyard-rocket-run-tests, - chipyard-hetero-run-tests, - chipyard-boom-run-tests, - chipyard-shuttle-run-tests, - chipyard-cva6-run-tests, - chipyard-ibex-run-tests, - chipyard-sodor-run-tests, - chipyard-sha3-run-tests, - chipyard-gemmini-run-tests, - chipyard-manymmioaccels-run-tests, # chipyard-nvdla-run-tests, - chipyard-prefetchers-run-tests, - chipyard-mempress-run-tests, - tracegen-boom-run-tests, - tracegen-run-tests, - icenet-run-tests, - testchipip-run-tests, - rocketchip-run-tests, + needs: [ + # chipyard-rocket-run-tests, + # chipyard-boom-run-tests, + chipyard-vortex-run-tests, + chipyard-coalescer-run-tests, + coalescer-run-tests, + # chipyard-gemmini-run-tests, + # testchipip-run-tests, + # rocketchip-run-tests, ] runs-on: self-hosted steps: diff --git a/.gitmodules b/.gitmodules index 27b4e831..4728b363 100644 --- a/.gitmodules +++ b/.gitmodules @@ -133,3 +133,6 @@ [submodule "generators/hardfloat"] path = generators/hardfloat url = https://github.com/ucb-bar/berkeley-hardfloat.git +[submodule "generators/rocket-gpu"] + path = generators/rocket-gpu + url = git@github.com:hansungk/rocket-gpu.git diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index 0ead0a9f..58672483 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -36,13 +36,13 @@ class WithRadBootROM(address: BigInt = 0x10000, size: Int = 0x10000, hang: BigIn }) class RadianceROMConfig extends Config( - new freechips.rocketchip.subsystem.WithRadianceCores() ++ + new freechips.rocketchip.subsystem.WithRadianceCores(1, useVxCache = false) ++ new freechips.rocketchip.subsystem.WithCoherentBusTopology ++ new WithExtMemSize(BigInt("80000000", 16)) ++ new WithRadBootROM() ++ - new WithRadROMs(0x7FFF0000L, 0x10000, "sims/vcs/args.bin") ++ - new WithRadROMs(0x20000L, 0x8000, "sims/vcs/op_a.bin") ++ - new WithRadROMs(0x28000L, 0x8000, "sims/vcs/op_b.bin") ++ + new WithRadROMs(0x7FFF0000L, 0x10000, "sims/args.bin") ++ + new WithRadROMs(0x20000L, 0x8000, "sims/op_a.bin") ++ + new WithRadROMs(0x28000L, 0x8000, "sims/op_b.bin") ++ new AbstractConfig) class RadianceConfig extends Config( @@ -61,9 +61,9 @@ class RadianceConfigVortexCache extends Config( // new testchipip.WithMbusScratchpad(banks=2) ++ new WithExtMemSize(BigInt("80000000", 16)) ++ new WithRadBootROM() ++ - new WithRadROMs(0x7FFF0000L, 0x10000, "sims/vcs/args.bin") ++ - new WithRadROMs(0x20000L, 0x8000, "sims/vcs/op_a.bin") ++ - new WithRadROMs(0x28000L, 0x8000, "sims/vcs/op_b.bin") ++ + new WithRadROMs(0x7FFF0000L, 0x10000, "sims/args.bin") ++ + new WithRadROMs(0x20000L, 0x8000, "sims/op_a.bin") ++ + new WithRadROMs(0x28000L, 0x8000, "sims/op_b.bin") ++ new AbstractConfig ) diff --git a/generators/rocket-chip b/generators/rocket-chip index fc7c2d05..e02ba347 160000 --- a/generators/rocket-chip +++ b/generators/rocket-chip @@ -1 +1 @@ -Subproject commit fc7c2d05cad00374a58b08dbc996ee6f54c3fea7 +Subproject commit e02ba3476b230ebb7e8dcb4ff0ce5832ef6a9f39 diff --git a/generators/rocket-gpu b/generators/rocket-gpu new file mode 160000 index 00000000..1b348651 --- /dev/null +++ b/generators/rocket-gpu @@ -0,0 +1 @@ +Subproject commit 1b3486512523d6030dc7a3ef64bc880c53061876 diff --git a/toolchains/riscv-tools/riscv-isa-sim b/toolchains/riscv-tools/riscv-isa-sim index 3e87fa0d..5a499ef7 160000 --- a/toolchains/riscv-tools/riscv-isa-sim +++ b/toolchains/riscv-tools/riscv-isa-sim @@ -1 +1 @@ -Subproject commit 3e87fa0d0a3cd11d435d770d6028989df60f6c27 +Subproject commit 5a499ef718bba2fc323e9771ebd7545c66825ff6