Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
935cfb6
Machine Learning Integration for DaCe (Autodiff - ONNX - PyTorch) (#2…
affifboudaoud Dec 2, 2025
c115df9
Updated Reloading Scheme for `ReloadableDLL` (#2218)
philip-paul-mueller Dec 4, 2025
076fd31
Update .coveragerc
tbennun Dec 4, 2025
e19e785
Modify codecov.yml to change ignored files and builds
tbennun Dec 4, 2025
0efa622
Increase timeout for ML tests (#2243)
affifboudaoud Dec 8, 2025
173de0b
Refactor dace/data.py into dace/data/ package (#2245)
Copilot Dec 8, 2025
cc59d77
Support `dace.map` syntax for struct fields (#2187)
tbennun Dec 8, 2025
5824ad0
GPU codegen crashes and generates incorrect code with dynamic inputs …
ThrudPrimrose Dec 8, 2025
312f37f
Modular Code Generation Docs: Add LowerConsume and remove numbering (…
tbennun Dec 9, 2025
387f1e8
Update C++ standard to C++20 (#2253)
tbennun Dec 12, 2025
156567b
Add support for CUDA 13 (#2255)
zero9178 Dec 22, 2025
f30728a
Fix in cuda codegen: convert block_size config values to `int` values…
edopao Dec 25, 2025
c074f7a
Fix a bunch of typos in comments (#2263)
romanc Jan 10, 2026
b88b82b
Extract FPGA code generation to separate repository (#2252)
tbennun Jan 11, 2026
d293a55
Add NVTX/rocTX ranges (#2001)
iomaganaris Jan 12, 2026
ee38c13
Add HIP-codegen for stream-order memory allocation (#2270)
edopao Jan 13, 2026
54b5f7f
Further extract FPGA code generation support (#2265)
tbennun Jan 13, 2026
a27e416
Add `#pragma unroll <X>` to `LoopRegion` generated code (#2269)
iomaganaris Jan 14, 2026
e36c0a7
Remove the deprecated `NestedSDFG.schedule` property (#2272)
tbennun Jan 17, 2026
ec0bb2f
Remove the deprecated `GPU_Default` schedule type (#2273)
tbennun Jan 18, 2026
846d791
Recover original Python object in callbacks (#2275)
tbennun Jan 19, 2026
c9576df
Add dace::float32sr type to DaCe (#2148)
creavin Jan 20, 2026
7434e91
Fix gpu reduction templates (#2268)
iomaganaris Jan 20, 2026
961bce0
Refactored How Calling in `CompiledSDFG` Works (#2206)
philip-paul-mueller Jan 21, 2026
b04bfd7
Squashed commit of the following:
edopao Jan 21, 2026
6120b9e
Squashed commit of the following:
edopao Jan 21, 2026
139389d
Set version file
edopao Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 7 additions & 5 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ exclude_lines =
if False:
if __name__ == .__main__.:
pass
if TYPE_CHECKING:
if typing.TYPE_CHECKING:

omit =
# Omit files that cannot be tested
dace/jupyter.py

# Omit deprecated files
dace/frontend/tensorflow/__init__.py
dace/frontend/tensorflow/tensorflow.py
dace/frontend/tensorflow/winograd.py
dace/frontend/tensorflow/transformations/__init__.py
dace/frontend/tensorflow/transformations/redundant_array.py
dace/frontend/ml/tensorflow/__init__.py
dace/frontend/ml/tensorflow/tensorflow.py
dace/frontend/ml/tensorflow/winograd.py
dace/frontend/ml/tensorflow/transformations/__init__.py
dace/frontend/ml/tensorflow/transformations/redundant_array.py
2 changes: 1 addition & 1 deletion .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ jobs:

- name: Install DaCe in development mode
run: |
python -m pip install --editable ".[testing,linting]"
python -m pip install --editable ".[testing,linting,ml]"
pre-commit install
pre-commit run
50 changes: 50 additions & 0 deletions .github/workflows/dace-updater.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Inform the Python package index about a new DaCe release.

on:
# Trigger for all pushes to tags matching this pattern
push:
tags:
- __gt4py-next-integration_*

# To "install" this workflow you must enable this trigger, such that the workflow runs at least one.
# You should also disable any processing such that no commit in the index repo is performed.
# See https://stackoverflow.com/a/71057825
#pull_request:

# Allows to trigger the update manually.
# NOTE: Is only possible if the workflow file is located on the default and the branch where it should run on.
workflow_dispatch:

jobs:
update-dace:
runs-on: ubuntu-latest
steps:
- name: Inform Index
shell: bash
run: |
INDEX_ORGANIZATION="gridtools"
INDEX_REPO="pypi"

# We are using `github.sha` here to be sure that we transmit an identifier to the index
# that can be checked out. Before we used `github.ref_name` but got strange results
# with it.
DEPENDENCY_REF="${{ github.sha }}"
SOURCE_REPO="dace"
SOURCE_OWNER="gridtools"

curl -L -v --fail-with-body \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.PKG_UPDATE_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/${INDEX_ORGANIZATION}/${INDEX_REPO}/dispatches" \
-d '{"event_type":"update_package_index","client_payload":{"source_repo":"'"${SOURCE_REPO}"'","source_org":"'"${SOURCE_OWNER}"'","dependency_ref":"'"${DEPENDENCY_REF}"'"}}'
CURL_RET=$?

if [ "${CURL_RET}" -ne 0 ]
then
echo "POST to '${INDEX_ORGANIZATION}:${INDEX_REPO}' failed with error code '${CURL_RET}'"
exit 1
fi

exit 0
75 changes: 0 additions & 75 deletions .github/workflows/fpga-ci.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/general-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
else
export DACE_optimizer_automatic_simplification=${{ matrix.simplify }}
fi
pytest -n auto --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "not gpu and not verilator and not tensorflow and not mkl and not sve and not papi and not mlir and not lapack and not fpga and not mpi and not rtl_hardware and not scalapack and not datainstrument and not long and not sequential"
pytest -n auto --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "not gpu and not autodiff and not torch and not onnx and not tensorflow and not mkl and not sve and not papi and not mlir and not lapack and not mpi and not scalapack and not datainstrument and not long and not sequential"
./codecov

- name: Test OpenBLAS LAPACK
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gpu-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
pip install mpi4py
pip install cupy
pip uninstall -y dace
pip install -e ".[testing]"
pip install -e ".[testing,ml]"
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov

Expand Down
25 changes: 0 additions & 25 deletions .github/workflows/hardware_test.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/heterogeneous-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
run: |
source ~/.venv/bin/activate # activate venv
export DACE_cache=unique
pytest --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "verilator or mkl or papi or datainstrument"
pytest --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "mkl or papi or datainstrument"
- name: Run MPI tests
run: |
Expand Down
62 changes: 62 additions & 0 deletions .github/workflows/ml-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Machine Learning and Autodiff Tests

on:
push:
branches: [ main, ci-fix ]
pull_request:
branches: [ main, ci-fix ]
merge_group:
branches: [ main, ci-fix ]

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

jobs:
test:
if: "!contains(github.event.pull_request.labels.*.name, 'no-ci')"
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.13']
simplify: [0,1,autoopt]

steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libyaml-dev cmake
sudo apt-get install -y libblas-dev libopenblas-dev liblapacke-dev
python -m pip install --upgrade pip
pip install flake8 pytest-xdist coverage
pip install -e ".[ml-testing,ml]"
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov

- name: Test with pytest
run: |
export NOSTATUSBAR=1
export DACE_testing_serialization=1
export DACE_testing_deserialize_exception=1
export DACE_cache=unique
if [ "${{ matrix.simplify }}" = "autoopt" ]; then
export DACE_optimizer_automatic_simplification=1
export DACE_optimizer_autooptimize=1
echo "Auto-optimization heuristics"
else
export DACE_optimizer_automatic_simplification=${{ matrix.simplify }}
fi
pytest --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=600 -v -m "(torch or onnx or autodiff) and not gpu"
./codecov

- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
37 changes: 0 additions & 37 deletions .github/workflows/verilator_compatibility.yml

This file was deleted.

11 changes: 5 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,6 @@ perf.json
perf*.csv
/dace/frontend/octave/parsetab.py

# Xilinx
xilinx_vcu1525_*
sdaccel_profile_*
sdaccel_timeline_*
.run/

# NVIDIA
*.nvprof
out.sdfg
Expand Down Expand Up @@ -195,3 +189,8 @@ _build/

# Ignoring the test junk
_all_tests/


# Ignore downloaded ONNX models
/*.onnx
/*.bin
6 changes: 0 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@
[submodule "dace/external/moodycamel"]
path = dace/external/moodycamel
url = https://github.com/cameron314/concurrentqueue.git
[submodule "dace/external/hlslib"]
path = dace/external/hlslib
url = https://github.com/definelicht/hlslib.git
[submodule "dace/viewer/webclient"]
path = dace/viewer/webclient
url = https://github.com/spcl/dace-webclient.git
[submodule "dace/external/rtllib"]
path = dace/external/rtllib
url = https://github.com/carljohnsen/rtllib.git
6 changes: 1 addition & 5 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
global-include LICENSE LICENSE.*
include dace/*.yml dace/codegen/CMakeLists.txt dace/codegen/tools/*.cpp dace/external/moodycamel/*.h dace/codegen/Xilinx_HLS.tcl.in dace/viewer/webclient/*.css dace/viewer/webclient/*.html dace/viewer/webclient/dist/*.js
include dace/*.yml dace/codegen/CMakeLists.txt dace/codegen/tools/*.cpp dace/external/moodycamel/*.h dace/viewer/webclient/*.css dace/viewer/webclient/*.html dace/viewer/webclient/dist/*.js
recursive-include dace/codegen *.cmake
graft dace/runtime/include
graft dace/libraries
graft dace/viewer/webclient/external_lib
graft dace/viewer/templates
graft dace/external/cub/cub
graft dace/external/hlslib/cmake
graft dace/external/hlslib/include
graft dace/external/rtllib/cmake
graft dace/external/rtllib/templates
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[![General Tests](https://github.com/spcl/dace/actions/workflows/general-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/general-ci.yml)
[![GPU Tests](https://github.com/spcl/dace/actions/workflows/gpu-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/gpu-ci.yml)
[![FPGA Tests](https://github.com/spcl/dace/actions/workflows/fpga-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/fpga-ci.yml)
[![Documentation Status](https://readthedocs.org/projects/spcldace/badge/?version=latest)](https://spcldace.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/dace.svg)](https://badge.fury.io/py/dace)
[![codecov](https://codecov.io/gh/spcl/dace/branch/main/graph/badge.svg)](https://codecov.io/gh/spcl/dace)
Expand All @@ -13,7 +12,7 @@ _Decoupling domain science from performance optimization._

DaCe is a [fast](https://nbviewer.org/github/spcl/dace/blob/main/tutorials/benchmarking.ipynb) parallel programming
framework that takes code in Python/NumPy and other programming languages, and maps it to high-performance
**CPU, GPU, and FPGA** programs, which can be optimized to achieve state-of-the-art. Internally, DaCe
**CPU, GPU, and [FPGA](https://github.com/spcl/dace-fpga)** programs, which can be optimized to achieve state-of-the-art. Internally, DaCe
uses the Stateful DataFlow multiGraph (SDFG) *data-centric intermediate
representation*: A transformable, interactive representation of code based on
data movement.
Expand All @@ -27,7 +26,7 @@ of performance optimization, regardless of the application or the target process
DaCe generates high-performance programs for:
* Multi-core CPUs (tested on Intel, IBM POWER9, and ARM with SVE)
* NVIDIA GPUs and AMD GPUs (with HIP)
* Xilinx and Intel FPGAs
* [Xilinx and Intel FPGAs](https://github.com/spcl/dace-fpga)

DaCe can be written inline in Python and transformed in the command-line/Jupyter
Notebooks or SDFGs can be interactively modified using our [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=phschaad.sdfv).
Expand Down
Loading