Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
05b9404
Update gitignore
Victor-Jung Mar 12, 2026
5615ed4
XDNA2 Platform Beta Support
Victor-Jung Mar 12, 2026
d039415
Add XDNA container
Victor-Jung Mar 17, 2026
e66864a
First attempt at generating MLIR code with Deeploy
Victor-Jung Mar 18, 2026
d854846
Generate tiled code but too much logic is in the Template
Victor-Jung Mar 18, 2026
9f7db26
Move data movement in passes. Template represent for loop and aquire/…
Victor-Jung Mar 18, 2026
14f3ced
Template is agnostic of tiling and data movement that are handled by …
Victor-Jung Mar 18, 2026
b850b23
Add CI on self hosted runner
Victor-Jung Mar 19, 2026
d79e36f
Remove unecessary install
Victor-Jung Mar 19, 2026
7c995bc
Add cleanup step before checkout to fix permission
Victor-Jung Mar 19, 2026
fc2b364
aie import is optional to not enforce mlir-aie and llvm-aie package i…
Victor-Jung Mar 24, 2026
1865530
Decouple xdna requirements from dev requirements
Victor-Jung Mar 24, 2026
de6f961
Format
Victor-Jung Mar 24, 2026
01d458b
Format
Victor-Jung Mar 24, 2026
4427f5a
Add general todos for future refactoring
Victor-Jung Mar 26, 2026
a82fd52
Format
Victor-Jung Mar 26, 2026
e68aea7
Regenerate Add Test with larger dims
Victor-Jung Apr 2, 2026
649249e
Use latest MLIR-AIE
Victor-Jung Apr 2, 2026
e8c1be5
Add support for trace generation
Victor-Jung Apr 7, 2026
d4442d7
Add documentation
Victor-Jung Apr 7, 2026
add1ee0
format
Victor-Jung Apr 7, 2026
03e51fb
Make workspace safe to prevent "dubious ownership" sporadic issues
Victor-Jung Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/_runner-chimera.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-cortexm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-gap9-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-generic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-mempool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-siracusa-neureka-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-siracusa-tiled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-siracusa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-snitch-tiled-sequential.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-snitch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_runner-softhier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
container:
image: ${{ inputs.docker-image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/_runner-xdna2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: _runner-xdna2

"on":
workflow_call:
inputs:
pytest-marker:
required: true
type: string
docker-image:
required: false
type: string
default: "deeploy-xdna:local"

jobs:
test-runner-xdna2:
runs-on: xdna2-npu
# NOTE: We cannot use the `container:` directive here because
# GitHub Actions does not support `--device` flags required for
# NPU access (/dev/accel/accel0). Instead we use explicit
# `docker run` commands.
steps:
- name: Fix workspace permissions
shell: bash
run: |
docker run --rm \
-v "${{ github.workspace }}":/workspace \
${{ inputs.docker-image }} \
chown -R $(id -u):$(id -g) /workspace || true

- name: Mark workspace as safe
run: git config --global --add safe.directory '*'

- name: Checkout Repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Run Tests in Docker
shell: bash
run: |
docker run --rm \
--device /dev/accel/accel0 \
--ulimit memlock=-1 \
-v /opt/xilinx:/opt/xilinx \
-v "${{ github.workspace }}":/app/Deeploy \
-w /app/Deeploy \
${{ inputs.docker-image }} \
bash -c "
pip install -e . &&
cd DeeployTest &&
pytest test_platforms.py -v -m 'xdna2 and ${{ inputs.pytest-marker }}'
"
4 changes: 4 additions & 0 deletions .github/workflows/ci-deeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ jobs:
container:
image: ${{ needs.select-env.outputs.image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand All @@ -49,6 +51,8 @@ jobs:
container:
image: ${{ needs.select-env.outputs.image }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/ci-platform-xdna2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# SPDX-FileCopyrightText: 2025 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

---
name: CI • XDNA2

"on":
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
workflow_dispatch:
inputs:
docker_image:
description: "XDNA2 Docker image (must be pre-built on the runner)"
required: false
default: "deeploy-xdna:local"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
xdna2-kernels:
uses: ./.github/workflows/_runner-xdna2.yml
with:
pytest-marker: "kernels"
docker-image: ${{ inputs.docker_image || 'deeploy-xdna:local' }}
2 changes: 2 additions & 0 deletions .github/workflows/infra-generate-ccache-gap9.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
container:
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy-gap9:latest' }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/infra-generate-ccache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
container:
image: ${{ github.event.inputs.docker_image_deeploy || 'ghcr.io/pulp-platform/deeploy:devel' }}
steps:
- name: Mark workspace as safe
run: git config --global --add safe.directory '*'
- name: Checkout Repo
uses: actions/checkout@v4
with:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,7 @@ CHANGELOG_GEN.md
# Container Artifacts
.pyusbip/
.cache/

# Claude context file
CLAUDE.md
Container/xrt-debs/
17 changes: 17 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ elseif(platform STREQUAL SoftHier)
message(STATUS "Building for platform 'SoftHier'")
elseif(platform STREQUAL Chimera)
message(STATUS "Building for platform 'Chimera'")
elseif(platform STREQUAL XDNA2)
message(STATUS "Building for platform 'XDNA2'")
else()
message(FATAL_ERROR "Invalid platform '${platform}' specified!")
endif()
Expand Down Expand Up @@ -299,5 +301,20 @@ if(platform STREQUAL Chimera)

endif()

if(platform STREQUAL XDNA2)

project(${TESTNAME} LANGUAGES CXX)

message(STATUS "============================= XDNA2 Configuration ============================")
message(STATUS "[cMake ] GENERATED_SOURCE = " ${GENERATED_SOURCE})
message(STATUS "[cMake ] TESTNAME = " ${TESTNAME})
message(STATUS "==============================================================================")
message(STATUS "")

add_subdirectory(TargetLibraries/XDNA2)
add_subdirectory(DeeployTest/Platforms/XDNA2)

endif()


print_simulation_config()
52 changes: 52 additions & 0 deletions Container/Dockerfile.deeploy-xdna
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna
#
# SPDX-License-Identifier: Apache-2.0

FROM ubuntu:24.04

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV LLVM_INSTALL_DIR="nope"

RUN apt-get update && apt-get install -y \
software-properties-common \
&& add-apt-repository -y ppa:amd-team/xrt \
&& apt-get update && apt-get install -y \
cmake \
ninja-build \
g++ \
git \
git-lfs \
python3 \
python3-pip \
python-is-python3 \
uuid-dev \
wget \
curl \
ccache \
libxrt2 \
libxrt-npu2 \
libxrt-dev \
libxrt-utils \
libxrt-utils-npu \
&& rm -rf /var/lib/apt/lists/*

ENV XILINX_XRT=/opt/xilinx/xrt
ENV PATH=${XILINX_XRT}/bin:${PATH}
ENV LD_LIBRARY_PATH=${XILINX_XRT}/lib


WORKDIR /app
COPY pyproject.toml requirements-xdna.txt ./
RUN pip install toml-to-requirements && \
toml-to-req --toml-file pyproject.toml && \
pip install -r requirements.txt && \
pip install -r requirements-xdna.txt && \
rm -f requirements.txt pyproject.toml requirements-xdna.txt

ENV MLIR_AIE_PYTHON=/usr/bin/python3

WORKDIR /app/Deeploy
Loading
Loading