Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
3d55d6a
Extend Dockerflow with GAP9 Support
Xeratec Nov 13, 2025
8ae3fef
Improve speed of LLVM cloning
Xeratec Nov 12, 2025
6acde80
Initial GAP9 Support
Xeratec Nov 13, 2025
a7ac74e
Minor cleanup
Xeratec Nov 13, 2025
f916db8
Update Readme
Xeratec Nov 13, 2025
3cd6e29
[GAP9] Fix DeeployTest.c nested team fork issue
runwangdl Nov 14, 2025
9ca4595
[GAP9]Fix GCC segmentation fault in Transpose template syntax
runwangdl Nov 14, 2025
7e77991
[GAP9] Link PULP-NN
runwangdl Nov 15, 2025
294d83a
[GAP9] OpRepre n_cores Missing
runwangdl Nov 15, 2025
4946ed5
[GAP9] LInk Math and PULP Kernels
runwangdl Nov 15, 2025
a08b6fd
[GAP9] Replace MCHAN DMA with cl_dma.h API and Decouple deployer form…
runwangdl Nov 17, 2025
b51e29d
[GAP0] WIP Tiling Support for L3
runwangdl Nov 21, 2025
6b5c2e5
[GAP9] Layernorm Epsilon ABI Issue
runwangdl Nov 21, 2025
3a1d877
[GAP9] Fixed Zero Cyclecounter Issue
runwangdl Nov 27, 2025
faa6421
[GAP9] Add CI
runwangdl Nov 28, 2025
584729c
[GAP9] Fix L2 GVSoC target build with hexlist
runwangdl Nov 28, 2025
3e2fc87
[GAP9] Sdk.config add macro for clusterstack
runwangdl Nov 28, 2025
6b55e98
[GAP9] Fix Cluster DMA Concurrent Tasks Bug with Mchan Template from …
runwangdl Nov 30, 2025
ccaad61
[GAP9] Fix free template from PULP-sdk to GAP9sdk
runwangdl Nov 30, 2025
af01a2e
[GAP9] Fix duplicate L3 Alloc Code generation due to PULP inheritance…
runwangdl Nov 30, 2025
e4ed675
Merge remote-tracking branch 'run/devel' into gap9-operators-github
runwangdl Nov 30, 2025
71896e7
[GAP9] Change GAP9 DWConV Based on PULP change
runwangdl Nov 30, 2025
f88d5c5
[GAP-CI] Update runner-gap9.yml
runwangdl Dec 16, 2025
4429a6a
[GAP-CI] Some CI Bugs fixed
runwangdl Dec 17, 2025
40d1dec
Update default docker for gap9 platform
runwangdl Jan 11, 2026
ff05304
Change other target to default docker
runwangdl Jan 11, 2026
c5cce58
Merge remote-tracking branch 'origin/devel' into gap9-operators-github
runwangdl Feb 3, 2026
9b72ff6
GAP9 PyTest Adaptation
runwangdl Feb 3, 2026
f9a785d
Apply Philip's Patch about GAP9 workflow
runwangdl Feb 4, 2026
8ba22ba
Add math.h to sqrt.c
runwangdl Feb 4, 2026
e94bef0
Change the config list for GAP9
runwangdl Feb 4, 2026
c75553f
Change docker to private pulp deeploy-gap9 docker
runwangdl Feb 4, 2026
0dd9596
Add pre-built pulp-nn-mixed library
runwangdl Feb 4, 2026
f374493
Select docker based on Repo
runwangdl Feb 4, 2026
3b74a29
Correct config list for Gap9
runwangdl Feb 4, 2026
a42f620
Correct config list 2.0
runwangdl Feb 4, 2026
bd526dc
fix linting
runwangdl Feb 4, 2026
60a7e0e
Softhier bug because extra printf"init network"
runwangdl Feb 4, 2026
5649f96
Fix Comments: - Add L3 tests and fix build configuration issues
runwangdl Feb 4, 2026
06289bf
Fix linting
runwangdl Feb 4, 2026
82de2e1
Fix Linting 2.0
runwangdl Feb 4, 2026
adfe9f3
Exclude prebuilt directories from license checks
runwangdl Feb 4, 2026
67e7e5b
Fix coderabbit comments
runwangdl Feb 4, 2026
67bbbb5
Remove unwanted changes from GAP9 prebuilt library commit
runwangdl Feb 5, 2026
a0e65a6
Move pulp-nn to targetlibrary/third-party and correct ci workflow sel…
runwangdl Feb 5, 2026
3dd6ec1
Trigger CI
runwangdl Feb 5, 2026
09c70ab
Register submodules at new paths in TargetLibraries/third_party/
runwangdl Feb 5, 2026
6fb9cd2
Fix CMake add_subdirectory for out-of-tree sources
runwangdl Feb 5, 2026
c4768e1
Change CHANGELOG
runwangdl Feb 5, 2026
8593fdf
Merge branch 'devel' into gap9-operators-github
runwangdl Feb 5, 2026
c4a4de6
Merge remote-tracking branch 'origin/devel' into gap9-operators-github
Xeratec Feb 6, 2026
f0be2ec
Fix Changelog
Xeratec Feb 6, 2026
36cf5bc
Fix formatting
Xeratec Feb 6, 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
54 changes: 54 additions & 0 deletions .github/workflows/_runner-gap9-tiled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: _runner-gap9-tiled

"on":
workflow_call:
inputs:
runner:
required: true
type: string
docker-image:
required: true
type: string
pytest-markers:
required: true
type: string

jobs:
test-runner-gap9-tiled:
runs-on: ${{ inputs.runner }}
container:
image: ${{ inputs.docker-image }}
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build Deeploy
shell: bash
run: |
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
pip install -e . || true
deactivate
- name: Cache ccache
uses: actions/cache/restore@v4
with:
path: /app/.ccache
key: ccache-gap9
- name: Run Test
run: |
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
pytest test_platforms.py -v -m "${{ inputs.pytest-markers }}"
deactivate
shell: bash
54 changes: 54 additions & 0 deletions .github/workflows/_runner-gap9.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: _runner-gap9

"on":
workflow_call:
inputs:
runner:
required: true
type: string
docker-image:
required: true
type: string
pytest-marker:
required: true
type: string

jobs:
test-runner-gap9:
runs-on: ${{ inputs.runner }}
container:
image: ${{ inputs.docker-image }}
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build Deeploy
shell: bash
run: |
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
pip install -e . || true
deactivate
- name: Cache ccache
uses: actions/cache/restore@v4
with:
path: /app/.ccache
key: ccache-gap9
- name: Run Test
run: |
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
pytest test_platforms.py -v -n 4 -m "gap9 and ${{ inputs.pytest-marker }}"
deactivate
shell: bash
2 changes: 1 addition & 1 deletion .github/workflows/ci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ jobs:
- name: Check Licenses
shell: bash
run: |
python scripts/reuse_skip_wrapper.py $(find . \( -name '*.py' -o -name '*.c' -o -name '*.h' -o -name '*.html' -o -name '*.rst' -o -name '*.yml' -o -name '*.yaml' \) -not -path "*toolchain*" -not -path "*third_party*" -not -path "*.git/*" -not -path "*install/*" -type f)
python scripts/reuse_skip_wrapper.py $(find . \( -name '*.py' -o -name '*.c' -o -name '*.h' -o -name '*.html' -o -name '*.rst' -o -name '*.yml' -o -name '*.yaml' \) -not -path "*toolchain*" -not -path "*third_party*" -not -path "*prebuilt*" -not -path "*.git/*" -not -path "*install/*" -type f)
62 changes: 62 additions & 0 deletions .github/workflows/ci-platform-gap9-tiled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: CI • GAP9 (Tiled)

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:latest"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
select-env:
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'}}

gap9-kernels-tiled-singlebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-gap9-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-markers: "gap9_tiled and kernels and singlebuffer and l2"

gap9-kernels-tiled-doublebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-gap9-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-markers: "gap9_tiled and kernels and doublebuffer and l2"

gap9-models-tiled-singlebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-gap9-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-markers: "gap9_tiled and models and singlebuffer and l2"

gap9-models-tiled-doublebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-gap9-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-markers: "gap9_tiled and models and doublebuffer and l2"
47 changes: 47 additions & 0 deletions .github/workflows/ci-platform-gap9.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: CI • GAP9

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:latest"


concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
select-env:
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') }}

gap9-kernels:
needs: select-env
uses: ./.github/workflows/_runner-gap9.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "kernels"

gap9-models:
needs: select-env
uses: ./.github/workflows/_runner-gap9.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "models"
54 changes: 54 additions & 0 deletions .github/workflows/infra-generate-ccache-gap9.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: Infrastructure • Generate CCache GAP9

"on":
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy GAP9 Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:latest"
schedule:
# Runs the workflow on the default branch every day at 2AM CET to keep the cache fresh
- cron: "0 2 * * *"

jobs:
generate-ccache-gap9:
runs-on: ubuntu-latest
container:
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:latest' }}
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build Deeploy
shell: bash
run: |
source /app/install/gap9-sdk/.gap9-venv/bin/activate
source /app/install/gap9-sdk/configs/gap9_evk_audio.sh || true
pip install -e . || true
deactivate

- name: Generate CCache for GAP9
run: |
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
pytest 'test_platforms.py::test_gap9_kernels[Kernels/Integer/Add/Regular]' --skipsim
pytest 'test_platforms.py::test_gap9_tiled_kernels_l2_singlebuffer[Kernels/Integer/Add/Large-5000-L2-singlebuffer]' --skipsim
deactivate

- name: Clean and Upload CCache
uses: actions/cache@v4
with:
path: /app/.ccache
key: ccache-gap9
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# SPDX-License-Identifier: Apache-2.0

[submodule "pulp-nn-mixed"]
path = TargetLibraries/PULPOpen/third_party/pulp-nn-mixed
path = TargetLibraries/third_party/pulp-nn-mixed
url = https://github.com/pulp-platform/pulp-nn-mixed.git
[submodule "pulp-nnx"]
path = TargetLibraries/PULPOpen/third_party/pulp-nnx
path = TargetLibraries/third_party/pulp-nnx
url = https://github.com/pulp-platform/pulp-nnx.git
[submodule "CMSIS-NN"]
path = TargetLibraries/CMSIS/third_party/CMSIS-NN
Expand Down
7 changes: 5 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ This file contains the changelog for the Deeploy project. The changelog is divid


### List of Pull Requests
- 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
-
- Added GAP9 Platform Support: Deployer, Bindings, Templates, Tiler, DMA (L3Dma/MchanDma), target library, CI workflows

### Changed
- Update `pulp-nnx` and `pulp-nn-mixed` submodules to their latest versions
- PULP-NN moved to TargetLibraries third-party folder
- Aligned CLI commands across the project

### Fixed
Expand Down Expand Up @@ -50,7 +53,7 @@ This file contains the changelog for the Deeploy project. The changelog is divid
- Fix bias hoisting in generic GEMM with no bias [#126](https://github.com/pulp-platform/Deeploy/pull/126)

### Added
- The `publish.yml` action to build a branch and push it to PyPi. The action is automatically triggered when a tag with the "v*" format is emitted.
- The `publish.yml` action to build a branch and push it to PyPi. The action is automatically triggered when a tag with the "v*" format is emitted.
- I created a release of [Banshee](https://github.com/pulp-platform/banshee/releases/tag/v0.5.0-prebuilt) so we don't need to rebuild it over and over. The `Makefile` now pulls that release depending on the platform.
- I bumped the onnx-graphsurgeon version such that we don't need to use NVIDIA's PyPi index anymore.
- `_export_graph` assigns their export type to the tensors before export.
Expand Down
Loading
Loading