Skip to content

Conversation

@Xeratec
Copy link
Member

@Xeratec Xeratec commented Sep 10, 2025

This PR refactors the CI files by splitting them by platform, making future maintenance easier and reducing the likelihood of merge/rebase conflicts. It also allows reporting the status for different platforms in the README.

Changed

  • Split CI into multiple files (one per platform, lint & license, Deeploy, Testing, and two Docker flows)

PR Merge Checklist

  1. The PR is rebased on the latest devel commit and pointing to devel.
  2. Your PR reviewed and approved.
  3. All checks are passing.
  4. The CHANGELOG.md file has been updated.
  5. If the Docker was modified, change its link back after review.

@coderabbitai summary

@Xeratec Xeratec added this to the Release 0.2.1 milestone Sep 10, 2025
@Xeratec Xeratec self-assigned this Sep 10, 2025
@Xeratec Xeratec added the Feature Addition of new features label Sep 10, 2025
@Xeratec Xeratec added this to Deeploy Sep 10, 2025
@Xeratec Xeratec moved this to In progress in Deeploy Sep 10, 2025
@Xeratec Xeratec changed the title @coderabbitai Refactor GitHub WorkFlows Sep 10, 2025
@lukamac
Copy link
Contributor

lukamac commented Sep 10, 2025

the CI • kinda looks redundant when looking at the actions. It is an CI

@Xeratec
Copy link
Member Author

Xeratec commented Sep 11, 2025

the CI • kinda looks redundant when looking at the actions. It is an CI

Yes, but we also have other tasks such as Documentation and Building Docker containers. I like it ;)
So all possible actions are:

  • Docker • Build Deeploy Container
  • Docker • Build Toolchain Container
  • CI • Deeploy (General test related to Deeploy and not a specific platform)
  • CI • Deeploy Testing (General test related to Deeploy's testing infrastructure and not a specific platform)
  • CI • Lint & Licenses
  • CI • Chimera
  • CI • Cortex-M
  • CI • Generic
  • CI • Mempool
  • CI • Siracusa
  • CI • Siracusa (Tiled)
  • CI • Siracusa + Neureka (Tiled)
  • CI • Snitch
  • CI • Snitch (Tiled)
  • CI • SoftHier
  • Infrastructure • Generate CCache
  • Infrastructure • Generate Documentation

@Xeratec Xeratec marked this pull request as ready for review September 11, 2025 13:59
@lukamac
Copy link
Contributor

lukamac commented Sep 11, 2025

Could you maybe also add a yml linter while we are restructuring all the yml files?

@Xeratec
Copy link
Member Author

Xeratec commented Sep 11, 2025

Could you maybe also add a yml linter while we are restructuring all the yml files?

I could, but this is also integrated in GitHub. If you make a mistake, it will complain. But I guess it could be good for formatting. Any suggestions on what tool to use?

@lukamac
Copy link
Contributor

lukamac commented Sep 11, 2025

Yeah, I was more thinking of formatting. With my shallow googling I found this action: https://github.com/marketplace/actions/yamllint-github-action

but I have no experience

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 11, 2025

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Manual type inference CLI flags for tests and a new parameterized type-inference test.
    • VS Code: added “Deeploy Generate Tiled” debug config and inputs.
  • Bug Fixes
    • Corrected batch loop termination in convolution template.
    • Defined missing transfer size in slice template.
    • More reliable jq installation in CI.
  • Documentation
    • Updated README with per-platform CI badges; CHANGELOG expanded.
  • Chores
    • Rebuilt CI into focused workflows per platform/task, plus lint/license and infra jobs.
  • Style
    • Added license headers, header guards, and formatting cleanups across the repo.

Walkthrough

Replaces a monolithic CI with modular GitHub Actions: adds a reusable environment selector, per‑platform CI workflows, lint/infra workflows, runner templates, and many license/header and formatting updates; removes the legacy central CI and GitLab templates. (39 words)

Changes

Cohort / File(s) Summary
Removed central CI & GitLab
.github/workflows/CI.yml, .github/workflows/GitLabCI.yml
Deleted legacy central CI workflow and GitLab integration workflow.
Environment selector (new)
.github/workflows/_select-env.yml
New reusable workflow computing and exporting image and runner from inputs/ref/repo context.
Runner templates (rename + shell)
.github/workflows/_runner-*.yml
.../_runner-chimera.yml, .../_runner-cortexm.yml, .../_runner-generic.yml, .../_runner-mempool.yml, .../_runner-siracusa*.yml, .../_runner-snitch*.yml, .../_runner-softhier.yml
Renamed runner workflows to _runner-*, added license/front-matter, quoted "on", and added shell: bash to Build Deeploy steps; minor formatting adjustments.
Core CI entrypoints (new)
.github/workflows/ci-deeploy.yml, ci-deeploy-testing.yml, ci-lint.yml
New top-level workflows for full tests, focused type-inference testing, and lint/license checks; reuse _select-env and run in selected container images.
Platform CI (new)
.github/workflows/ci-platform-*.yml
ci-platform-generic.yml, ci-platform-cortexm.yml, ci-platform-chimera.yml, ci-platform-mempool.yml, ci-platform-softhier.yml, ci-platform-snitch*.yml, ci-platform-siracusa*.yml, ci-platform-siracusa-neureka-tiled.yml
Per‑platform workflows that call _select-env and the appropriate _runner-* templates, passing test lists, simulators, core counts, and tiled/neureka parameters.
Docker workflows (rename/metadata)
.github/workflows/docker-build-deeploy.yml, docker-build-toolchain.yml
Display name updates, license headers, YAML front-matter/quoting and minor formatting; behavior preserved.
Infrastructure workflows (new/updated)
.github/workflows/infra-generate-ccache.yml, infra-generate-documentation.yml
Infra jobs for ccache and docs generation; build steps now use shell: bash; triggers adjusted.
Removed GitLab templates
.gitlab/issue_templates/issue_template.md, .gitlab/merge_request_templates/MRTemplate.md
Deleted GitLab issue and MR templates.
Repo metadata / docs
CHANGELOG.md, README.md
Updated changelog and README CI badges/table to reference new workflows and per-platform CI status.
Pre-commit & lint config
.pre-commit-config.yaml, .yamllint
Reworked pre-commit into per-repo hooks (yapf, isort, autoflake, clang-format, yamllint) and added yamllint config.
Makefile / tooling targets
Makefile
format split into staged formatting steps; added lint and check-licenses targets.
CMake & code: license/header additions
CMakeLists.txt, cmake/**, TargetLibraries/**, Deeploy/**, DeeployTest/**, ...
SPDX/license headers added across many files; minor CMake warning-suppression and whitespace tweaks.
API/signature changes
TargetLibraries/Snitch/inc/kernel/Softmax.h
Several softmax-related prototypes updated (additional parameters / reordering) — review required.
Package exports changed
Deeploy/Targets/Snitch/Templates/__init__.py, Deeploy/Targets/Snitch/__init__.py
Added from . import * re-exports, expanding package-level exports.
Templates / codegen fixes
Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py, Deeploy/Targets/Generic/Templates/SliceTemplate.py, ...
Fix: loop condition in FloatConvTemplate (proper batch comparison) and added transferSize in SliceTemplate; many whitespace/formatting cleanups across templates.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant GH as GitHub Actions
  participant Select as _select-env (reusable)
  participant Runner as _runner-* (reusable)
  participant Ctn as Container Image
  participant Repo as Repository
  participant Tests as DeeployTest

  Dev->>GH: push / PR / tag / dispatch
  GH->>Select: workflow_call(docker_image_deeploy)
  Note right of Select: compute IMAGE from input/ref/tag/main/devel\ncompute RUNNER (self-hosted vs ubuntu)
  Select-->>GH: outputs { image, runner }

  loop per-platform job
    GH->>Runner: workflow_call(runner=${runner}, docker-image=${image}, tests...)
    Runner->>Ctn: run inside container ${image}
    Runner->>Repo: checkout (submodules)
    Runner->>Repo: pip install -e . (shell: bash)
    Runner->>Tests: execute test scripts (params from workflow)
    Tests-->>Runner: results & logs
    Runner-->>GH: job status
  end

  GH-->>Dev: status & logs
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • Victor-Jung
  • lukamac

Pre-merge checks (3 passed)

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title succinctly and accurately summarizes the PR’s primary changes: splitting CI workflows by platform/task and improving formatting and linting reliability, which aligns with the provided diffs (many new workflow files, lint/license checks, pre-commit updates). It is concise, specific, and informative for teammates scanning history.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Description Check ✅ Passed The pull request description accurately describes the main intent and scope of the changes (splitting CI into per-platform workflows, adding lint/license checks, and README/status updates) and corresponds to the files changed in the changeset (many new/modified .github/workflows, pre-commit, Makefile, and license header edits). It is on-topic and meaningfully related to the changeset, so it meets the lenient acceptance criteria for this check. The description is sufficiently specific for this level of review.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 39

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (15)
.github/workflows/_runner-softhier.yml (1)

18-21: Fix expressions for inputs with hyphens (use bracket notation).

${{ inputs.docker-image }} and ${{ inputs.test-names }} will not parse; hyphenated keys require bracket notation.

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-          testNames="${{ inputs.test-names }}"
+          testNames="${{ inputs['test-names'] }}"

Also applies to: 26-31

.github/workflows/_runner-chimera.yml (1)

21-24: Fix expressions for inputs with hyphens (use bracket notation).

${{ inputs.docker-image }} and ${{ inputs.test-names }} must use brackets.

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-          testNames="${{ inputs.test-names }}"
+          testNames="${{ inputs['test-names'] }}"

Also applies to: 29-31, 38-55

.github/workflows/_runner-snitch-tiled-sequential.yml (1)

38-41: Fix all hyphenated input references.

These expressions won’t evaluate with dot notation: docker-image, tests-config, num-cores, default-memory-level, memory-allocation-strategy, search-strategy. Use bracket notation.

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-      - name: Install jq
-        run: apt-get install -y jq
+      - name: Install jq
+        run: |
+          apt-get update
+          DEBIAN_FRONTEND=noninteractive apt-get install -y jq
@@
-          echo '${{ inputs.tests-config }}' > tests.json
+          echo '${{ inputs['tests-config'] }}' > tests.json
@@
-                  python testRunner_tiled_snitch.py -t Tests/$testName --cores=${{ inputs.num-cores }} --simulator=$simulator --l1 $L1_value --defaultMemLevel=${{ inputs.default-memory-level }} --memAllocStrategy=${{ inputs.memory-allocation-strategy }} --searchStrategy=${{ inputs.search-strategy }}
+                  python testRunner_tiled_snitch.py -t Tests/$testName --cores=${{ inputs['num-cores'] }} --simulator=$simulator --l1 $L1_value --defaultMemLevel=${{ inputs['default-memory-level'] }} --memAllocStrategy=${{ inputs['memory-allocation-strategy'] }} --searchStrategy=${{ inputs['search-strategy'] }}

Also applies to: 46-51, 57-76

.github/workflows/_runner-cortexm.yml (1)

18-21: Fix expressions for inputs with hyphens (use bracket notation).

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-          testNames="${{ inputs.test-names }}"
+          testNames="${{ inputs['test-names'] }}"

Also applies to: 26-29, 35-46

.github/workflows/_runner-generic.yml (1)

18-21: Fix expressions for inputs with hyphens (use bracket notation).

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-          testNames="${{ inputs.test-names }}"
+          testNames="${{ inputs['test-names'] }}"

Also applies to: 26-29, 35-47

.github/workflows/_runner-siracusa-neureka-tiled.yml (1)

52-55: Fix all hyphenated input references and boolean flags.

Use bracket notation for docker-image, default-memory-level, memory-allocation-strategy, search-strategy, double-buffer, neureka-wmem; current dot notation will break expression parsing.

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-      - name: Run Test
+      - name: Run Test
         uses: nick-fields/retry@v3
         with:
           timeout_minutes: 5
           max_attempts: 3
           retry_on: timeout
           command: |
             cd DeeployTest
             mkdir -p /app/.ccache
             export CCACHE_DIR=/app/.ccache
-            python testRunner_tiled_siracusa_w_neureka.py -t Tests/${{ inputs.test-name }} --cores=${{ inputs.num-cores }} --l1 ${{ matrix.L1 }} --defaultMemLevel=${{ inputs.default-memory-level }} ${{ inputs.double-buffer && '--doublebuffer' || '' }} ${{ inputs.neureka-wmem && '--neureka-wmem' || '' }} --memAllocStrategy=${{ inputs.memory-allocation-strategy }} --searchStrategy=${{ inputs.search-strategy }}
+            python testRunner_tiled_siracusa_w_neureka.py -t Tests/${{ inputs.test-name }} --cores=${{ inputs['num-cores'] }} --l1 ${{ matrix.L1 }} --defaultMemLevel=${{ inputs['default-memory-level'] }} ${{ inputs['double-buffer'] && '--doublebuffer' || '' }} ${{ inputs['neureka-wmem'] && '--neureka-wmem' || '' }} --memAllocStrategy=${{ inputs['memory-allocation-strategy'] }} --searchStrategy=${{ inputs['search-strategy'] }}

Also applies to: 56-63, 69-79

.github/workflows/_runner-snitch.yml (1)

24-27: Fix expressions for inputs with hyphens (use bracket notation).

-    container:
-      image: ${{ inputs.docker-image }}
+    container:
+      image: ${{ inputs['docker-image'] }}
@@
-          testNames="${{ inputs.test-names }}"
+          testNames="${{ inputs['test-names'] }}"
@@
-                  python testRunner_snitch.py -t Tests/$testName --simulator=$simulator --cores=${{ inputs.num-cores }}
+                  python testRunner_snitch.py -t Tests/$testName --simulator=$simulator --cores=${{ inputs['num-cores'] }}

Also applies to: 32-35, 41-57

.github/workflows/infra-generate-documentation.yml (2)

29-33: Pin third-party action to a commit SHA (avoid mutable branch ref).

Using a PR branch ref is brittle; pin to a commit SHA or a released tag.

-      - name: Prepare Multipages
-        uses: xeratec/gh-pages-multibranch@pr/support_tags
+      - name: Prepare Multipages
+        uses: xeratec/gh-pages-multibranch@<commit-sha>

34-40: Upgrade and pin gh-pages action.

Use the maintained v4 and pin to SHA.

-      - name: Deploy to GitHub Pages
-        uses: peaceiris/actions-gh-pages@v3
+      - name: Deploy to GitHub Pages
+        uses: peaceiris/actions-gh-pages@<v4-commit-sha>
         if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch'}}
         with:
           publish_branch: gh-pages
           github_token: ${{ secrets.GITHUB_TOKEN }}
           publish_dir: _build/
           force_orphan: true
.github/workflows/_runner-siracusa-tiled.yml (2)

64-75: Invalid ‘shell’ key on a uses: step.

shell is ignored/unsupported on action steps; keep it only on run steps. Remove it here.

       - name: Run Test
         uses: nick-fields/retry@v3
         with:
           timeout_minutes: 15
           max_attempts: 3
           retry_on: timeout
           command: |
             cd DeeployTest
             mkdir -p /app/.ccache
             export CCACHE_DIR=/app/.ccache
             python testRunner_tiled_siracusa.py -t Tests/${{ inputs.test-name }} --cores=${{ inputs.num-cores }} --l1 ${{ matrix.L1 }} --defaultMemLevel=${{ inputs.default-memory-level }} ${{ inputs.double-buffer && '--doublebuffer' || '' }} --memAllocStrategy=${{ inputs.memory-allocation-strategy }} --searchStrategy=${{ inputs.search-strategy }}
-          shell: bash

64-69: Pin third-party action to a commit SHA.

Avoid mutable tag for retry action.

-      - name: Run Test
-        uses: nick-fields/retry@v3
+      - name: Run Test
+        uses: nick-fields/retry@<commit-sha>
.github/workflows/ci-platform-mempool.yml (1)

56-71: Inherit secrets (models).

  mempool-models:
    needs: select-env
    uses: ./.github/workflows/_runner-mempool.yml
+   secrets: inherit
.github/workflows/ci-platform-generic.yml (1)

76-94: Inherit secrets for generic-models; consider path filters to cut CI noise.

  generic-models:
    needs: select-env
    uses: ./.github/workflows/_runner-generic.yml
+   secrets: inherit

Optional:

  • Add on:push/pull_request paths filters to avoid running for docs-only changes.
.github/workflows/ci-platform-siracusa-tiled.yml (1)

139-168: Inherit secrets (models doublebuffer L3).

  siracusa-models-tiled-doublebuffer-L3:
    needs: select-env
@@
- uses: ./.github/workflows/_runner-siracusa-tiled.yml
+ uses: ./.github/workflows/_runner-siracusa-tiled.yml
+ secrets: inherit
.github/workflows/ci-platform-siracusa-neureka-tiled.yml (1)

119-143: Inherit secrets (models L3 doublebuffer wmem); add minimal token permissions once per workflow.

  siracusa-neureka-models-tiled-doublebuffer-L3-wmem:
    needs: select-env
@@
- uses: ./.github/workflows/_runner-siracusa-neureka-tiled.yml
+ uses: ./.github/workflows/_runner-siracusa-neureka-tiled.yml
+ secrets: inherit

Add:

+permissions:
+  contents: read
+  packages: read
🧹 Nitpick comments (40)
.github/workflows/docker-build-deeploy.yml (7)

36-36: Nit: job title typo

“Build Deploy Image” → “Build Deeploy Image” for consistency with the project name.

-    name: Build Deploy Image
+    name: Build Deeploy Image

49-50: Verify ARM64 runner label

Is the label actually ubuntu-22.04-arm? GitHub-hosted runners are typically ubuntu-22.04-arm64. If you use self-hosted with a custom label, ignore.

-            runner: ubuntu-22.04-arm
+            runner: ubuntu-22.04-arm64

20-33: Use native context instead of parsing GITHUB_REF

github.ref_name / github.ref_type are safer than string slicing.

-      - name: Set up environment variables
+      - 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
+          echo "BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV
+          echo "TAG_NAME=${{ github.ref_name }}" >> $GITHUB_ENV
+          echo "IS_TAG=${{ github.ref_type }}" >> $GITHUB_ENV

94-107: Enable provenance/SBOM on image builds

Supply-chain best practice; buildx v6 supports it.

           file: Container/Dockerfile.deeploy
           push: true
           build-args: |
             BASE_IMAGE=${{ github.event.inputs.docker_image_toolchain }}
-          outputs: type=image,name=ghcr.io/${{ env.OWNER_LC }}/deeploy,annotation-index=true,name-canonical=true,push=true
+          outputs: type=image,name=ghcr.io/${{ env.OWNER_LC }}/deeploy,annotation-index=true,name-canonical=true,push=true
+          provenance: true
+          sbom: true

52-71: Action pinning for supply-chain safety

Pin third‑party actions to commit SHAs (checkout, buildx, login, cache, free-disk-space, manifest) to avoid tag drift.

Would you like me to prepare a follow-up with current SHAs for all used actions?


3-11: Trigger scope check

Currently workflow_dispatch-only. If images should build on branch pushes/tags, add push/release triggers; if manual-only is intended, ignore.


117-123: Optional: restrict publish to main repo

Avoid accidental pushes to GHCR on forks.

-      - name: GHCR Log-in
+      - name: GHCR Log-in
+        if: ${{ github.repository_owner == 'pulp-platform' }}
         uses: docker/login-action@v3

Apply the same guard to build/push steps.

.github/workflows/_runner-softhier.yml (1)

29-41: Add timeout to prevent hung test jobs.

-      - name: Run Test
+      - name: Run Test
+        timeout-minutes: 30
         run: |
           testNames="${{ inputs['test-names'] }}"
           export SOFTHIER_INSTALL_DIR=/app/install/softhier
           cd DeeployTest
           echo "$testNames" | while IFS= read -r testName; do
             if [[ -n "$testName" ]]; then
               echo "Running test: $testName"
               python testRunner_softhier.py -t Tests/$testName --toolchain=GCC
             fi
           done
         shell: bash
.github/workflows/_runner-chimera.yml (2)

30-37: Persist ccache back to the cache.

Only restoring the cache won’t update it; add a save step.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
@@
         shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 55-55


37-55: Bound the test duration.

-      - name: Run Test
+      - name: Run Test
+        timeout-minutes: 45
         run: |
           testNames="${{ inputs['test-names'] }}"
           simulators="${{inputs.simulators}}"
           cd DeeployTest
           mkdir -p /app/.ccache
           export CCACHE_DIR=/app/.ccache
           export CHIMERA_SDK_HOME=/app/install/chimera-sdk
.github/workflows/_runner-snitch-tiled-sequential.yml (2)

51-56: Save ccache back to cache.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
@@
         shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 57-76


57-76: Guard against infinite test loops.

-      - name: Run Tests
+      - name: Run Tests
+        timeout-minutes: 60
         run: |
           simulators="${{inputs.simulators}}"
.github/workflows/docker-build-toolchain.yml (3)

1-2: Scope GITHUB_TOKEN permissions explicitly.

Limit token to what’s needed for GHCR pushes.

 name: Docker • Build Toolchain Container
 
 on:
   workflow_dispatch:
 
+permissions:
+  contents: read
+  packages: write

88-101: Enable SBOM/provenance and ensure freshest bases.

       - name: Build and push toolchain image
         id: build
         uses: docker/build-push-action@v6
         with:
           platforms: linux/${{ matrix.platform }}
           context: .
           file: Container/Dockerfile.toolchain
           push: true
           outputs: type=image,name=ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain,annotation-index=true,name-canonical=true,push=true
+          pull: true
+          sbom: true
+          provenance: true

57-66: Pin actions to commit SHAs to reduce supply-chain risk.

Use immutable SHAs for third-party actions (buildx, login, cache, manifest, free-disk-space). I can generate a patch once you confirm desired versions.

Also applies to: 82-90, 102-129

.github/workflows/_runner-cortexm.yml (1)

29-34: Restore + save ccache to keep it warm across runs.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
       - name: Run Test
+        timeout-minutes: 30
         run: |
           testNames="${{ inputs['test-names'] }}"
           cd DeeployTest
           mkdir -p /app/.ccache
           export CCACHE_DIR=/app/.ccache
           echo "$testNames" | while IFS= read -r testName; do
             if [[ -n "$testName" ]]; then
               echo "Running test: $testName"
               python testRunner_cortexm.py -t Tests/$testName
             fi
           done
         shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 35-46

.github/workflows/_runner-generic.yml (1)

29-34: Add timeout and save ccache.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
       - name: Run Test
+        timeout-minutes: 30
         run: |
           testNames="${{ inputs['test-names'] }}"
           cd DeeployTest
           mkdir -p /app/.ccache
           export CCACHE_DIR=/app/.ccache
           echo "$testNames" | while IFS= read -r testName; do
             if [[ -n "$testName" ]]; then
               echo "Running test: $testName"
               python testRunner_generic.py -t Tests/$testName
             fi
           done
         shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 35-47

.github/workflows/_runner-siracusa-neureka-tiled.yml (2)

63-68: Timeout and ccache save.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
-      - name: Run Test
+      - name: Run Test
         uses: nick-fields/retry@v3
         with:
           timeout_minutes: 5
           max_attempts: 3
           retry_on: timeout
           command: |
             cd DeeployTest
             mkdir -p /app/.ccache
             export CCACHE_DIR=/app/.ccache
             python testRunner_tiled_siracusa_w_neureka.py ...
           shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 69-79


56-63: Pin third-party action to a SHA.

Consider pinning nick-fields/retry@v3 to a commit SHA.

.github/workflows/_runner-snitch.yml (1)

35-40: Timeout and ccache save.

       - name: Cache ccache
         uses: actions/cache/restore@v4
         with:
           path: /app/.ccache
           key: ccache-ci
-      - name: Run Test
+      - name: Run Test
+        timeout-minutes: 45
         run: |
           testNames="${{ inputs['test-names'] }}"
           simulators="${{inputs.simulators}}"
           cd DeeployTest
           mkdir -p /app/.ccache
           export CCACHE_DIR=/app/.ccache
           echo "$simulators" | while IFS= read -r simulator; do
@@
         shell: bash
+      - name: Save ccache
+        if: always()
+        uses: actions/cache/save@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci

Also applies to: 41-57

.github/workflows/infra-generate-documentation.yml (2)

1-1: Exclude gh-pages to avoid unnecessary workflow triggers.

Pushing to the gh-pages branch will also match '**'. Exclude it to prevent redundant runs.

 on:
   push:
     branches:
-      - '**'
+      - '**'
+      - '!gh-pages'

20-24: Pin Python version and enable pip cache for determinism and speed.

setup-python without python-version is a no-op; specify a version and enable caching.

-      - uses: actions/setup-python@v5
+      - uses: actions/setup-python@v5
+        with:
+          python-version: '3.11'
+          cache: 'pip'
.github/workflows/infra-generate-ccache.yml (2)

11-12: Cron comment/timezone mismatch.

GitHub cron runs in UTC. The comment says “1AM CET”. Either fix the time or adjust the comment.

-    # Runs the workflow on the default branch every day at 1AM CET to keep the cache fresh
-    - cron: "0 1 * * *"
+    # Runs daily at 01:00 UTC (note: not CET)
+    - cron: "0 1 * * *"

26-27: Also restore cache before build to reuse existing ccache.

Speeds up warm runs.

       - name: Build Deeploy
         shell: bash
         run: pip install -e .
+      - name: Restore CCache
+        uses: actions/cache/restore@v4
+        with:
+          path: /app/.ccache
+          key: ccache-ci-${{ runner.os }}-${{ github.ref_name }}
+          restore-keys: |
+            ccache-ci-${{ runner.os }}-
.github/workflows/ci-platform-chimera.yml (2)

5-8: Exclude gh-pages from CI triggers.

Prevents CI from running on docs-only branch updates.

   push:
     branches:
-      - '**'
+      - '**'
+      - '!gh-pages'

24-27: Guard optional input outside workflow_dispatch.

inputs.* is undefined on push/PR. Coalesce to default to avoid passing empty values.

   select-env:
     uses: ./.github/workflows/_select-env.yml
     with:
-      docker_image_deeploy: ${{ inputs.docker_image_deeploy }}
+      docker_image_deeploy: ${{ inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy:devel' }}
.github/workflows/ci-platform-softhier.yml (1)

3-10: Avoid duplicate runs from push and PR events.

If pushing branches inside the repo, both push and PR will fire. Consider scoping or filtering to reduce CI noise.

Example options:

  • Restrict push to main/release branches.
  • Or add paths filters to both push/PR.
.github/workflows/ci-platform-snitch-tiled.yml (1)

28-46: Inherit secrets for runner; prefer YAML over embedded JSON for readability.

  snitch-kernels-tiled-singlebuffer-L2:
    needs: select-env
    uses: ./.github/workflows/_runner-snitch-tiled-sequential.yml
+   secrets: inherit
    with:
@@
-     tests-config: |
-       [
-         {"name":"TestiNoNorm","L1":[5000,10000]},
-         {"name":"TestAdderLarge","L1":[5000,10000]},
-         {"name":"TestiSoftmaxLarge","L1":[5000,10000]},
-         {"name":"testRQGEMM","L1":[2000,5000]},
-         {"name":"testFloatSoftmax","L1":[2000,5000,10000]},
-         {"name":"TestRQAdd","L1":[5000,10000]},
-         {"name":"testFloatGEMM","L1":[2000,5000,10000]},
-         {"name":"testFloatGEMMtransB","L1":[2000,5000,10000]}
-       ]
+     tests-config: |
+       - name: TestiNoNorm
+         L1: [5000, 10000]
+       - name: TestAdderLarge
+         L1: [5000, 10000]
+       - name: TestiSoftmaxLarge
+         L1: [5000, 10000]
+       - name: testRQGEMM
+         L1: [2000, 5000]
+       - name: testFloatSoftmax
+         L1: [2000, 5000, 10000]
+       - name: TestRQAdd
+         L1: [5000, 10000]
+       - name: testFloatGEMM
+         L1: [2000, 5000, 10000]
+       - name: testFloatGEMMtransB
+         L1: [2000, 5000, 10000]

If the called workflow expects JSON, keep JSON; otherwise YAML is easier to diff/review.

.github/workflows/_select-env.yml (1)

5-7: Make input optional; logic already defaults IMAGE.

You’re already handling empty/absent input; forcing callers to pass it adds friction for pushes/PRs.

-      docker_image_deeploy:
-        type: string
-        required: true
+      docker_image_deeploy:
+        type: string
+        required: false
.github/workflows/ci-deeploy.yml (4)

18-21: Harden token scope.

Add least-privilege permissions (pulling GHCR often needs packages: read).

 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
+
+permissions:
+  contents: read
+  packages: read

28-41: Redundant job (unused prerequisite).

build-deeploy doesn’t feed artifacts or cache and no jobs depend on it. Remove it or make test jobs depend on it and publish/cache artifacts.


42-233: Reduce duplication and add timeouts.

  • Extract “Checkout + pip install -e .” into a composite/reusable workflow to DRY.
  • Add timeout-minutes to long-running test jobs.

234-234: Add trailing newline.

Fixes YAML lint error: “no new line character at the end of file.”

.github/workflows/ci-deeploy-testing.yml (2)

1-21: Add least-privilege permissions.

Mirror the permissions block from the main CI workflow for consistency.


60-60: Add trailing newline.

Ensure newline at EOF.

.github/workflows/ci-lint.yml (2)

18-21: Harden token scope.

Add least-privilege permissions like other workflows.

 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
+
+permissions:
+  contents: read
+  packages: read

66-66: Add trailing newline.

Minor YAML style fix.

.github/workflows/ci-platform-siracusa.yml (3)

18-21: Harden token scope.

Add least-privilege permissions to pull images and read repo.

 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
   cancel-in-progress: true
+
+permissions:
+  contents: read
+  packages: read

35-67: Optional: parallelize via matrix.

If _runner-siracusa runs tests serially, consider splitting test-names into a matrix for faster feedback.


86-86: Add trailing newline.

Minor YAML style fix.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 05d6403 and 6bc334c.

📒 Files selected for processing (34)
  • .github/workflows/CI.yml (0 hunks)
  • .github/workflows/GitLabCI.yml (0 hunks)
  • .github/workflows/_runner-chimera.yml (3 hunks)
  • .github/workflows/_runner-cortexm.yml (2 hunks)
  • .github/workflows/_runner-generic.yml (2 hunks)
  • .github/workflows/_runner-mempool.yml (2 hunks)
  • .github/workflows/_runner-siracusa-neureka-tiled-sequential.yml (2 hunks)
  • .github/workflows/_runner-siracusa-neureka-tiled.yml (3 hunks)
  • .github/workflows/_runner-siracusa-tiled-sequential.yml (2 hunks)
  • .github/workflows/_runner-siracusa-tiled.yml (2 hunks)
  • .github/workflows/_runner-siracusa.yml (2 hunks)
  • .github/workflows/_runner-snitch-tiled-sequential.yml (2 hunks)
  • .github/workflows/_runner-snitch.yml (3 hunks)
  • .github/workflows/_runner-softhier.yml (2 hunks)
  • .github/workflows/_select-env.yml (1 hunks)
  • .github/workflows/ci-deeploy-testing.yml (1 hunks)
  • .github/workflows/ci-deeploy.yml (1 hunks)
  • .github/workflows/ci-lint.yml (1 hunks)
  • .github/workflows/ci-platform-chimera.yml (1 hunks)
  • .github/workflows/ci-platform-cortexm.yml (1 hunks)
  • .github/workflows/ci-platform-generic.yml (1 hunks)
  • .github/workflows/ci-platform-mempool.yml (1 hunks)
  • .github/workflows/ci-platform-siracusa-neureka-tiled.yml (1 hunks)
  • .github/workflows/ci-platform-siracusa-tiled.yml (1 hunks)
  • .github/workflows/ci-platform-siracusa.yml (1 hunks)
  • .github/workflows/ci-platform-snitch-tiled.yml (1 hunks)
  • .github/workflows/ci-platform-snitch.yml (1 hunks)
  • .github/workflows/ci-platform-softhier.yml (1 hunks)
  • .github/workflows/docker-build-deeploy.yml (1 hunks)
  • .github/workflows/docker-build-toolchain.yml (1 hunks)
  • .github/workflows/infra-generate-ccache.yml (2 hunks)
  • .github/workflows/infra-generate-documentation.yml (1 hunks)
  • .gitlab/issue_templates/issue_template.md (0 hunks)
  • .gitlab/merge_request_templates/MRTemplate.md (0 hunks)
💤 Files with no reviewable changes (4)
  • .gitlab/merge_request_templates/MRTemplate.md
  • .gitlab/issue_templates/issue_template.md
  • .github/workflows/GitLabCI.yml
  • .github/workflows/CI.yml
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ci-deeploy.yml

[error] 234-234: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/ci-platform-snitch.yml

[error] 47-47: no new line character at the end of file

(new-line-at-end-of-file)

🔇 Additional comments (9)
.github/workflows/docker-build-deeploy.yml (2)

1-1: Workflow name alignment LGTM

The rename improves readability and matches the new naming scheme.


134-135: Matrix outputs to merge step may be undefined

Accessing needs.build-deeploy.outputs.digest-amd64/arm64 from a matrix job isn’t guaranteed to aggregate both digests; use separate arch jobs or upload/download artifacts instead.

File: .github/workflows/docker-build-deeploy.yml Lines: 134-135

-            ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-amd64 }},
-            ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy.outputs.digest-arm64 }}
+            ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy-amd64.outputs.digest }},
+            ghcr.io/${{ env.OWNER_LC }}/deeploy@${{ needs.build-deeploy-arm64.outputs.digest }}
.github/workflows/docker-build-toolchain.yml (1)

40-46: Verify ARM64 runner label exists.

ubuntu-22.04-arm is non-standard on GitHub-hosted runners (commonly ubuntu-22.04-arm64). Confirm you have a self-hosted runner or adjust the label.

.github/workflows/_runner-siracusa.yml (1)

30-31: LGTM on explicit shell for build.

Specifying Bash improves consistency across runners.

.github/workflows/_runner-siracusa-tiled.yml (1)

56-57: LGTM on explicit shell for build.

.github/workflows/_runner-mempool.yml (1)

27-28: LGTM on explicit shell for build.

.github/workflows/_select-env.yml (1)

39-43: Self-hosted label specificity.

If multiple self-hosted runners exist, consider emitting a more specific label set (e.g., self-hosted,linux,x64) to avoid mis-scheduling. Confirm the fleet’s labels and Docker availability.

.github/workflows/ci-lint.yml (2)

53-53: Ensure clang-format availability.

Verify LLVM_INSTALL_DIR is defined in the container; otherwise install or pass a default path.


44-45: Make YAPF enforceable.

Current flags only show diff; they won’t fail CI on formatting issues. Add --exit-code (or switch to in-place -ir).

-          yapf -rpd -e "third_party/" -e "install/" -e "toolchain/" .
+          yapf -rpd --exit-code -e "third_party/" -e "install/" -e "toolchain/" .

Likely an incorrect or invalid review comment.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (3)
CHANGELOG.md (1)

53-53: Tighten phrasing and align naming (“Lint & Licenses”).

Matches workflow names listed in the PR discussion.

-- Split CI into multiple files (one per platform, one for lint & license, one general Deeploy tests, one testing infrastructure, and two Docker flows)
+- Split CI into multiple workflows (one per platform, one for Lint & Licenses, one for Deeploy, one for testing infrastructure, and two Docker flows)
README.md (2)

10-10: Scope the CI badge to the devel branch for accurate status.

Add the branch parameter so readers see the status relevant to the default development flow.

-[![CI](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-deeploy.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-deeploy.yml)
+[![CI](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-deeploy.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-deeploy.yml)

83-91: Add branch parameter to CI badges to scope them to devel branch.

The CI badges currently show status for the default branch, which can be confusing when other branches have different statuses. Adding ?branch=devel to each badge URL will scope them specifically to the devel branch status.

-| **Generic CPU**        | Your laptop CPU :)                                                                               | Host                                                           | [![CI • Generic](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-generic.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-generic.yml)
+| **Generic CPU**        | Your laptop CPU :)                                                                               | Host                                                           | [![CI • Generic](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-generic.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-generic.yml)
-| **CortexM Processors** | [Documentation](https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m4)                  | [QEMU](https://www.qemu.org/)                                  | [![CI • Cortex-M](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-cortexm.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-cortexm.yml)
+| **CortexM Processors** | [Documentation](https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m4)                  | [QEMU](https://www.qemu.org/)                                  | [![CI • Cortex-M](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-cortexm.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-cortexm.yml)
-| **MemPool + ITA**      | [Mempool paper](https://arxiv.org/abs/2303.17742), [ITA paper](https://arxiv.org/abs/2307.03493) | [Banshee](https://github.com/pulp-platform/banshee)            | [![CI • Mempool](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-mempool.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-mempool.yml)
+| **MemPool + ITA**      | [Mempool paper](https://arxiv.org/abs/2303.17742), [ITA paper](https://arxiv.org/abs/2307.03493) | [Banshee](https://github.com/pulp-platform/banshee)            | [![CI • Mempool](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-mempool.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-mempool.yml)
-| **Siracusa**           | [Siracusa paper](https://arxiv.org/abs/2312.14750)                                               | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Siracusa](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa.yml) [![CI • Siracusa (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-tiled.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-tiled.yml) [![CI • Siracusa + Neureka (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-neureka-tiled.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-neureka-tiled.yml)
+| **Siracusa**           | [Siracusa paper](https://arxiv.org/abs/2312.14750)                                               | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Siracusa](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa.yml) [![CI • Siracusa (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-tiled.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-tiled.yml) [![CI • Siracusa + Neureka (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-neureka-tiled.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-siracusa-neureka-tiled.yml)
-| **Snitch Cluster**     | [Snitch paper](https://arxiv.org/abs/2002.10143)                                                 | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Snitch](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch.yml) [![CI • Snitch (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch-tiled.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch-tiled.yml)
+| **Snitch Cluster**     | [Snitch paper](https://arxiv.org/abs/2002.10143)                                                 | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Snitch](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch.yml) [![CI • Snitch (Tiled)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch-tiled.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-snitch-tiled.yml)
-| **SoftHier**           | [Repo](https://github.com/gvsoc/gvsoc/tree/soft_hier_release)                                    | [GVSoC](https://github.com/gvsoc/gvsoc/tree/soft_hier_release) | [![CI • SoftHier](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-softhier.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-softhier.yml)
+| **SoftHier**           | [Repo](https://github.com/gvsoc/gvsoc/tree/soft_hier_release)                                    | [GVSoC](https://github.com/gvsoc/gvsoc/tree/soft_hier_release) | [![CI • SoftHier](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-softhier.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-softhier.yml)
-| **Chimera**            | [Repo](https://github.com/pulp-platform/chimera)                                                 | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Chimera](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-chimera.yml/badge.svg)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-chimera.yml)
+| **Chimera**            | [Repo](https://github.com/pulp-platform/chimera)                                                 | [GVSoC](https://github.com/gvsoc/gvsoc)                        | [![CI • Chimera](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-chimera.yml/badge.svg?branch=devel)](https://github.com/pulp-platform/Deeploy/actions/workflows/ci-platform-chimera.yml)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6bc334c and 1c50859.

📒 Files selected for processing (2)
  • CHANGELOG.md (3 hunks)
  • README.md (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (160)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)
  • GitHub Check: deeploy-test-dmas
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L2 (microLlama/microLlama1, 60000, 10000, 5000, 8) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (2500)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Attention, 60000, 10000, 5000, 2500, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (15000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (Transformer, 60000, 30000, 15000, 8, L3) / test-runner-siracusa-tiled (30000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (CCT/CCT_2_32_32_128, 128000, 8, L3) / test-runner-siracusa-tiled (128000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128, 640... / test-runner-siracusa-tiled (64000)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py (1)

82-82: Fix typo in generated comment: “ChannelOout” → “ChannelOut”.

This surfaces in generated C and looks unpolished.

Apply:

-// 2D FP Conv HWC with Im2Col and ChannelOout parallelism (Name: ${nodeName}, Op: ${nodeOp})
+// 2D FP Conv HWC with Im2Col and ChannelOut parallelism (Name: ${nodeName}, Op: ${nodeOp})
Deeploy/Targets/Generic/Templates/SliceTemplate.py (1)

103-105: Incorrect loop-closing count when axes are non-contiguous — generates invalid C

You open len(preAxes) loops plus len(axes) loops, but you close int(axes[-1]) + 1 loops. This only matches when axes are contiguous from 0..axes[-1]. With axes like [0,2], this emits too many } and breaks compilation.

Use the actual number of opened loops:

-% for axis in range(int(axes[-1])+1):
-}
-% endfor
+% for _ in range(len(preAxes) + len(axes)):
+}
+% endfor

Also, after adopting lastAxis (see earlier comment), adjust the memcpy offset:

-memcpy(ref_${data_out}, ${data_in} + ${data_out}_offset_${axis}, ${transferSize* data_out_type.referencedType.typeWidth//8});
+memcpy(ref_${data_out}, ${data_in} + ${data_out}_offset_${lastAxis}, ${(transferSize * data_out_type.referencedType.typeWidth)//8});
♻️ Duplicate comments (1)
Makefile (1)

590-623: Cover C++ sources/headers in SPDX scan.

Currently only .c/.h are checked; .cc/.cpp/.cxx/.hh/.hpp/.hxx are missed. This can hide license gaps.

-	echo " - Check C Files"; \
-	missing_c=$$(grep -Lr "SPDX-License-Identifier: Apache-2.0" --include="*.c" \
+	echo " - Check C/C++ Source Files"; \
+	missing_c=$$(grep -Lr "SPDX-License-Identifier: Apache-2.0" --include="*.c" --include="*.cc" --include="*.cpp" --include="*.cxx" \
 	  --exclude-dir="toolchain" --exclude-dir="install" --exclude-dir=".git" \
 	  --exclude-dir="third_party" --exclude-dir="TEST_*" --exclude-dir="TestFiles" \
 	  --exclude-dir="runtime" . || true); \
 	if [ -n "$$missing_c" ]; then echo "$$missing_c"; rc=1; fi; \
-	echo " - Check C Header Files"; \
-	missing_h=$$(grep -Lr "SPDX-License-Identifier: Apache-2.0" --include="*.h" \
+	echo " - Check C/C++ Header Files"; \
+	missing_h=$$(grep -Lr "SPDX-License-Identifier: Apache-2.0" --include="*.h" --include="*.hh" --include="*.hpp" --include="*.hxx" \
 	  --exclude-dir="toolchain" --exclude-dir="install" --exclude-dir=".git" \
 	  --exclude-dir="third_party" --exclude-dir="TEST_*" --exclude-dir="TestFiles" \
 	  --exclude-dir="runtime" . || true); \
 	if [ -n "$$missing_h" ]; then echo "$$missing_h"; rc=1; fi; \
🧹 Nitpick comments (9)
Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py (1)

3-3: Header filename casing typo.

Nit: “FLoatConvTemplate.py” → “FloatConvTemplate.py” in the comment header.

-# File: FLoatConvTemplate.py
+# File: FloatConvTemplate.py
Makefile (3)

569-577: Reorder and tighten format steps for cleaner diffs.

Run autoflake → isort → yapf to minimize churn; current order formats before import cleanup/sort. Also make isort exclude flags consistent (use one style) and avoid mixing "./" and ".".

 format:
 	@echo "Formatting all relevant files..."
-	@echo " - Format Python Files"
-	@yapf -ipr -e "third_party/" -e "install/" -e "toolchain/" .
-	@echo " - Format Python Imports"
-	@isort --quiet --sg "**/third_party/*"  --sg "install/*" --sg "toolchain/*" ./
-	@autoflake -i -r --remove-all-unused-imports --ignore-init-module-imports --exclude "**/third_party/*,**/install/*,**/toolchain/*" .
+	@echo " - Remove unused imports"
+	@autoflake -i -r --remove-all-unused-imports --ignore-init-module-imports --exclude "**/third_party/*,**/install/*,**/toolchain/*" .
+	@echo " - Sort Python imports"
+	@isort --quiet --sg "**/third_party/*" --sg "install/*" --sg "toolchain/*" .
+	@echo " - Format Python files"
+	@yapf -ipr -e "third_party/" -e "install/" -e "toolchain/" .

590-623: Make the SPDX grep more robust and portable (optional).

Consider matching flexible spacing and supporting BSD grep systems (macOS). Option A: use -E 'SPDX-License-Identifier:[[:space:]]*Apache-2.0'. Option B: replace grep --include with find -type f ... -name '*.ext' -print0 | xargs -0 grep -LE ... to avoid GNU-specific flags.


566-566: Add missing PHONY targets.

Declare lint and check-licenses as phony to avoid file name collisions.

-.PHONY: docs clean-docs format
+.PHONY: docs clean-docs format lint check-licenses
.pre-commit-config.yaml (4)

20-27: Add a few lightweight, high-signal core hooks.

Consider end-of-file-fixer, check-merge-conflict, and optionally mixed-line-ending. They catch common issues with near-zero noise.

   - repo: https://github.com/pre-commit/pre-commit-hooks
     rev: v6.0.0
     hooks:
       - id: check-added-large-files
         name: Check for added large files
       - id: trailing-whitespace
         name: Check for trailing whitespace
+      - id: end-of-file-fixer
+        name: Ensure newline at EOF
+      - id: check-merge-conflict
+        name: Check for merge conflict strings
+      - id: mixed-line-ending
+        name: Normalize line endings
+        args: ["--fix=lf"]

59-66: Align clang-format versions to avoid style churn.

CI uses ${LLVM_INSTALL_DIR}/bin/clang-format (15.0.0 path), while pre-commit pins 15.0.7. Mismatched versions can flip formatting back and forth.

Options:

  • Pin pre-commit to the same major/minor as CI, or
  • Make CI use the same mirror version as pre-commit.

Confirm which one you prefer and adjust accordingly.


7-17: Exclude pattern looks good; consider anchoring to repo root.

Prefix with ^ (already present) and add $ for full-path matches if needed; otherwise OK.


27-35: Local license hook is useful; mind shell/grep availability across dev OSes.

Because it shells out to make check-licenses, portability depends on GNU tools. If macOS support is desired, document GNU grep requirement or adjust the Makefile as noted.

Deeploy/Targets/Generic/Templates/SliceTemplate.py (1)

70-72: Correct choice for contiguous block; minor clarity tweak suggested

Computing transferSize from the innermost iterated axis is correct. For readability and to avoid reliance on the loop variable leaking scope, consider capturing lastAxis once and reuse it (also in the memcpy offset).

-<%
-transferSize = dimSteps[int(axes[-1])]
-%>
+<%
+lastAxis = int(axes[-1])
+transferSize = dimSteps[lastAxis]
+%>

And later update the memcpy offset to use lastAxis (see separate comment).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 12c8a11 and 0766d0a.

📒 Files selected for processing (25)
  • .pre-commit-config.yaml (1 hunks)
  • CHANGELOG.md (3 hunks)
  • Deeploy/AbstractDataTypes.py (1 hunks)
  • Deeploy/CommonExtensions/CodeTransformationPasses/PrintInputs.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/FloatGemmTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/FloatLayernormTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/FloatMaxPoolTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/FloatPadTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/FloatReduceSumTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/QuantTemplate.py (1 hunks)
  • Deeploy/Targets/Generic/Templates/SliceTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py (2 hunks)
  • Deeploy/Targets/PULPOpen/Templates/FloatGemmTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/FloatLayernormTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/FloatMatMulTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/FloatMaxPoolTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/SGDTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/SoftmaxCrossEntropyLossTemplate.py (2 hunks)
  • Deeploy/Targets/PULPOpen/Templates/TallGEMMTemplate.py (1 hunks)
  • Deeploy/Targets/PULPOpen/Templates/UniformRequantShiftTemplate.py (1 hunks)
  • Deeploy/Targets/Snitch/Templates/AddTemplate.py (1 hunks)
  • Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py (1 hunks)
  • Deeploy/TilingExtension/CodeTransformationPasses/TilingPrototypes.py (1 hunks)
  • Makefile (2 hunks)
  • TargetLibraries/PULPOpen/inc/kernel/Layernorm.h (1 hunks)
✅ Files skipped from review due to trivial changes (19)
  • Deeploy/Targets/Generic/Templates/FloatPadTemplate.py
  • Deeploy/CommonExtensions/CodeTransformationPasses/PrintInputs.py
  • Deeploy/Targets/PULPOpen/Templates/FloatLayernormTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/FloatGemmTemplate.py
  • Deeploy/AbstractDataTypes.py
  • Deeploy/Targets/PULPOpen/Templates/FloatMaxPoolTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/FloatMatMulTemplate.py
  • Deeploy/Targets/Generic/Templates/FloatLayernormTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/SGDTemplate.py
  • Deeploy/Targets/Generic/Templates/FloatMaxPoolTemplate.py
  • Deeploy/Targets/Generic/Templates/FloatGemmTemplate.py
  • Deeploy/Targets/Snitch/Templates/AddTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/SoftmaxCrossEntropyLossTemplate.py
  • Deeploy/Targets/Generic/Templates/QuantTemplate.py
  • Deeploy/TilingExtension/CodeTransformationPasses/TilingPrototypes.py
  • Deeploy/Targets/Generic/Templates/FloatReduceSumTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/UniformRequantShiftTemplate.py
  • Deeploy/Targets/PULPOpen/Templates/TallGEMMTemplate.py
  • Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py
🚧 Files skipped from review as they are similar to previous changes (2)
  • CHANGELOG.md
  • TargetLibraries/PULPOpen/inc/kernel/Layernorm.h
🧰 Additional context used
🪛 checkmake (0.2.2)
Makefile

[warning] 578-578: Target body for "lint" exceeds allowed length of 5 (10).

(maxbodylength)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (90)
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
  • GitHub Check: generic-kernels / test-runner-generic
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (5000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (microLlama/microLlama1, 60000, 10000, 5000, 8, L3) / test-runner-siracusa-tiled (10000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (8000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNetv2, 60000, 16000, 12000, 8000, 8, L3) / test-runner-siracusa-tiled (12000)
  • GitHub Check: siracusa-models-tiled-singlebuffer-L3 (miniMobileNet, 60000, 12000, 6000, 8, L3) / test-runner-siracusa-tiled (60000)
  • GitHub Check: siracusa-kernels-tiled-singlebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: siracusa-kernels-tiled-doublebuffer-L2 / test-runner-siracusa-tiled
  • GitHub Check: mempool-models / test-runner-mempool
🔇 Additional comments (5)
Deeploy/Targets/PULPOpen/Templates/FloatConvTemplate.py (2)

66-74: 2D FP Conv call formatting cleanup — OK

Whitespace/argument formatting looks good; no behavior change.


87-105: Loop guard fixed (n < ${batch}) — confirm no legacy patterns remain

Provided search returned no matches; verify repo-wide absence of for (uint32_t n=0; ${batch}; ++n) by running:
rg -n -P "(?s)for\s*(\suint32_t\s+n\s=\s0\s;[^;]${?batch}?[^;];" -S

Makefile (2)

463-464: LGTM on the softhier include copy.

Whitespace fix is fine; path usage looks correct.


578-589: Ensure lint target fails on formatting differences.

  • Add --exit-code to the yapf invocation so the lint target returns non‑zero when formatting differs:
-	@yapf -rpd -e "third_party/" -e "install/" -e "toolchain/" .
+	@yapf -rpd --exit-code -e "third_party/" -e "install/" -e "toolchain/" .
  • run_clang_format.py has no --check flag; it already returns exit code 1 (ExitStatus.DIFF) when diffs exist. The lint target calls it with -r (no -i), so C/C++ style issues will fail as-is — no change required there.

Likely an incorrect or invalid review comment.

Deeploy/Targets/Generic/Templates/SliceTemplate.py (1)

41-59: Canonicalize and validate Slice indices (starts/ends/axes/steps)

Negative axes/starts/ends or zero steps can produce invalid/undefined C (e.g., uint32_t i = -1 or huge unsigned loops). Normalize & validate here unless upstream guarantees canonical, non-zero-step, sorted inputs.

File: Deeploy/Targets/Generic/Templates/SliceTemplate.py (around lines 41-59)

Proposed normalization (insert after fetching .values in alignToContext):

         operatorRepresentation['starts'] = startsBuffer.values
         operatorRepresentation['ends'] = endsBuffer.values
         operatorRepresentation['axes'] = axesBuffer.values
         operatorRepresentation['steps'] = stepsBuffer.values

+        # Normalize axes/start/end/step
+        data_in_shape = operatorRepresentation['data_in_shape']
+        rank = len(data_in_shape)
+
+        axes = [int(a) for a in operatorRepresentation['axes']]
+        starts = [int(s) for s in operatorRepresentation['starts']]
+        ends = [int(e) for e in operatorRepresentation['ends']]
+        steps = [int(st) for st in operatorRepresentation['steps']]
+
+        # Canonicalize negative axes and validate uniqueness/range
+        axes = [(a + rank) if a < 0 else a for a in axes]
+        if len(set(axes)) != len(axes):
+            raise ValueError("Slice axes must be unique")
+        if any(a < 0 or a >= rank for a in axes):
+            raise ValueError("Slice axis out of range")
+        if any(st == 0 for st in steps):
+            raise ValueError("Slice step cannot be 0")
+
+        # Sort all triplets by axis to match template assumptions
+        zipped = sorted(zip(axes, starts, ends, steps), key=lambda t: t[0])
+        if zipped:
+            axes, starts, ends, steps = map(list, zip(*zipped))
+        else:
+            axes, starts, ends, steps = [], [], [], []
+
+        # Canonicalize negative starts/ends and clamp to dimension
+        norm_starts, norm_ends = [], []
+        for a, s, e, st in zip(axes, starts, ends, steps):
+            dim = int(data_in_shape[a])
+            s = s + dim if s < 0 else s
+            e = e + dim if e < 0 else e
+            s = max(0, min(s, dim))
+            e = max(0, min(e, dim))
+            norm_starts.append(s)
+            norm_ends.append(e)
+
+        operatorRepresentation['axes'] = axes
+        operatorRepresentation['starts'] = norm_starts
+        operatorRepresentation['ends'] = norm_ends
+        operatorRepresentation['steps'] = steps
+
         operatorRepresentation['data_in_size'] = np.prod(operatorRepresentation['data_in_shape'])

If upstream already guarantees normalized, sorted, non-negative inputs and non-zero steps, confirm so this change can be skipped.

@Xeratec
Copy link
Member Author

Xeratec commented Sep 11, 2025

@lukamac Ready for the final review

Copy link
Contributor

@lukamac lukamac left a comment

Choose a reason for hiding this comment

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

Thank you for curing everyone's OCD. Approv'er

@lukamac
Copy link
Contributor

lukamac commented Sep 12, 2025

@Xeratec actually, just one request before merging. Please update the changelog and maybe change PR title to somthing like "Linting extravaganza"?

@Xeratec Xeratec changed the title Refactor GitHub WorkFlows Split CI Workflows by Platform and Task, Improve Formatting and Linting Reliability Sep 12, 2025
@Xeratec Xeratec added the Bug Something isn't working label Sep 12, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
CHANGELOG.md (1)

7-8: Good: PR entries and capitalization look consistent.

“Workflows” capitalization matches prior feedback; links render correctly.

🧹 Nitpick comments (3)
CHANGELOG.md (3)

56-58: Fix “cMake” capitalization and clarify phrasing.

Use “CMake” and specify “license headers” for precision.

- Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
- Extended CI to check license in cMake and YAML files
+ Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
+ Extended CI to check license headers in CMake and YAML files
- Removed all trailing whitespace
+ Removed all trailing whitespace

18-18: Typo: “preventes” → “prevents”.

User-facing doc; quick fix.

- ... This preventes registry clutter caused by unnecessary per-architecture Docker tags.
+ ... This prevents registry clutter caused by unnecessary per-architecture Docker tags.

19-20: Grammar: plural “DMAs” (no apostrophe).

Clean up possessive/plural confusion.

- AsyncDma abstraction of DMA's
+ AsyncDma abstraction of DMAs
- test runner per DMA and a script that tests all the DMA's
+ Test runner per DMA and a script that tests all the DMAs
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0766d0a and 8b01466.

📒 Files selected for processing (1)
  • CHANGELOG.md (3 hunks)
🔇 Additional comments (2)
CHANGELOG.md (2)

32-35: LGTM on CI/readability additions.

Concise bullets; aligns with the PR scope (badges, YAML lint, license headers, pre-commit).


63-63: LGTM: Fix description reads clearly.

Accurately reflects the jq install hardening and license check fix.

@Xeratec Xeratec merged commit a23b15f into pulp-platform:devel Sep 12, 2025
134 checks passed
@github-project-automation github-project-automation bot moved this from In progress to Done in Deeploy Sep 12, 2025
@Xeratec Xeratec deleted the pr/ci_cleanup branch September 12, 2025 15:50
This was referenced Oct 17, 2025
marchioa pushed a commit to FondazioneChipsIT/Deeploy that referenced this pull request Oct 20, 2025
…ng Reliability (pulp-platform#108)

- Added CI badges to the README
- Added YAML linting to CI
- Added missing license headers and C header include guards
- Extended the pre-commit hooks to remove trailing whitespace, check licenses, format, and lint files
- Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
- Extended CI to check license in CMake and YAML files
- Removed all trailing whitespace
- Fix license CI check and prevent potential issues with `jq` installation
diaconuccalin pushed a commit to diaconuccalin/Deeploy that referenced this pull request Oct 27, 2025
…ng Reliability (pulp-platform#108)

- Added CI badges to the README
- Added YAML linting to CI
- Added missing license headers and C header include guards
- Extended the pre-commit hooks to remove trailing whitespace, check licenses, format, and lint files
- Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
- Extended CI to check license in CMake and YAML files
- Removed all trailing whitespace
- Fix license CI check and prevent potential issues with `jq` installation
diaconuccalin pushed a commit to diaconuccalin/Deeploy that referenced this pull request Oct 27, 2025
…ng Reliability (pulp-platform#108)

- Added CI badges to the README
- Added YAML linting to CI
- Added missing license headers and C header include guards
- Extended the pre-commit hooks to remove trailing whitespace, check licenses, format, and lint files
- Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
- Extended CI to check license in CMake and YAML files
- Removed all trailing whitespace
- Fix license CI check and prevent potential issues with `jq` installation
diaconuccalin pushed a commit to diaconuccalin/Deeploy that referenced this pull request Oct 27, 2025
…ng Reliability (pulp-platform#108)

- Added CI badges to the README
- Added YAML linting to CI
- Added missing license headers and C header include guards
- Extended the pre-commit hooks to remove trailing whitespace, check licenses, format, and lint files
- Split CI into multiple workflow files: one per platform, one for lint & license, one for general Deeploy tests, one for infrastructure, and two for Docker flows, improving maintainability and status reporting
- Extended CI to check license in CMake and YAML files
- Removed all trailing whitespace
- Fix license CI check and prevent potential issues with `jq` installation
@coderabbitai coderabbitai bot mentioned this pull request Dec 5, 2025
5 tasks
@coderabbitai coderabbitai bot mentioned this pull request Dec 14, 2025
5 tasks
@coderabbitai coderabbitai bot mentioned this pull request Jan 16, 2026
5 tasks
@coderabbitai coderabbitai bot mentioned this pull request Feb 5, 2026
5 tasks
@Victor-Jung Victor-Jung mentioned this pull request Feb 5, 2026
Victor-Jung added a commit that referenced this pull request Feb 5, 2026
This release includes improvements to the tiling and DMA code
generation, new networks and operators, improved CI workflows, migration
to PyTest, and support for PyPi package releases.

Note: Since the release tag references the Docker container tagged with
the release tag (ghcr.io/pulp-platform/deeploy:v0.2.1), 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
- PyPi Package Deployment + Remove Banshee Dept
[#154](#154)
- PyTest Migration
[#144](#144)
- Update submodule `pulp-nn-mixed`
[#145](#145)
- Improve Profiling
[#138](#138)
- FP32 ReduceMean operator improvement
[#137](#137)
- Support for RMSNorm (Pow and Sqrt operators)
[#136](#136)
- Demo TinyViT compatibility with tiled Siracusa
[#124](#124)
- TinyViT on non-tiled Siracusa
[#117](#117)
- Support Fully Asynchronous DMAs
[#114](#114)
- Disallow shape inference
[#128](#128)
- Remove memory-aware node bindings
[#123](#123)
- Fix missing const's layout transformation and refactor NCHWtoNHWC
passes [#122](#122)
- Fix aliasing [#125](#125)
- Support for 1D Autoencoder
[#98](#98)
- Refactor Logging for Improved Debugging
[#115](#115)
- Add reuse-tool as an SPDX license header linter
[#113](#113)
- Bug fixes, API Cleanup and Reduce Compiler Warning on PULP
[#112](#112)
- Fix PULP GEMM `batch` serialization
[#109](#109)
- Split CI Workflows by Platform and Task, Improve Formatting and
Linting Reliability
[#108](#108)
- Refactor tiling code generation
[#105](#105)
- Change order of typeMatching entries
[#68](#68)
- Node Mangling to avoid duplication
[#93](#93)
- Prepare Post v0.2.0 Release
[#104](#104)
- Use Docker digests instead of arch-specific tags
[#106](#106)
- Fix `Unsqueeze` Op. when using ONNX opset 13 or higher (from attribute
to input) [#119](#119)
- Fix bias hoisting in generic GEMM with no bias
[#126](#126)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working Feature Addition of new features

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants