From 9822bb4301fd08e9e05d8a4673fb08d38adcb3c6 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Thu, 20 Jun 2024 16:11:52 -0700 Subject: [PATCH 01/10] Add compress-acc --- .gitmodules | 3 +++ build.sbt | 8 +++++++- .../src/main/scala/config/RoCCAcceleratorConfigs.scala | 6 ++++++ generators/compress-acc | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) create mode 160000 generators/compress-acc diff --git a/.gitmodules b/.gitmodules index c24ded763c..86f25ca8af 100644 --- a/.gitmodules +++ b/.gitmodules @@ -145,3 +145,6 @@ [submodule "generators/rerocc"] path = generators/rerocc url = https://github.com/ucb-bar/rerocc.git +[submodule "generators/compress-acc"] + path = generators/compress-acc + url = git@github.com:ucb-bar/compress-acc.git diff --git a/build.sbt b/build.sbt index 36bf77420f..0976a5e6ea 100644 --- a/build.sbt +++ b/build.sbt @@ -173,7 +173,8 @@ lazy val chipyard = (project in file("generators/chipyard")) .dependsOn(testchipip, rocketchip, boom, rocketchip_blocks, rocketchip_inclusive_cache, dsptools, rocket_dsp_utils, gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, fft_generator, - constellation, mempress, barf, shuttle, caliptra_aes, rerocc) + constellation, mempress, barf, shuttle, caliptra_aes, rerocc, + compressacc) .settings(libraryDependencies ++= rocketLibDeps.value) .settings( libraryDependencies ++= Seq( @@ -183,6 +184,11 @@ lazy val chipyard = (project in file("generators/chipyard")) .settings(commonSettings) .settings(Compile / unmanagedSourceDirectories += file(stageDir)) +lazy val compressacc = (project in file("generators/compress-acc")) + .dependsOn(rocketchip) + .settings(libraryDependencies ++= rocketLibDeps.value) + .settings(commonSettings) + lazy val mempress = (project in file("generators/mempress")) .dependsOn(rocketchip) .settings(libraryDependencies ++= rocketLibDeps.value) diff --git a/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala b/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala index 91ee7c15ce..ca1eeabc95 100644 --- a/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala @@ -67,3 +67,9 @@ class ReRoCCManyGemminiConfig extends Config( new gemmini.LeanGemminiConfig ++ // rerocc tile0 is gemmini new freechips.rocketchip.subsystem.WithNBigCores(4) ++ // 4 rocket cores new chipyard.config.AbstractConfig) + +class ZstdCompressorRocketConfig extends Config( + new compressacc.WithZstdCompressor ++ + new chipyard.config.WithSystemBusWidth(256) ++ + new freechips.rocketchip.subsystem.WithNBigCores(1) ++ + new chipyard.config.AbstractConfig) diff --git a/generators/compress-acc b/generators/compress-acc new file mode 160000 index 0000000000..bca56fff7c --- /dev/null +++ b/generators/compress-acc @@ -0,0 +1 @@ +Subproject commit bca56fff7cc0f9df12a00c0958c738318e371daf From 375522a222a87d61e67007016fc1c6f9354726e7 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 14:40:57 -0700 Subject: [PATCH 02/10] Bump compress-acc, add ci --- .github/scripts/check-commit.sh | 2 +- .github/scripts/defaults.sh | 3 ++- .github/scripts/run-tests.sh | 4 ++++ .github/workflows/chipyard-run-tests.yml | 24 ++++++++++++++++++++++++ generators/compress-acc | 2 +- 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/scripts/check-commit.sh b/.github/scripts/check-commit.sh index 1b859414f8..e906ac29b2 100755 --- a/.github/scripts/check-commit.sh +++ b/.github/scripts/check-commit.sh @@ -46,7 +46,7 @@ search () { } -submodules=("cva6" "boom" "ibex" "gemmini" "icenet" "nvdla" "rocket-chip" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils" "diplomacy" "rerocc") +submodules=("cva6" "boom" "ibex" "gemmini" "icenet" "nvdla" "rocket-chip" "rocket-chip-blocks" "rocket-chip-inclusive-cache" "testchipip" "riscv-sodor" "mempress" "bar-fetchers" "shuttle" "constellation" "fft-generator" "hardfloat" "caliptra-aes-acc" "rocc-acc-utils" "diplomacy" "rerocc" "compress-acc") dir="generators" branches=("master" "main" "dev") search diff --git a/.github/scripts/defaults.sh b/.github/scripts/defaults.sh index d76d7a32ec..0533846a16 100755 --- a/.github/scripts/defaults.sh +++ b/.github/scripts/defaults.sh @@ -30,7 +30,7 @@ REMOTE_COURSIER_CACHE=$REMOTE_WORK_DIR/.coursier-cache declare -A grouping grouping["group-cores"]="chipyard-cva6 chipyard-ibex chipyard-rocket chipyard-hetero chipyard-boomv3 chipyard-boomv4 chipyard-sodor chipyard-digitaltop chipyard-multiclock-rocket chipyard-nomem-scratchpad chipyard-spike chipyard-clone chipyard-prefetchers chipyard-shuttle" grouping["group-peripherals"]="chipyard-dmirocket chipyard-dmiboomv3 chipyard-dmiboomv4 chipyard-spiflashwrite chipyard-mmios chipyard-nocores chipyard-manyperipherals chipyard-chiplike chipyard-tethered chipyard-symmetric chipyard-llcchiplet" -grouping["group-accels"]="chipyard-mempress chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla chipyard-aes256ecb chipyard-rerocc" +grouping["group-accels"]="chipyard-compressacc chipyard-mempress chipyard-gemmini chipyard-manymmioaccels chipyard-nvdla chipyard-aes256ecb chipyard-rerocc" grouping["group-constellation"]="chipyard-constellation" grouping["group-tracegen"]="tracegen tracegen-boomv3 tracegen-boomv4" grouping["group-other"]="icenet testchipip constellation rocketchip-amba rocketchip-tlsimple rocketchip-tlwidth rocketchip-tlxbar chipyard-clusters" @@ -41,6 +41,7 @@ declare -A mapping mapping["chipyard-rocket"]=" CONFIG=QuadChannelRocketConfig" mapping["chipyard-dmirocket"]=" CONFIG=dmiRocketConfig" mapping["chipyard-mempress"]=" CONFIG=MempressRocketConfig" +mapping["chipyard-compressacc"]=" CONFIG=ZstdCompressorRocketConfig" mapping["chipyard-prefetchers"]=" CONFIG=PrefetchingRocketConfig" mapping["chipyard-digitaltop"]=" TOP=DigitalTop" mapping["chipyard-manymmioaccels"]=" CONFIG=ManyMMIOAcceleratorRocketConfig" diff --git a/.github/scripts/run-tests.sh b/.github/scripts/run-tests.sh index 90fe0687a3..06da2ae249 100755 --- a/.github/scripts/run-tests.sh +++ b/.github/scripts/run-tests.sh @@ -89,6 +89,10 @@ case $1 in (cd $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make) run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv ;; + chipyard-compressacc) + (cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh) + run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv + ;; chipyard-manymmioaccels) make -C $LOCAL_CHIPYARD_DIR/tests diff --git a/.github/workflows/chipyard-run-tests.yml b/.github/workflows/chipyard-run-tests.yml index 24654306a6..d86c75c907 100644 --- a/.github/workflows/chipyard-run-tests.yml +++ b/.github/workflows/chipyard-run-tests.yml @@ -892,6 +892,29 @@ jobs: group-key: "group-accels" project-key: "chipyard-mempress" + chipyard-compressacc-run-tests: + name: chipyard-compressacc-run-tests + needs: prepare-chipyard-accels + runs-on: as4 + 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-compressacc" + tracegen-boomv3-run-tests: name: tracegen-boomv3-run-tests @@ -1171,6 +1194,7 @@ jobs: chipyard-manymmioaccels-run-tests, # chipyard-nvdla-run-tests, chipyard-prefetchers-run-tests, chipyard-mempress-run-tests, + chipyard-compressacc-run-tests, chipyard-constellation-run-tests, tracegen-boomv3-run-tests, tracegen-boomv4-run-tests, diff --git a/generators/compress-acc b/generators/compress-acc index bca56fff7c..7630f81ac5 160000 --- a/generators/compress-acc +++ b/generators/compress-acc @@ -1 +1 @@ -Subproject commit bca56fff7cc0f9df12a00c0958c738318e371daf +Subproject commit 7630f81ac58723d2c599d12c3dac67ce4263e220 From 88c715c78c5a091d522e5ecde197255259649a02 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 14:42:15 -0700 Subject: [PATCH 03/10] update compress-acc url to https --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 86f25ca8af..1f5f3a07f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -147,4 +147,4 @@ url = https://github.com/ucb-bar/rerocc.git [submodule "generators/compress-acc"] path = generators/compress-acc - url = git@github.com:ucb-bar/compress-acc.git + url = https://github.com:ucb-bar/compress-acc.git From 47fb71a15294215d51f28d1577edca5ef99c58dd Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 14:51:20 -0700 Subject: [PATCH 04/10] Add docs --- docs/Generators/CompressAcc.rst | 6 ++++++ docs/Generators/index.rst | 1 + 2 files changed, 7 insertions(+) create mode 100644 docs/Generators/CompressAcc.rst diff --git a/docs/Generators/CompressAcc.rst b/docs/Generators/CompressAcc.rst new file mode 100644 index 0000000000..b18b47092f --- /dev/null +++ b/docs/Generators/CompressAcc.rst @@ -0,0 +1,6 @@ +CompressAcc +==================================== + +We have (de)compression accelerators for two major compression algorithms : Snappy(`Snappy Github `__) and ZStd(`ZStd Github `__). + +For more information, check out the CDPU paper: `CDPU: Co-designing Compression and Decompression Processing Units for Hyperscale Systems `__ . diff --git a/docs/Generators/index.rst b/docs/Generators/index.rst index 88d9ee2a0b..d55dce0cc8 100644 --- a/docs/Generators/index.rst +++ b/docs/Generators/index.rst @@ -33,4 +33,5 @@ so changes to the generators themselves will automatically be used when building Sodor Shuttle Mempress + CompressAcc Prefetchers From f6f7cbd863c764007edabef898c2f72ecc678334 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 14:56:44 -0700 Subject: [PATCH 05/10] url oops --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 1f5f3a07f1..6ff8ac86f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -147,4 +147,4 @@ url = https://github.com/ucb-bar/rerocc.git [submodule "generators/compress-acc"] path = generators/compress-acc - url = https://github.com:ucb-bar/compress-acc.git + url = https://github.com/ucb-bar/compress-acc.git From 00cdfc0ff869b7817a51491c0e16d29e8c4e1bdb Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 15:07:49 -0700 Subject: [PATCH 06/10] Bump compress-acc --- generators/compress-acc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/compress-acc b/generators/compress-acc index 7630f81ac5..78a79cf485 160000 --- a/generators/compress-acc +++ b/generators/compress-acc @@ -1 +1 @@ -Subproject commit 7630f81ac58723d2c599d12c3dac67ce4263e220 +Subproject commit 78a79cf4851dc66c3a5eab8da00c2e09e2bf7c88 From a441e3996a10e4ee7802bb7f36f6e36626dda61a Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 16:14:22 -0700 Subject: [PATCH 07/10] BUMP --- generators/compress-acc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/compress-acc b/generators/compress-acc index 78a79cf485..0a67cf19d5 160000 --- a/generators/compress-acc +++ b/generators/compress-acc @@ -1 +1 @@ -Subproject commit 78a79cf4851dc66c3a5eab8da00c2e09e2bf7c88 +Subproject commit 0a67cf19d5317252142f79e5f387d16e7208dcc6 From 706db13ce99221b0abe5874d314334ff3ba294c6 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Fri, 21 Jun 2024 16:29:38 -0700 Subject: [PATCH 08/10] Use loadmem for ci runs --- .github/scripts/run-tests.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/scripts/run-tests.sh b/.github/scripts/run-tests.sh index 06da2ae249..6855e15a2b 100755 --- a/.github/scripts/run-tests.sh +++ b/.github/scripts/run-tests.sh @@ -72,7 +72,7 @@ case $1 in run_bmark ;; chipyard-prefetchers) - run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv + run_binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/benchmarks/dhrystone.riscv LOADMEM=1 ;; rocketchip) run_bmark @@ -81,17 +81,17 @@ case $1 in GEMMINI_SOFTWARE_DIR=$LOCAL_SIM_DIR/../../generators/gemmini/software/gemmini-rocc-tests rm -rf $GEMMINI_SOFTWARE_DIR/riscv-tests cd $LOCAL_SIM_DIR - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal - run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal + run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/aligned-baremetal LOADMEM=1 + run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/raw_hazard-baremetal LOADMEM=1 + run_binary BINARY=$GEMMINI_SOFTWARE_DIR/build/bareMetalC/mvin_mvout-baremetal LOADMEM=1 ;; chipyard-mempress) (cd $LOCAL_CHIPYARD_DIR/generators/mempress/software/src && make) - run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv + run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/mempress/software/src/mempress-rocc.riscv LOADMEM=1 ;; chipyard-compressacc) (cd $LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress && ./build-hcb-single-file.sh) - run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv + run_binary BINARY=$LOCAL_CHIPYARD_DIR/generators/compress-acc/software-zstd/compress/009987_cl0_ws12.riscv LOADMEM=1 ;; chipyard-manymmioaccels) make -C $LOCAL_CHIPYARD_DIR/tests From f8e1c3f2f5c664f47f647f0868ace3a99bad67f6 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Sat, 22 Jun 2024 10:43:11 -0700 Subject: [PATCH 09/10] Add width widget --- .../chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala | 1 - generators/compress-acc | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala b/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala index ca1eeabc95..960872b12b 100644 --- a/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RoCCAcceleratorConfigs.scala @@ -70,6 +70,5 @@ class ReRoCCManyGemminiConfig extends Config( class ZstdCompressorRocketConfig extends Config( new compressacc.WithZstdCompressor ++ - new chipyard.config.WithSystemBusWidth(256) ++ new freechips.rocketchip.subsystem.WithNBigCores(1) ++ new chipyard.config.AbstractConfig) diff --git a/generators/compress-acc b/generators/compress-acc index 0a67cf19d5..b0cc3224b7 160000 --- a/generators/compress-acc +++ b/generators/compress-acc @@ -1 +1 @@ -Subproject commit 0a67cf19d5317252142f79e5f387d16e7208dcc6 +Subproject commit b0cc3224b78f5bca9aaa9501985193748c5a3b61 From 4c7da3babf49f2d34ec4b45f84a08ba72b082c94 Mon Sep 17 00:00:00 2001 From: "joonho.whangbo" Date: Sat, 22 Jun 2024 13:45:43 -0700 Subject: [PATCH 10/10] Bump --- generators/compress-acc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/compress-acc b/generators/compress-acc index b0cc3224b7..580fc99a8d 160000 --- a/generators/compress-acc +++ b/generators/compress-acc @@ -1 +1 @@ -Subproject commit b0cc3224b78f5bca9aaa9501985193748c5a3b61 +Subproject commit 580fc99a8de7e6965c5bc9f08945bc854d7d2a0c