Skip to content

Demo TinyViT compatibility with tiled Siracusa #221

Demo TinyViT compatibility with tiled Siracusa

Demo TinyViT compatibility with tiled Siracusa #221

# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0
---
name: CI • Siracusa (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-kernels-tiled-singlebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled-sequential.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
tests-config: |
[
{"name":"testMatMul","L1":[64000,32000,16000]},
{"name":"test2DRequantizedConv","L1":[8000,6000,4000]},
{"name":"test2DRequantizedStriddedPaddedConv","L1":[600]},
{"name":"testRequantizedDWConv","L1":[2561]},
{"name":"iSoftmax","L1":[800,500,300]},
{"name":"testConcat","L1":[32000,16000,8000]},
{"name":"testRMSNorm","L1":[2048,1024,512]},
{"name":"Hardswish","L1":[750]},
{"name":"RQHardswish","L1":[750]},
{"name":"testFloatGEMM","L1":[8000]},
{"name":"testFloat2DConvolution","L1":[1200]},
{"name":"testFloat2DConvolutionBias","L1":[6000]},
{"name":"testFloat2DConvolutionZeroBias","L1":[6000]},
{"name":"testFloat2DDWConvolution","L1":[6600]},
{"name":"testFloat2DDWConvolutionBias","L1":[6600]},
{"name":"testFloat2DDWConvolutionZeroBias","L1":[6600]},
{"name":"testFloatLayerNorm","L1":[2000]},
{"name":"testFloatMaxPool","L1":[2000]},
{"name":"testFloatMatmul","L1":[2000]},
{"name":"testFloatRelu","L1":[2000]},
{"name":"testFloatReshapeWithSkipConnection","L1":[1400]},
{"name":"testFloatSoftmax","L1":[4000]},
{"name":"testFloatTranspose","L1":[2000]},
{"name":"testFloatMul","L1":[2000]},
{"name":"largeFloatAdd","L1":[220000]},
{"name":"testRQGEMMwBatch","L1":[20000]},
{"name":"testMatMulBatch","L1":[20000]}
]
num-cores: 8
siracusa-kernels-tiled-doublebuffer-L2:
needs: select-env
uses: ./.github/workflows/_runner-siracusa-tiled-sequential.yml
with:
runner: ${{ needs.select-env.outputs.runner }}
docker-image: ${{ needs.select-env.outputs.image }}
tests-config: |
[
{"name":"testMatMul","L1":[64000,32000,16000]},
{"name":"test2DRequantizedConv","L1":[8000,6000,5000]},
{"name":"testRequantizedDWConv","L1":[5121]},
{"name":"iSoftmax","L1":[1600,1000,600]},
{"name":"testConcat","L1":[64000,32000,16000]},
{"name":"testRMSNorm","L1":[4096,2048,1024]},
{"name":"Hardswish","L1":[750]},
{"name":"RQHardswish","L1":[800]},
{"name":"testFloatGEMM","L1":[8000]},
{"name":"testFloat2DConvolution","L1":[1600]},
{"name":"testFloat2DConvolutionBias","L1":[8000]},
{"name":"testFloat2DConvolutionZeroBias","L1":[8000]},
{"name":"testFloat2DDWConvolution","L1":[9000]},
{"name":"testFloat2DDWConvolutionBias","L1":[9000]},
{"name":"testFloat2DDWConvolutionZeroBias","L1":[9000]},
{"name":"testFloatLayerNorm","L1":[2000]},
{"name":"testFloatMaxPool","L1":[5000]},
{"name":"testFloatMatmul","L1":[5000]},
{"name":"testFloatRelu","L1":[20]},
{"name":"testFloatReshapeWithSkipConnection","L1":[2600]},
{"name":"testFloatSoftmax","L1":[8000]},
{"name":"testFloatTranspose","L1":[2000]},
{"name":"testFloatMul","L1":[2000]}
]
num-cores: 8
double-buffer: true
siracusa-models-tiled-singlebuffer-L2:
needs: select-env
strategy:
fail-fast: false
matrix:
test-data:
- name: "simpleRegression"
L1: [45000, 30000, 15000]
- name: "miniMobileNet"
L1: [60000, 12000, 6000, 3000]
- name: "miniMobileNetv2"
L1: [60000, 16000, 12000, 8000]
- name: "Attention"
L1: [60000, 10000, 5000]
- name: "microLlama/microLlama1"
L1: [60000, 10000, 5000]
- name: "microLlama/microLlama8"
L1: [60000, 10000, 5000]
- name: "microLlama/microLlama8_parallel"
L1: [60000, 10000, 5000]
- name: "MLPerf/KeywordSpotting"
L1: [64000]
- name: "MLPerf/ImageClassification"
L1: [64000]
- name: "MLPerf/AnomalyDetection"
L1: [64000]
- name: "CCT/CCT_1_16_16_8"
L1: [2000, 64000]
- name: "testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_8"
L1: [4000, 64000]
num-cores: [8]
uses: ./.github/workflows/_runner-siracusa-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) }}
siracusa-models-tiled-singlebuffer-L3:
needs: select-env
strategy:
fail-fast: false
matrix:
test-data:
- name: "simpleRegression"
L1: [45000, 30000, 16000] # SCHEREMO note
- name: "miniMobileNet"
L1: [60000, 12000, 6000] # SCHEREMO note
- name: "miniMobileNetv2"
L1: [60000, 16000, 12000, 8000]
- name: "Attention"
L1: [60000, 10000, 5000, 2500]
- name: "Transformer"
L1: [60000, 30000, 15000]
- name: "microLlama/microLlama1"
L1: [60000, 10000, 5000]
- name: "CCT/CCT_2_32_32_128"
L1: [64000, 128000]
- name: "testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128"
L1: [32000, 64000]
num-cores: [8]
default-memory-level: ["L3"]
uses: ./.github/workflows/_runner-siracusa-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 }}
# TEMPORARILY DISABLE L3 TRANSFER DUE TO DRIVER BUG CAUSING SPORADIC CRASH
siracusa-models-tiled-doublebuffer-L3:
needs: select-env
strategy:
fail-fast: false
matrix:
test-data:
- name: "simpleRegression"
L1: [60000, 45000, 30000]
- name: "miniMobileNet"
L1: [60000, 24000, 12000, 6000]
- name: "miniMobileNetv2"
L1: [60000, 32000, 24000, 16000]
- name: "Attention"
L1: [60000, 20000, 10000, 5000]
- name: "Transformer"
L1: [60000, 30000, 15000]
- name: "microLlama/microLlama1"
L1: [60000, 20000, 10000]
- name: "microLlama/microLlama8"
L1: [60000, 20000, 10000]
- name: "microLlama/microLlama8_parallel"
L1: [60000, 20000, 10000]
- name: "CCT/CCT_2_32_32_128"
L1: [64000, 128000]
- name: "testTrainCCT/CCT1_Classifier_Training/CCT_1_16_16_128"
L1: [8000, 64000]
num-cores: [8]
double-buffer: [true]
default-memory-level: ["L3"]
uses: ./.github/workflows/_runner-siracusa-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 }}