Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
22db7f2
Merge training-platform-core: minimal SimpleMLP training on Siracusa
runwangdl May 2, 2026
e4bfb22
ci: disable auto-trigger on non-training workflows (#1)
runwangdl May 2, 2026
24147d5
ci: add siracusa-train-kernel CI job + train_kernel pytest marker (#2)
runwangdl May 2, 2026
1e64ae3
feat(kernel): add AveragePool (forward + Grad) on Siracusa/PULPOpen (#3)
runwangdl May 2, 2026
ea24efb
feat(kernel): add GlobalAveragePool family + AveragePoolGrad fixture …
runwangdl May 2, 2026
0520c40
feat(kernel): add ConvGrad family (X/W/B + DW + PW) on Siracusa/PULPO…
runwangdl May 2, 2026
80292b2
feat(kernel): add MSELoss (forward + Grad) on Siracusa/PULPOpen (#7)
runwangdl May 2, 2026
4cfd6d1
feat(kernel): add MaxPoolGrad + ReluGrad + LayerNormGrad backward ker…
runwangdl May 2, 2026
1d2674a
feat(kernel): add BatchNorm family (Internal + Grad + 4 split helpers…
runwangdl May 2, 2026
fedc4df
feat(e2e): add 4 MLPerf-Tiny end-to-end training models (#10)
runwangdl May 3, 2026
d338218
feat(e2e): add ResNet8 + MobileNetV1 L3 training, pretrained VWW weig…
runwangdl May 4, 2026
c8efacd
feat(profiling) + fix(tiling): --profileNodes filter and cumulative n…
runwangdl May 4, 2026
2ef7277
fix(gelu): use exact erf-based GELU forward to match PyTorch nn.GELU()
runwangdl May 6, 2026
9f403a0
fix(cct): correct GeluGrad data_in in CCT and CCT-LoRA training fixtures
runwangdl May 6, 2026
5b4a394
fix(gelu+cct): exact erf GELU forward and correct GeluGrad data_in in…
runwangdl May 6, 2026
950b1fd
fix(tiling): MiniMalloc cost variable + SGD rank-2 DMA constraint (#18)
runwangdl May 8, 2026
42f87d2
feat(cct): update CCT train/optimizer fixtures to img_size=32, embedd…
runwangdl May 10, 2026
d88b620
fix(codegen): eliminate dead optimizer L3 arena allocation (#25)
runwangdl May 12, 2026
022f045
perf(ConvGrad): GradWStrategy framework + ConvGradX/W speedups (#28)
runwangdl May 14, 2026
8b2e782
feat: Adam optimizer, GCP-aware scheduler, Pareto sweep infrastructure
Storiann Jul 17, 2026
0339804
add DeeployTest/scripts/run_models.sh (topk + size-gated batch runner)
Storiann Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 2 additions & 6 deletions .github/workflows/ci-deeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Deeploy

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-chimera.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Chimera

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-cortexm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Cortex-M

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/ci-platform-gap9-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,15 @@
name: CI • GAP9 (Tiled)

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork: GAP9 has no training
# pytest jobs yet (only kernels / models). Re-enable by restoring
# the push: / pull_request: blocks once a training marker is wired in.
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:devel"
default: "ghcr.io/runwangdl/deeploy:gap9"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -27,7 +24,7 @@ jobs:
select-env:
uses: ./.github/workflows/_select-env.yml
with:
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:devel' }}
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/runwangdl/deeploy:gap9' }}

gap9-kernels-tiled-singlebuffer-L2:
needs: select-env
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/ci-platform-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,15 @@
name: CI • GAP9

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork: GAP9 has no training
# pytest jobs yet (only kernels / models). Re-enable by restoring
# the push: / pull_request: blocks once a training marker is wired in.
workflow_dispatch:
inputs:
docker_image_deeploy:
description: "Deeploy Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:devel"
default: "ghcr.io/runwangdl/deeploy:gap9"


concurrency:
Expand All @@ -28,7 +25,7 @@ jobs:
select-env:
uses: ./.github/workflows/_select-env.yml
with:
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:devel' }}
docker_image_deeploy: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/runwangdl/deeploy:gap9' }}

gap9-kernels:
needs: select-env
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-generic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Generic

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-mempool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Mempool

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-siracusa-neureka-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Siracusa + Neureka (Tiled)

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
48 changes: 6 additions & 42 deletions .github/workflows/ci-platform-siracusa-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,56 +29,20 @@ jobs:
with:
docker_image_deeploy: ${{ inputs.docker_image_deeploy }}

# Kernel tests - L2 singlebuffer
siracusa-kernels-tiled-l2-singlebuffer:
# Training tests - L2 singlebuffer
siracusa-training-tiled-l2-singlebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "kernels and l2 and singlebuffer"
pytest-marker: "training and l2 and singlebuffer"

# Kernel tests - L2 doublebuffer
siracusa-kernels-tiled-l2-doublebuffer:
# Training tests - L3 singlebuffer (models that spill weights/activations to L3)
siracusa-training-tiled-l3-singlebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "kernels and l2 and doublebuffer"

# Model tests - L2 singlebuffer
siracusa-models-tiled-l2-singlebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "models and l2 and singlebuffer"

# Model tests - L2 doublebuffer
siracusa-models-tiled-l2-doublebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "models and l2 and doublebuffer"

# Model tests - L3 singlebuffer
siracusa-models-tiled-l3-singlebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "models and l3 and singlebuffer"

# Model tests - L3 doublebuffer
siracusa-models-tiled-l3-doublebuffer:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: "models and l3 and doublebuffer"
pytest-marker: "training and l3 and singlebuffer"
8 changes: 4 additions & 4 deletions .github/workflows/ci-platform-siracusa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,18 @@ jobs:
with:
docker_image_deeploy: ${{ inputs.docker_image_deeploy }}

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

siracusa-models:
siracusa-train-kernel:
needs: select-env
uses: ./.github/workflows/_runner-siracusa.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
pytest-marker: models
pytest-marker: train_kernel
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-snitch-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Snitch (Tiled)

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-snitch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • Snitch

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci-platform-softhier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: CI • SoftHier

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:
inputs:
docker_image_deeploy:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/infra-generate-ccache-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ name: Infrastructure • Generate CCache GAP9
docker_image_deeploy:
description: "Deeploy GAP9 Image to use"
required: false
default: "ghcr.io/pulp-platform/deeploy-gap9:devel"
default: "ghcr.io/runwangdl/deeploy:gap9"
schedule:
# Runs the workflow on the default branch every day at 2AM CET to keep the cache fresh
- cron: "0 2 * * *"
Expand All @@ -21,7 +21,7 @@ jobs:
if: github.repository == 'pulp-platform/Deeploy'
runs-on: ubuntu-latest
container:
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:devel' }}
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/runwangdl/deeploy:gap9' }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/infra-generate-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
name: Infrastructure • Generate Documentation

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
# Auto-trigger disabled in TrainDeeploy fork (not training-related).
# Re-enable by restoring the push: / pull_request: blocks.
workflow_dispatch:

permissions:
Expand Down
32 changes: 31 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,34 @@ CHANGELOG_GEN.md
.pyusbip/
.cache/

CLAUDE.md
CLAUDE.md
DeeployTest/Tests/Models/Training/*_UNI_*
DeeployTest/Tests/Models/Training/*_COST*
DeeployTest/Tests/Models/Training/*_SEGSPLIT*
DeeployTest/Tests/Models/Training/*_SIZE*
DeeployTest/Tests/Models/Training/*_BENCH*
DeeployTest/Tests/Models/Training/*_REF_*
DeeployTest/Tests/Models/Training/*_UNITEST*
DeeployTest/scripts/logs/
DeeployTest/TEST_SIRACUSA/

# Only these base training test dirs are tracked. Everything else (sweeps,
# variants, benchmarks) stays local.
DeeployTest/Tests/Models/Training/Autoencoder_*
DeeployTest/Tests/Models/Training/CCT_2
DeeployTest/Tests/Models/Training/CCT_2_*
DeeployTest/Tests/Models/Training/CCT_3
DeeployTest/Tests/Models/Training/CCT_3_*
DeeployTest/Tests/Models/Training/CCT_LoRA_*
DeeployTest/Tests/Models/Training/DSCNN_*
DeeployTest/Tests/Models/Training/MobileNetV1_*
DeeployTest/Tests/Models/Training/ResNet8_*
DeeployTest/Tests/Models/Training/SimpleMLP_*

# Onnx4Deeploy generated intermediates inside test training dirs (not needed by Deeploy runners)
DeeployTest/Tests/Models/Training/*/*/checkpoint
DeeployTest/Tests/Models/Training/*/*/eval_model.onnx
DeeployTest/Tests/Models/Training/*/*/network_infer.onnx
DeeployTest/Tests/Models/Training/*/*/network_train.onnx
DeeployTest/Tests/Models/Training/*/*/network_train_optim.onnx
DeeployTest/Tests/Models/Training/*/*/optimizer_model.onnx
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@
[submodule "CMSIS-NN"]
path = TargetLibraries/CMSIS/third_party/CMSIS-NN
url = https://github.com/ARM-software/CMSIS-NN.git
[submodule "TargetLibraries/PULPOpen/third_party/pulp-trainlib"]
path = TargetLibraries/PULPOpen/third_party/pulp-trainlib
url = https://github.com/runwangdl/pulp-trainlib.git
Loading