Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
49cddd2
Deeploy Microbenchmark with GVSoC CSR and Demo on GEMM
runwangdl Feb 12, 2026
b260e4e
Add float concat and Change padding pattern of ConV
runwangdl Feb 13, 2026
7b55d0a
Merge branch 'devel' into sleepvit
runwangdl Feb 15, 2026
5a79c79
Support SleepViT on Gap9
runwangdl Feb 15, 2026
609179c
Add microbenchmark to codepass
runwangdl Feb 15, 2026
bedec91
Add GAP9 Container Support
Xeratec Feb 12, 2026
97c2d2b
Fix spelling mistakes and remove dependencies from fork
Xeratec Feb 4, 2026
3423c54
Fix Missing Version Link
Xeratec Feb 6, 2026
d6b6ac9
Temporarily disable GAP9 on forks
Xeratec Feb 8, 2026
daf8cda
Add Shell Format pre-commit
Xeratec Feb 12, 2026
f1c7d57
Update to GAP9 SDK `v5.21.1-staging-1`
Xeratec Feb 12, 2026
646563d
Print memory usage by default
Xeratec Feb 12, 2026
b2b43a5
Cleanup Makefile
Xeratec Feb 13, 2026
1a075d0
Try to fix private GAP9 SDK access issue
Xeratec Feb 13, 2026
2bb1bf5
Use pre-build GAP9 GCC
Xeratec Feb 16, 2026
af405a2
Fix Typos
Xeratec Feb 16, 2026
c6bc2c6
Partially revert a16c1c757928ed37f89d2744609fd97bb3ddd702
Xeratec Feb 16, 2026
d325f79
Build AutoTiler
Xeratec Feb 16, 2026
53b4bb9
CodeAIRabbit Feedback
Xeratec Feb 16, 2026
6d1c8c3
Update Changelog
Xeratec Feb 17, 2026
6db1c52
CodeAIRabbit Feedback
Xeratec Feb 17, 2026
ba6c1e8
Add single kernel tests for random perturbations
JanCSEM Feb 19, 2026
90edc44
Add ZO model tests
JanCSEM Feb 19, 2026
4bcefd3
Cherry picked NCHW->NHWC transform issue
JanCSEM Jan 13, 2026
44699b2
FIX: Bug in conv2D parser assigning kernel shape regardless of channe…
JanCSEM Feb 19, 2026
2b5f611
Fix compilation bugs caused by ZO nodes
JanCSEM Feb 20, 2026
846d4dd
Add option to deploy on the board for the GAP9 platform
Victor-Jung Jan 21, 2026
ae3c4d1
WIP: Better error message when attaching usbip and vid + pid of the n…
Victor-Jung Feb 20, 2026
02ac6c9
remove prints
JanCSEM Feb 20, 2026
5911375
Remove debugging test, add Eggroll test+
JanCSEM Feb 21, 2026
03b6aa9
Add implementation of Eggroll kernel
JanCSEM Feb 21, 2026
874e777
Add proper D flag for GAP9 board
Victor-Jung Feb 23, 2026
fbbea5f
Fix gapy cmd and add comment to dockerfile
Victor-Jung Feb 23, 2026
6b68b73
Live print of the simulator cmd
Victor-Jung Feb 23, 2026
e541c87
Initial Training platform
runwangdl Feb 25, 2026
8fbf03b
Updated training update with gradient accumulation and optimizer update
runwangdl Feb 26, 2026
54f5832
Add MLP_Train Test
runwangdl Feb 26, 2026
675dc33
Fix imports
Victor-Jung Feb 26, 2026
c999a2e
Added support for Eggroll ZO perturbation
JanCSEM Feb 26, 2026
4df0282
Add training test harness for GAP9
Victor-Jung Feb 27, 2026
65aa38c
Debug eggroll kernel
JanCSEM Feb 28, 2026
93724ee
Port Noise kernels to GAP9
JanCSEM Feb 28, 2026
c705477
HACK: explicitly import PULP kernels into network.c
JanCSEM Feb 28, 2026
49a9de6
HACK: Explicitly import PULP kernels into GAP9's network.c
JanCSEM Feb 28, 2026
af7f5d4
HACK: Explicitly import PULP kernels into GAP9's network.c
JanCSEM Feb 28, 2026
69ebf5a
merge sleepvit
JanCSEM Feb 28, 2026
962d809
Fix commented code
Victor-Jung Mar 2, 2026
3bdc0ff
Temporal Changes for Multi-Ouput Kernels to fit the new testtraining …
runwangdl Mar 2, 2026
4f949b0
Add Small Conv+Transformer Test for training untiled platform
runwangdl Mar 2, 2026
a93b6d1
Enable Transformer training for Siracusa GVSoC
Victor-Jung Mar 2, 2026
a77ead9
Alloc failure on board during first inference + bp
Victor-Jung Mar 2, 2026
6210437
RISCV-SUMMIT Demo
runwangdl Mar 3, 2026
e98b7c1
Avoid generation redundant memory copy for the same input during mult…
runwangdl Mar 2, 2026
6916a80
Add relu grad
runwangdl Mar 3, 2026
b060e67
Wrong Free of aliased_input
runwangdl Mar 3, 2026
99bbbf6
LATEST DEMO for RISCV SUBMIT
runwangdl Mar 3, 2026
fd3722e
[GAP9] Loop properly around dateset in train harness
Victor-Jung Mar 4, 2026
565125a
[GAP9] Add relugrad + add debugprint fp32 +
Victor-Jung Mar 4, 2026
9c918bc
Set layer norm esp to 0.0001
Victor-Jung Mar 4, 2026
1f82f07
Adding noise kernel microbenchmarks
JanCSEM Mar 6, 2026
a1a5369
Optimized kernels with function call removals and loop unrolling
JanCSEM Mar 9, 2026
90d75ad
Fix redundant seed mixing
JanCSEM Mar 9, 2026
7a7564e
.gitignore
Mar 10, 2026
f45542a
fix merge conflicts
Mar 10, 2026
43a798b
Optimize Ziggurat and Box-muller kernels
Mar 13, 2026
43902a6
update LiteCNN tests, and added QLiteCNN tests
JanCSEM Mar 13, 2026
143ad15
add labels to ZO graph inputs
JanCSEM Mar 13, 2026
c18af62
Fix inputs.npz for ZO graphs
JanCSEM Mar 13, 2026
66888da
update inputs.npz
JanCSEM Mar 13, 2026
769abe7
Rename loss to log prob to not upset deeploy
JanCSEM Mar 13, 2026
0f7c1a2
ZO softmax cross entropy debug
Mar 14, 2026
12f311a
Fix issues with shapes being integer
JanCSEM Mar 14, 2026
8483963
Fix QLiteCNN, add support for Tiled Quant/Dequant nodes
JanCSEM Mar 14, 2026
701e60c
Noise test updates
JanCSEM Mar 15, 2026
871d07b
Add integer Random Noise kernels
JanCSEM Mar 15, 2026
1b01b67
Add RQS Kernel tests
JanCSEM Mar 15, 2026
b68ad2d
Bug fixes on quantized noise graphs
JanCSEM Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/_runner-gap9-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ jobs:
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
export GVSOC_INSTALL_DIR=/app/install/gap9-sdk/install/workstation
export GAP_RISCV_GCC_TOOLCHAIN=/app/install/gcc/gap9
cd DeeployTest
mkdir -p /app/.ccache
export CCACHE_DIR=/app/.ccache
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/_runner-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ jobs:
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
export GVSOC_INSTALL_DIR=/app/install/gap9-sdk/install/workstation
export GAP_RISCV_GCC_TOOLCHAIN=/app/install/gcc/gap9
cd DeeployTest
mkdir -p /app/.ccache
export CCACHE_DIR=/app/.ccache
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-platform-gap9-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ concurrency:

jobs:
select-env:
if: github.repository == 'pulp-platform/Deeploy'
uses: ./.github/workflows/_select-env.yml
with:
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || github.repository == 'pulp-platform/Deeploy' && 'ghcr.io/pulp-platform/deeploy-gap9:latest'}}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-platform-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ concurrency:

jobs:
select-env:
if: github.repository == 'pulp-platform/Deeploy'
uses: ./.github/workflows/_select-env.yml
with:
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || (github.repository == 'pulp-platform/Deeploy' && 'ghcr.io/pulp-platform/deeploy-gap9:latest') }}
Expand Down
150 changes: 150 additions & 0 deletions .github/workflows/docker-build-deeploy-gap9.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: Docker • Build Deeploy GAP9 Container

"on":
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy:latest"

jobs:
prepare:
name: Fetch branch name or tag
runs-on: ubuntu-latest
outputs:
docker_tag: ${{ steps.generate_tag.outputs.docker_tag }}
steps:
- uses: actions/checkout@v4

- name: Set up environment variables
run: |
echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
echo "TAG_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
echo "IS_TAG=${GITHUB_REF_TYPE}" >> $GITHUB_ENV

- name: Set Docker tag
id: generate_tag
run: |
if [[ "${{ env.IS_TAG }}" == "tag" ]]; then
echo "docker_tag=${{ env.TAG_NAME }}" >> $GITHUB_OUTPUT
else
echo "docker_tag=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT
fi

build-deeploy-gap9:
name: Build Deeploy GAP9 Image
needs: [prepare]
runs-on: ${{ matrix.runner }}
outputs:
digest-amd64: ${{ steps.digest.outputs.digest-amd64 }}
digest-arm64: ${{ steps.digest.outputs.digest-arm64 }}
strategy:
fail-fast: false
matrix:
platform: [amd64, arm64]
include:
- platform: amd64
runner: ubuntu-latest
- platform: arm64
runner: ubuntu-22.04-arm
steps:
- uses: actions/checkout@v4

- name: Free up disk space
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true

- uses: docker/setup-buildx-action@v3

- name: GHCR Log-in
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Cache for Docker
id: cache
uses: actions/cache@v4
with:
path: var-ccache
key: ${{ runner.os }}-${{ matrix.platform }}-build-cache-deeploy-gap9

- name: Inject build-cache
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
with:
cache-map: |
{
"var-ccache": "/ccache"
}
skip-extraction: ${{ steps.cache.outputs.cache-hit }}

- name: Lower Case Repository Name
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: "${{ github.repository_owner }}"

- name: Load SSH key
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

- name: Build and push final Deeploy image
id: build
uses: docker/build-push-action@v6
with:
platforms: linux/${{ matrix.platform }}
context: .
cache-from: type=gha
cache-to: type=gha,mode=min
file: Container/Dockerfile.deeploy-gap9
push: true
build-args: |
DEEPLOY_IMAGE=${{ github.event.inputs.docker_image_deeploy }}
ssh: default
outputs: type=image,name=ghcr.io/${{ env.OWNER_LC }}/deeploy-gap9,annotation-index=true,name-canonical=true,push=true

- name: Extract image digest
id: digest
run: echo "digest-${{ matrix.platform }}=${{ steps.build.outputs.digest }}" >> $GITHUB_OUTPUT

merge-deeploy-gap9-images:
name: Merge Deeploy GAP9 Images
runs-on: ubuntu-latest
needs: [prepare, build-deeploy-gap9]
steps:
- name: GHCR Log-in
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Lower Case Repository Name
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: "${{ github.repository_owner }}"

- name: Merge Deeploy GAP9 Images
uses: Noelware/docker-manifest-action@v1
with:
inputs: |
ghcr.io/${{ env.OWNER_LC }}/deeploy-gap9@${{ needs.build-deeploy-gap9.outputs.digest-amd64 }},
ghcr.io/${{ env.OWNER_LC }}/deeploy-gap9@${{ needs.build-deeploy-gap9.outputs.digest-arm64 }}
tags: |
ghcr.io/${{ env.OWNER_LC }}/deeploy-gap9:latest,
ghcr.io/${{ env.OWNER_LC }}/deeploy-gap9:${{ needs.prepare.outputs.docker_tag }}
push: true
2 changes: 1 addition & 1 deletion .github/workflows/docker-build-deeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ jobs:
env:
OWNER: "${{ github.repository_owner }}"

- name: Build and push final deploy image
- name: Build and push final Deeploy image
id: build
uses: docker/build-push-action@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/infra-generate-ccache-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ name: Infrastructure • Generate CCache GAP9

jobs:
generate-ccache-gap9:
if: github.repository == 'pulp-platform/Deeploy'
runs-on: ubuntu-latest
container:
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:latest' }}
Expand All @@ -39,7 +40,6 @@ jobs:
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
export GVSOC_INSTALL_DIR=/app/install/gap9-sdk/install/workstation
export GAP_RISCV_GCC_TOOLCHAIN=/app/install/gcc/gap9
cd DeeployTest
mkdir -p /app/.ccache
export CCACHE_DIR=/app/.ccache
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ install/
compile_commands.json
toolchain/**/*/


# Node
package.json
package-lock.json
Expand Down Expand Up @@ -51,4 +52,10 @@ DeeployTest/Tests/**/*.json
DeeployTest/Tests/**/generateTest.py
DeeployTest/out.txt

venv/
**/.venv/
CHANGELOG_GEN.md

# Container Artifacts
.pyusbip/
.cache/
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ exclude: |
| .*TEST_.*
| .*TestFiles.*
| .*runtime.*
| .*\.patch
| .*prebuilt/.*
)

Expand Down Expand Up @@ -71,3 +72,7 @@ repos:
- id: yamllint
name: Lint YAML Files
stages: [pre-commit, pre-merge-commit, pre-push, manual]
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
hooks:
- id: shfmt
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@ This file contains the changelog for the Deeploy project. The changelog is divid


### List of Pull Requests
- Add GAP9 Container Support [#163](https://github.com/pulp-platform/Deeploy/pull/163)
- Extend Codeowners [#164](https://github.com/pulp-platform/Deeploy/pull/164)
- Support for MaxPool1D and RQSConv1D for PULPOpen [#146](https://github.com/pulp-platform/Deeploy/pull/146)
- Use Pre-Commit in CI [#159](https://github.com/pulp-platform/Deeploy/pull/159)
- Deeploy-GAP9 Platform [#143](https://github.com/pulp-platform/Deeploy/pull/143)
- Update CLI interface Across Project, Fix Tutorial, and Remove Legacy Test [#157](https://github.com/pulp-platform/Deeploy/pull/157)

### Added
- GAP9 Container Support with ARM64 architecture support
- `zsh` and `oh-my-zsh` plugin installation in containers
- Shell Format pre-commit hook
- Add integer MaxPool1D for Generic platform and RQSConv1D support for PULPOpen, with corresponding kernel tests.
- Added GAP9 Platform Support: Deployer, Bindings, Templates, Tiler, DMA (L3Dma/MchanDma), target library, CI workflows

### Changed
- Cleaned up Docker flow to use a temporary build folder
- Switch CI to use pre-commit for linting
- Update `pulp-nnx` and `pulp-nn-mixed` submodules to their latest versions
- PULP-NN moved to TargetLibraries third-party folder
Expand Down
12 changes: 11 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,16 @@ elseif(platform STREQUAL PULPOpen)
elseif(platform STREQUAL GAP9)
message(STATUS "Building for platform 'GAP9'")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(ENV{KCONFIG_CONFIG} DeeployTest/Platforms/GAP9/sdk.config)

# Select SDK config based on simulator type
if(SIMULATOR STREQUAL "board")
set(ENV{KCONFIG_CONFIG} DeeployTest/Platforms/GAP9/sdk_board.config)
message(STATUS "[GAP9] Using board SDK configuration")
else()
set(ENV{KCONFIG_CONFIG} DeeployTest/Platforms/GAP9/sdk_gvsoc.config)
message(STATUS "[GAP9] Using GVSoC SDK configuration")
endif()

include($ENV{GAP_SDK_HOME}/utils/cmake/setup.cmake)
elseif(platform STREQUAL Generic)
message(STATUS "Building for platform 'Generic'")
Expand Down Expand Up @@ -225,6 +234,7 @@ endif()
if(platform STREQUAL GAP9)
project(${TESTNAME} LANGUAGES C ASM)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/gap9/gap9_gvsoc.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/cmake/gap9/gap9_board.cmake)
add_compile_options(
-Wno-error=unknown-pragmas
)
Expand Down
Loading