Skip to content

OPEN: Snitch support integration - #14

Merged
Victor-Jung merged 14 commits into
pulp-platform:develfrom
tahaelbayad:snitch_support_integration
Dec 12, 2024
Merged

OPEN: Snitch support integration#14
Victor-Jung merged 14 commits into
pulp-platform:develfrom
tahaelbayad:snitch_support_integration

Conversation

@tahaelbayad

Copy link
Copy Markdown
Contributor

This PR adds the support for the Snitch Cluster and its testing infrastructure already integrated in the GitLab repository.

Added

  • cMake Flow for the Snitch Cluster
  • Added snitch_cluster to Makefile
  • New Snitch platform with testing application
  • Testrunner for tiled and untiled execution (testRunner_snitch.py, testRunner_tiled_snitch.py)
  • Minimal library with CycleCounter and utility function (deeploy_log)

@Victor-Jung
Victor-Jung marked this pull request as ready for review November 28, 2024 13:27
@Victor-JungVictor-Jung changed the title DRAFT: Snitch support integrationOPEN: Snitch support integrationNov 28, 2024
@Victor-JungVictor-Jung added the Feature Addition of new features label Nov 28, 2024
add snitch support
snitch repo changed
snitch repo changed
switching to main branch of snitch
add snitch and banshee commit hash
@tahaelbayad
tahaelbayadforce-pushed the snitch_support_integration branch from d66d7ae to dca8455CompareNovember 28, 2024 18:58
fixing typo
change image in yml files
cahnge image in yml files
fix typo
@tahaelbayad
tahaelbayadforce-pushed the snitch_support_integration branch from dca8455 to 57ca63eCompareNovember 28, 2024 19:05
linting
@tahaelbayad
tahaelbayadforce-pushed the snitch_support_integration branch from 57ca63e to da662e1CompareNovember 28, 2024 19:08

@lukamaclukamac left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not bad but needs a few changes here and there.
I still haven't looked properly at the Dockerfile so there might be some comments there too.

Comment threadContainer/Dockerfile Outdated
Comment threadMakefile Outdated
Comment threadTargetLibraries/Snitch/CMakeLists.txt Outdated
Comment threadTargetLibraries/Snitch/scripts/run_clang_format.py Outdated
Comment thread.github/workflows/CI.yml Outdated
runs-on: ubuntu-22.04
container:
image: ghcr.io/pulp-platform/deeploy:main
image: ghcr.io/tahaelbayad/deeploy:main

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At what point do we change this? Right before merging and ensuring we rebuild the pulp-platform docker container, right?
(Same for the other occurrences)

@Victor-JungVictor-JungDec 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly. First, we check that the modified CI passes using the modified Docker Container. Then, we reverted the container link to point at the main repo container. Finally, we merge and manually trigger the docker build with the new Dockerfile, then restart the CI on the main repo that would use the new docker.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT, but then I suggest adding a todo in the description (using the "- [ ]" notation. This will also ensure that the PR is not merged before all open tasks are completed.

@tahaelbayad
tahaelbayadforce-pushed the snitch_support_integration branch from f7cfa7f to f87c6b5CompareDecember 5, 2024 13:49
Comment threadContainer/Dockerfile Outdated
Comment threadContainer/Dockerfile Outdated
Comment threadContainer/Dockerfile Outdated
Comment threadTargetLibraries/Snitch/CMakeLists.txt Outdated
Comment threadDeeployTest/Platforms/Snitch/main.c
@Victor-Jung
Victor-Jung merged commit f69868b into pulp-platform:develDec 12, 2024
FrancescoConti pushed a commit to FrancescoConti/Deeploy that referenced this pull request May 9, 2025
- cMake Flow for the Snitch Cluster
- Added `snitch_cluster` to Makefile
- New Snitch platform with testing application
- Testrunner for tiled and untiled execution (`testRunner_snitch.py`, `testRunner_tiled_snitch.py`)
- Minimal library with CycleCounter and utility function
- Update the Banshee's commit to include a recent PR.
@XeratecXeratec mentioned this pull request Jul 8, 2025
Xeratec added a commit that referenced this pull request Jul 8, 2025
This release contains major architectural changes, new platform support,
enhanced simulation workflows, floating-point kernel support, training
infrastructure for CCT models, memory allocation strategies, and
documentation improvements.
After merging this into `main`, the release process will proceed with:
- Pushing a Git tag for the release after merging this PR
- Creating a GitHub release with the prepared tag.
Note: Since the release tag references the Docker container tagged with
the release tag (`ghcr.io/pulp-platform/deeploy:v0.2.0`), the CI will
initially fail. The Deeploy Docker image must be built after the release
PR is merged and the CI restarted.
### List of Pull Requests
- Prepare v0.2.0 release
[#102](#102)
- Add Luka as Code Owner
[#101](#101)
- Fix CI, Docker Files, and Documentation Workflow
[#100](#100)
- Chimera Platform Integration
[#96](#96)
- Add Tutorial and Refactor README
[#97](#97)
- Reduce Mean Float Template
[#92](#92)
- Reshape Memory Freeing and Generic Float GEMM Fixes
[#91](#91)
- Prepare for Release and Separate Dependencies
[#90](#90)
- Fix input offsets calculation
[#89](#89)
- Move PULP SDK to main branch/fork
[#88](#88)
- Finite Lifetime for IO Tensors
[#51](#51)
- Improved Memory Visualization and Multi-Layer Tiling Profiling
[#56](#56)
- Fix Linting in CI and Reformat C Files
[#86](#86)
- Fix Broken CMake Flow For pulp-sdk
[#87](#87)
- Refactor Changelog For Release
[#85](#85)
- ARM Docker Container and Minor Bug Fix
[#84](#84)
- Added Kernel for Generic Float DW Conv2D
[#63](#63)
- Autoselect Self-Hosted Runners if the Action is on Upstream
[#81](#81)
- TEST_RECENT linking on MacOS
[#78](#78)
- Add RV32IMF Picolibc support for Siracusa platform
[#66](#66)
- Improve Documentation and VSCode Support
[#76](#76)
- Debug Print Topology Pass and Code Transformation
[#75](#75)
- Find all subdirectories of Deeploy when installing with pip install
[#70](#70)
- Add milestone issue template
[#71](#71)
- Bunch of fixes and changes
[#58](#58)
- Add SoftHier platform
[#65](#65)
- rv32imf_xpulpv2 ISA support for Siracusa platform
[#64](#64)
- One LLVM To Compile Them All
[#60](#60)
- One GVSoC to Simulate Them All
[#59](#59)
- Add Support for CCT Last Layer Training with Embedding Dim 8-128
[#55](#55)
- Add CCT Classifier Training Support
[#53](#53)
- L3 Bugs: DMA Struct Datatype and Maxpool Margin Error
[#45](#45)
- DeepQuant Quantized Linear Support
[#54](#54)
- Implemented Dequant Layer for Generic and Siracusa
[#52](#52)
- Infinite Lifetime Buffers Considered in Tiling & Memory Allocation (+
Visualization) [#44](#44)
- Implemented Quant Layer for Generic and Siracusa
[#49](#49)
- Increase maximal Mchan DMA transfer sizes from 64KiB to 128KiB
[#47](#47)
- Add MiniMalloc and Decouple Memory Allocation and Tiling
[#40](#40)
- Float CCT Bugs on L3
[#37](#37)
- Memory Allocation Strategies and Visualization
[#36](#36)
- Add CODEOWNERS [#42](#42)
- Add Tiling Support to All CCT Kernels and Fix CCT Operators on
Siracusa Platform for L2
[#35](#35)
- Add Fp gemm and Softmax for Snitch platform
[#31](#31)
- Add Float Kernels for CCT
[#29](#29)
- documentation deployment
[#34](#34)
- main.c Float Cast Bugs
[#28](#28)
- Add Float GEMM on PULP with Tiling
[#26](#26)
- Add Float Support & Float GEMM for Generic
[#25](#25)
- GVSOC support for the Snitch Cluster platform
[#23](#23)
- Snitch Cluster Tiling Support
[#22](#22)
- Snitch support integration
[#14](#14)
- Update bibtex citation
[#20](#20)
- the PR template location, bump min python to 3.10, change install
command [#17](#17)
- Add pre-commit for python formatting
[#15](#15)
- FP integration (v2)
[#12](#12)
- shell for sequential tests of Generic, Cortex, and Mempool platforms
[#11](#11)
- Add issue templates
[#10](#10)
- Minor CI and Readme Improvements
[#8](#8)
- Fix GHCR Link for Docker Build
[#7](#7)
- neureka's ccache id
[#6](#6)
- GitHub-based CI/CD Flow
[#4](#4)
- Generic Softmax Kernel
[#2](#2)
- Port GitLab CI [#1](#1)
Storiann pushed a commit to Storiann/Deeploy that referenced this pull request Jul 17, 2026
… CCT fixtures (pulp-platform#14)
* fix(gelu): use exact erf-based GELU forward to match PyTorch nn.GELU()
The previous tanh approximation (0.5*x*(1+tanh(sqrt(2/pi)*(x+0.044715*x^3))))
diverges from PyTorch's default nn.GELU(), which uses the exact formula
0.5*x*(1+erf(x/sqrt(2))). Switch to the erf form so that the PULP
forward pass is numerically consistent with the reference and with the
erf-based GELU backward (GELU_fp32_fp32_sigmoid_grad_chunk).
* fix(cct): correct GeluGrad data_in in CCT and CCT-LoRA training fixtures
The BiasGeluGrad_dX → GeluGrad optimizer pass was emitting GeluGrad(dY, X)
instead of GeluGrad(dY, X+bias). Both cct_train and cct_lora_train vendor
the already-optimized network.onnx, so the bug was baked in. Patch both
ONNX graphs directly: the Add(X, bias) → X_add_bias forward node already
exists in each graph (from run_optmization_remove_biasgelu), so updating
the GeluGrad second input to X_add_bias requires no new nodes.
Loss comparison (outputs.npz) is unaffected: the reference loss is a
forward-pass quantity that does not depend on the backward GeluGrad path.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FeatureAddition of new features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tahaelbayad@Xeratec@lukamac@Victor-Jung