Improve Profiling (#138) #280
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna | |
| # | |
| # SPDX-License-Identifier: Apache-2.0 | |
| --- | |
| name: CI • Siracusa + Neureka (Tiled) | |
| "on": | |
| push: | |
| branches: | |
| - "**" | |
| tags: | |
| - "v*.*.*" | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| docker_image_deeploy: | |
| description: "Deeploy Image to use" | |
| required: false | |
| default: "ghcr.io/pulp-platform/deeploy:devel" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| select-env: | |
| uses: ./.github/workflows/_select-env.yml | |
| with: | |
| docker_image_deeploy: ${{ inputs.docker_image_deeploy }} | |
| siracusa-neureka-kernels-tiled-singlebuffer-L2: | |
| needs: select-env | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled-sequential.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| tests-config: | | |
| [ | |
| {"name":"Kernels/Integer/GEMM/Regular_RQPerColumn","L1":[16000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Regular_RQ","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Unsigned_RQ","L1":[32000]} | |
| ] | |
| num-cores: 8 | |
| siracusa-neureka-kernels-tiled-doublebuffer-L2: | |
| needs: select-env | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled-sequential.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| tests-config: | | |
| [ | |
| {"name":"Kernels/Integer/GEMM/Regular_RQPerColumn","L1":[16000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Regular_RQ","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Unsigned_RQ","L1":[32000]} | |
| ] | |
| num-cores: 8 | |
| # double buffer enabled: | |
| double-buffer: true | |
| siracusa-neureka-models-tiled-singlebuffer-L3: | |
| needs: select-env | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-data: | |
| - { name: "Models/miniMobileNet", L1: [2000] } # LMACAN: 1000 leads to non-2d transfers in L3! | |
| - { name: "Kernels/Integer/Attention", L1: [2500] } | |
| - { name: "Models/Transformer", L1: [15000] } | |
| - { name: "Models/microLlama/microLlama1", L1: [10000] } | |
| num-cores: [8] | |
| default-memory-level: ["L3"] | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| test-name: ${{ matrix.test-data.name }} | |
| num-cores: ${{ matrix.num-cores }} | |
| L1: ${{ toJson(matrix.test-data.L1) }} | |
| default-memory-level: ${{ matrix.default-memory-level }} | |
| siracusa-neureka-models-tiled-doublebuffer-L3: | |
| needs: select-env | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-data: | |
| - { name: "Models/miniMobileNet", L1: [2000] } # LMACAN note | |
| - { name: "Kernels/Integer/Attention", L1: [5000] } | |
| - { name: "Models/Transformer", L1: [30000] } | |
| num-cores: [8] | |
| double-buffer: [true] | |
| default-memory-level: ["L3"] | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| test-name: ${{ matrix.test-data.name }} | |
| num-cores: ${{ matrix.num-cores }} | |
| L1: ${{ toJson(matrix.test-data.L1) }} | |
| double-buffer: ${{ matrix.double-buffer }} | |
| default-memory-level: ${{ matrix.default-memory-level }} | |
| siracusa-neureka-kernels-tiled-singlebuffer-L2-wmem: | |
| needs: select-env | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled-sequential.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| tests-config: | | |
| [ | |
| {"name":"Kernels/Integer/GEMM/Regular_RQPerColumn","L1":[16000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Regular_RQ","L1":[32000]}, | |
| {"name":"Kernels/Integer/Conv/PW_2D_RQ/Unsigned_RQ","L1":[32000]} | |
| ] | |
| num-cores: 8 | |
| neureka-wmem: true | |
| siracusa-neureka-models-tiled-doublebuffer-L3-wmem: | |
| needs: select-env | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-data: | |
| - { name: "Models/miniMobileNet", L1: [2000] } # LMACAN note | |
| - { name: "Kernels/Integer/Attention", L1: [3500] } | |
| # - { name: "Models/Transformer", L1: [30000] } | |
| - { name: "Models/microLlama/microLlama1", L1: [10000] } | |
| num-cores: [8] | |
| double-buffer: [true] | |
| default-memory-level: ["L3"] | |
| neureka-wmem: [true] | |
| uses: ./.github/workflows/_runner-siracusa-neureka-tiled.yml | |
| with: | |
| runner: ${{ needs.select-env.outputs.runner }} | |
| docker-image: ${{ needs.select-env.outputs.image }} | |
| test-name: ${{ matrix.test-data.name }} | |
| num-cores: ${{ matrix.num-cores }} | |
| L1: ${{ toJson(matrix.test-data.L1) }} | |
| double-buffer: ${{ matrix.double-buffer }} | |
| default-memory-level: ${{ matrix.default-memory-level }} | |
| neureka-wmem: ${{ matrix.neureka-wmem }} |