Skip to content

Commit c7fd2a1

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

File tree

506 files changed

+19853
-1347
lines changed

Some content is hidden

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

506 files changed

+19853
-1347
lines changed

.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/[email protected]
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/[email protected]
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/[email protected]
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/[email protected]
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)