Skip to content

Commit c7fd2a1

Browse files
authored
Release v0.2.0 (pulp-platform#103)
This release contains major architectural changes, new platform support, enhanced simulation workflows, floating-point kernel support, training infrastructure for CCT models, memory allocation strategies, and documentation improvements. After merging this into `main`, the release process will proceed with: - Pushing a Git tag for the release after merging this PR - Creating a GitHub release with the prepared tag. Note: Since the release tag references the Docker container tagged with the release tag (`ghcr.io/pulp-platform/deeploy:v0.2.0`), the CI will initially fail. The Deeploy Docker image must be built after the release PR is merged and the CI restarted. ### List of Pull Requests - Prepare v0.2.0 release [pulp-platform#102](pulp-platform#102) - Add Luka as Code Owner [pulp-platform#101](pulp-platform#101) - Fix CI, Docker Files, and Documentation Workflow [pulp-platform#100](pulp-platform#100) - Chimera Platform Integration [pulp-platform#96](pulp-platform#96) - Add Tutorial and Refactor README [pulp-platform#97](pulp-platform#97) - Reduce Mean Float Template [pulp-platform#92](pulp-platform#92) - Reshape Memory Freeing and Generic Float GEMM Fixes [pulp-platform#91](pulp-platform#91) - Prepare for Release and Separate Dependencies [pulp-platform#90](pulp-platform#90) - Fix input offsets calculation [pulp-platform#89](pulp-platform#89) - Move PULP SDK to main branch/fork [pulp-platform#88](pulp-platform#88) - Finite Lifetime for IO Tensors [pulp-platform#51](pulp-platform#51) - Improved Memory Visualization and Multi-Layer Tiling Profiling [pulp-platform#56](pulp-platform#56) - Fix Linting in CI and Reformat C Files [pulp-platform#86](pulp-platform#86) - Fix Broken CMake Flow For pulp-sdk [pulp-platform#87](pulp-platform#87) - Refactor Changelog For Release [pulp-platform#85](pulp-platform#85) - ARM Docker Container and Minor Bug Fix [pulp-platform#84](pulp-platform#84) - Added Kernel for Generic Float DW Conv2D [pulp-platform#63](pulp-platform#63) - Autoselect Self-Hosted Runners if the Action is on Upstream [pulp-platform#81](pulp-platform#81) - TEST_RECENT linking on MacOS [pulp-platform#78](pulp-platform#78) - Add RV32IMF Picolibc support for Siracusa platform [pulp-platform#66](pulp-platform#66) - Improve Documentation and VSCode Support [pulp-platform#76](pulp-platform#76) - Debug Print Topology Pass and Code Transformation [pulp-platform#75](pulp-platform#75) - Find all subdirectories of Deeploy when installing with pip install [pulp-platform#70](pulp-platform#70) - Add milestone issue template [pulp-platform#71](pulp-platform#71) - Bunch of fixes and changes [pulp-platform#58](pulp-platform#58) - Add SoftHier platform [pulp-platform#65](pulp-platform#65) - rv32imf_xpulpv2 ISA support for Siracusa platform [pulp-platform#64](pulp-platform#64) - One LLVM To Compile Them All [pulp-platform#60](pulp-platform#60) - One GVSoC to Simulate Them All [pulp-platform#59](pulp-platform#59) - Add Support for CCT Last Layer Training with Embedding Dim 8-128 [pulp-platform#55](pulp-platform#55) - Add CCT Classifier Training Support [pulp-platform#53](pulp-platform#53) - L3 Bugs: DMA Struct Datatype and Maxpool Margin Error [pulp-platform#45](pulp-platform#45) - DeepQuant Quantized Linear Support [pulp-platform#54](pulp-platform#54) - Implemented Dequant Layer for Generic and Siracusa [pulp-platform#52](pulp-platform#52) - Infinite Lifetime Buffers Considered in Tiling & Memory Allocation (+ Visualization) [pulp-platform#44](pulp-platform#44) - Implemented Quant Layer for Generic and Siracusa [pulp-platform#49](pulp-platform#49) - Increase maximal Mchan DMA transfer sizes from 64KiB to 128KiB [pulp-platform#47](pulp-platform#47) - Add MiniMalloc and Decouple Memory Allocation and Tiling [pulp-platform#40](pulp-platform#40) - Float CCT Bugs on L3 [pulp-platform#37](pulp-platform#37) - Memory Allocation Strategies and Visualization [pulp-platform#36](pulp-platform#36) - Add CODEOWNERS [pulp-platform#42](pulp-platform#42) - Add Tiling Support to All CCT Kernels and Fix CCT Operators on Siracusa Platform for L2 [pulp-platform#35](pulp-platform#35) - Add Fp gemm and Softmax for Snitch platform [pulp-platform#31](pulp-platform#31) - Add Float Kernels for CCT [pulp-platform#29](pulp-platform#29) - documentation deployment [pulp-platform#34](pulp-platform#34) - main.c Float Cast Bugs [pulp-platform#28](pulp-platform#28) - Add Float GEMM on PULP with Tiling [pulp-platform#26](pulp-platform#26) - Add Float Support & Float GEMM for Generic [pulp-platform#25](pulp-platform#25) - GVSOC support for the Snitch Cluster platform [pulp-platform#23](pulp-platform#23) - Snitch Cluster Tiling Support [pulp-platform#22](pulp-platform#22) - Snitch support integration [pulp-platform#14](pulp-platform#14) - Update bibtex citation [pulp-platform#20](pulp-platform#20) - the PR template location, bump min python to 3.10, change install command [pulp-platform#17](pulp-platform#17) - Add pre-commit for python formatting [pulp-platform#15](pulp-platform#15) - FP integration (v2) [pulp-platform#12](pulp-platform#12) - shell for sequential tests of Generic, Cortex, and Mempool platforms [pulp-platform#11](pulp-platform#11) - Add issue templates [pulp-platform#10](pulp-platform#10) - Minor CI and Readme Improvements [pulp-platform#8](pulp-platform#8) - Fix GHCR Link for Docker Build [pulp-platform#7](pulp-platform#7) - neureka's ccache id [pulp-platform#6](pulp-platform#6) - GitHub-based CI/CD Flow [pulp-platform#4](pulp-platform#4) - Generic Softmax Kernel [pulp-platform#2](pulp-platform#2) - Port GitLab CI [#1](pulp-platform#1)
2 parents 99d5cfd + 8530a25 commit c7fd2a1

506 files changed

Lines changed: 19853 additions & 1347 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copyright 2021 ETH Zurich and University of Bologna.
2+
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Use LLVM's style
6+
BasedOnStyle: LLVM
7+
ColumnLimit: 80

.devcontainer.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"image": "ghcr.io/pulp-platform/deeploy:main",
3+
"name": "deeploy_main",
4+
"customizations": {
5+
"vscode": {
6+
"extensions": [
7+
"ms-vscode.cpptools-extension-pack",
8+
"twxs.cmake",
9+
"josetr.cmake-language-support-vscode",
10+
"ms-vscode.cmake-tools",
11+
"ms-python.python",
12+
"ms-vscode-remote.remote-containers",
13+
"rioj7.command-variable"
14+
]
15+
}
16+
},
17+
"mounts": [
18+
{
19+
"source": "${localWorkspaceFolder}",
20+
"target": "/app/Deeploy",
21+
"type": "bind"
22+
}
23+
]
24+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[BUG] "
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
## Describe the bug
11+
A clear and concise description of what the bug is.
12+
13+
## To Reproduce
14+
Steps to reproduce the behavior:
15+
16+
## Expected behavior
17+
A clear and concise description of what you expected to happen.
18+
19+
## Additional context
20+
Add any other context about the problem here.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for Deeploy
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
## Is your feature request related to a problem? Please describe.
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
## Describe the solution you'd like
14+
A clear and concise description of what you want to happen.
15+
16+
## Describe alternatives you've considered
17+
A clear and concise description of any alternative solutions or features you've considered.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Milestone
3+
about: Deeploy's Milestone
4+
title: '[MILESTONE] '
5+
labels: milestone
6+
assignees: ''
7+
8+
---
9+
# Milestone Title
10+
11+
## Description
12+
A clear and concise description of the milestone.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Describe the intent of your PR here.
2+
3+
## Added
4+
-
5+
6+
## Changed
7+
-
8+
9+
## Fixed
10+
-
11+
12+
## PR Merge Checklist
13+
14+
1. [ ] The PR is rebased on the latest `devel` commit and pointing to `devel`.
15+
2. [ ] Your PR reviewed and approved.
16+
3. [ ] All checks are passing.
17+
4. [ ] The `CHANGELOG.md` file has been updated.
18+
5. [ ] If the docker was modified, change back its link after review.
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
name: BuildDockerDeeploy
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
docker_image_toolchain:
7+
description: 'Deeploy Toolchain Image to use'
8+
required: false
9+
default: 'ghcr.io/pulp-platform/deeploy-toolchain:latest'
10+
11+
jobs:
12+
prepare:
13+
name: Fetch branch name or tag
14+
runs-on: ubuntu-latest
15+
outputs:
16+
docker_tag: ${{ steps.generate_tag.outputs.docker_tag }}
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up environment variables
21+
run: |
22+
echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
23+
echo "TAG_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
24+
echo "IS_TAG=${GITHUB_REF_TYPE}" >> $GITHUB_ENV
25+
26+
- name: Set Docker tag
27+
id: generate_tag
28+
run: |
29+
if [[ "${{ env.IS_TAG }}" == "tag" ]]; then
30+
echo "docker_tag=${{ env.TAG_NAME }}" >> $GITHUB_OUTPUT
31+
else
32+
echo "docker_tag=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT
33+
fi
34+
35+
build-deeploy:
36+
name: Build Deploy Image
37+
needs: [ prepare ]
38+
runs-on: ${{ matrix.runner }}
39+
strategy:
40+
fail-fast: false
41+
matrix:
42+
platform: [amd64, arm64]
43+
include:
44+
- platform: amd64
45+
runner: ubuntu-latest
46+
- platform: arm64
47+
runner: ubuntu-22.04-arm
48+
steps:
49+
- uses: actions/checkout@v4
50+
51+
- name: Free up disk space
52+
uses: jlumbroso/free-disk-space@v1.3.1
53+
with:
54+
tool-cache: true
55+
android: true
56+
dotnet: true
57+
haskell: true
58+
large-packages: true
59+
60+
- uses: docker/setup-buildx-action@v1
61+
62+
- name: GHCR Log-in
63+
uses: docker/login-action@v1
64+
with:
65+
registry: ghcr.io
66+
username: ${{ github.actor }}
67+
password: ${{ secrets.GITHUB_TOKEN }}
68+
69+
- name: Build Cache for Docker
70+
uses: actions/cache@v3
71+
with:
72+
path: var-ccache
73+
key: ${{ runner.os }}-${{ matrix.platform }}-build-cache-deeploy
74+
75+
- name: Inject build-cache
76+
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
77+
with:
78+
cache-map: |
79+
{
80+
"var-ccache": "/ccache"
81+
}
82+
skip-extraction: ${{ steps.cache.outputs.cache-hit }}
83+
84+
- name: Lower Case Repository Name
85+
run: |
86+
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
87+
env:
88+
OWNER: '${{ github.repository_owner }}'
89+
90+
- name: Build and push final deploy image
91+
uses: docker/build-push-action@v6
92+
with:
93+
platforms: linux/${{ matrix.platform }}
94+
context: .
95+
cache-from: type=gha
96+
cache-to: type=gha,mode=min
97+
file: Container/Dockerfile.deeploy
98+
push: true
99+
build-args: |
100+
BASE_IMAGE=${{ github.event.inputs.docker_image_toolchain }}
101+
tags: |
102+
ghcr.io/${{ env.OWNER_LC }}/deeploy:latest-${{ matrix.platform }}
103+
ghcr.io/${{ env.OWNER_LC }}/deeploy:${{ needs.prepare.outputs.docker_tag }}-${{ matrix.platform }}
104+
105+
merge-deeploy-images:
106+
name: Merge Deeploy Images
107+
runs-on: ubuntu-latest
108+
needs: [ prepare, build-deeploy ]
109+
steps:
110+
- name: GHCR Log-in
111+
uses: docker/login-action@v1
112+
with:
113+
registry: ghcr.io
114+
username: ${{ github.actor }}
115+
password: ${{ secrets.GITHUB_TOKEN }}
116+
117+
- name: Lower Case Repository Name
118+
run: |
119+
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
120+
env:
121+
OWNER: '${{ github.repository_owner }}'
122+
123+
- uses: Noelware/docker-manifest-action@v1
124+
with:
125+
inputs: ghcr.io/${{ env.OWNER_LC }}/deeploy:latest-amd64,ghcr.io/${{ env.OWNER_LC }}/deeploy:latest-arm64
126+
tags: ghcr.io/${{ env.OWNER_LC }}/deeploy:latest,ghcr.io/${{ env.OWNER_LC }}/deeploy:${{ needs.prepare.outputs.docker_tag }}
127+
push: true
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: BuildDockerToolchain
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
prepare:
8+
name: Fetch branch name or tag
9+
runs-on: ubuntu-latest
10+
outputs:
11+
docker_tag: ${{ steps.generate_tag.outputs.docker_tag }}
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Set up environment variables
16+
run: |
17+
echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
18+
echo "TAG_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV
19+
echo "IS_TAG=${GITHUB_REF_TYPE}" >> $GITHUB_ENV
20+
21+
- name: Set Docker tag
22+
id: generate_tag
23+
run: |
24+
if [[ "${{ env.IS_TAG }}" == "tag" ]]; then
25+
echo "docker_tag=${{ env.TAG_NAME }}" >> $GITHUB_OUTPUT
26+
else
27+
echo "docker_tag=${{ env.BRANCH_NAME }}" >> $GITHUB_OUTPUT
28+
fi
29+
30+
build-toolchain:
31+
name: Build Deeploy Toolchain Image
32+
needs: [ prepare ]
33+
runs-on: ${{ matrix.runner }}
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
platform: [amd64, arm64]
38+
include:
39+
- platform: amd64
40+
runner: ubuntu-latest
41+
- platform: arm64
42+
runner: ubuntu-22.04-arm
43+
steps:
44+
- uses: actions/checkout@v2
45+
46+
- name: Free up disk space
47+
uses: jlumbroso/free-disk-space@v1.3.1
48+
with:
49+
android: true
50+
dotnet: true
51+
haskell: true
52+
large-packages: true
53+
54+
- uses: docker/setup-buildx-action@v1
55+
56+
- name: GHCR Log-in
57+
uses: docker/login-action@v1
58+
with:
59+
registry: ghcr.io
60+
username: ${{ github.actor }}
61+
password: ${{ secrets.GITHUB_TOKEN }}
62+
63+
- name: Build Cache for Docker
64+
uses: actions/cache@v3
65+
with:
66+
path: var-ccache
67+
key: ${{ runner.os }}-${{ matrix.platform }}-build-cache-toolchain
68+
69+
- name: Inject build-cache
70+
uses: reproducible-containers/buildkit-cache-dance@v3.1.0
71+
with:
72+
cache-map: |
73+
{
74+
"var-ccache": "/ccache"
75+
}
76+
skip-extraction: ${{ steps.cache.outputs.cache-hit }}
77+
78+
- name: Lower Case Repository Name
79+
run: |
80+
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
81+
env:
82+
OWNER: '${{ github.repository_owner }}'
83+
84+
- name: Build and push toolchain image
85+
uses: docker/build-push-action@v6
86+
with:
87+
platforms: linux/${{ matrix.platform }}
88+
context: .
89+
file: Container/Dockerfile.toolchain
90+
push: true
91+
tags: |
92+
ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:latest-${{ matrix.platform }}
93+
ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:${{ needs.prepare.outputs.docker_tag }}-${{ matrix.platform }}
94+
95+
merge-toolchain-images:
96+
name: Merge Deeploy Toolchain Images
97+
runs-on: ubuntu-latest
98+
needs: [ prepare, build-toolchain ]
99+
steps:
100+
- name: GHCR Log-in
101+
uses: docker/login-action@v1
102+
with:
103+
registry: ghcr.io
104+
username: ${{ github.actor }}
105+
password: ${{ secrets.GITHUB_TOKEN }}
106+
107+
- name: Lower Case Repository Name
108+
run: |
109+
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
110+
env:
111+
OWNER: '${{ github.repository_owner }}'
112+
113+
- uses: Noelware/docker-manifest-action@v1
114+
with:
115+
inputs: ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:latest-amd64,ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:latest-arm64
116+
tags: ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:latest,ghcr.io/${{ env.OWNER_LC }}/deeploy-toolchain:${{ needs.prepare.outputs.docker_tag }}
117+
push: true

0 commit comments

Comments
 (0)