A JIT compiler for Numpy-based Python programs and bindings for stateful dataflow multigraphs (SDFG).
Project description
docc-compiler
A JIT compiler for Numpy-based Python programs targeting various hardware backends.
Installation
pip install docc-compiler
Features
- JIT Compilation: Automatically compile Python/NumPy code to optimized native code
- Multiple Backends: Support for CPU (OpenMP, SIMD), CUDA, and other accelerators
- Stateful Dataflow Graphs (SDFGs): Based on a powerful intermediate representation for optimization
- Performance Portability: Write once, run optimized on different hardware
Quick Start
import numpy as np
import docc
@docc.program
def matrix_multiply(A, B):
return A @ B
# Automatically compiled and optimized
A = np.random.rand(1000, 1000)
B = np.random.rand(1000, 1000)
C = matrix_multiply(A, B)
Requirements
- Python >= 3.11
- NumPy >= 1.19.0
Attribution
The Python module is implemented based on the DaCe reference implementation. The license of the reference implementation is included in the licenses/ folder.
If you use the Python bindings and frontend, please cite:
@inproceedings{dace,
author = {Ben-Nun, Tal and de~Fine~Licht, Johannes and Ziogas, Alexandros Nikolaos and Schneider, Timo and Hoefler, Torsten},
title = {Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures},
year = {2019},
booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
series = {SC '19}
}
License
BSD-3 Clause
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docc_compiler-0.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 33.2 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61789f26b940ef12acc9f29aacc6b35d406b5897eb4a89cda84e7b80a02edf6d
|
|
| MD5 |
84d0efeea8b58b2e30444740ea711dcf
|
|
| BLAKE2b-256 |
3f51326de6bc50361257e62eb961004fe7834c322d494b85788872bd790f08ab
|
File details
Details for the file docc_compiler-0.0.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 32.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32b401c98f05d92ab514b3ab482a98b3a0bb2e706ee46fdce7605aecd873689f
|
|
| MD5 |
0cf23fa0244628f563e4429efc05a5ff
|
|
| BLAKE2b-256 |
35245a46d8dddd293e3ccb516049db7b9534dee307fbe7fd3384400ff681669c
|
File details
Details for the file docc_compiler-0.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 33.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fba949dadae098150b98e0ba89bcc4979cf10de64db99cffbc1ddd309cd4433
|
|
| MD5 |
a56d692e7b617e44256087e5d3414379
|
|
| BLAKE2b-256 |
3236550ea3441a2533124859616f4652dd07413eb450950bfc618cd85e75d34d
|
File details
Details for the file docc_compiler-0.0.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 32.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
689bb46d9b7ff5132e4070aef4701955aded0bdd8be5eabe079cf2c135ba1de6
|
|
| MD5 |
b6b108b377a3d7290f84bd0e9d30017d
|
|
| BLAKE2b-256 |
c93bcabe709b5496e5ced55a8760656e6896c848b4e212737fe440335ef67fa0
|
File details
Details for the file docc_compiler-0.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 33.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a7a778ab881f118f7fc76103f90260832f0f37bd085fca6e3d6fcecf291a378
|
|
| MD5 |
1cb21d1702e2f52dabaeb15b8f528334
|
|
| BLAKE2b-256 |
f2f1444ffc019451d37b592dcc654385b6ceaad6487e8fa2d19abc9e79e958e2
|
File details
Details for the file docc_compiler-0.0.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 32.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89fb8449bb370256e9c2bf54e2bfe287de5c0cbd7c9ca0e0bd37be1eed3b51ef
|
|
| MD5 |
cab935cba680e981dc72d49b93703191
|
|
| BLAKE2b-256 |
26f2f05c94def48009ba8ce2dbe23041070fd81f4ddae6608b989aa8faa7ce12
|
File details
Details for the file docc_compiler-0.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 33.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96bfa2286931eec3cf204d774f4a8d028a564caffb21aaf4826674c8f662596e
|
|
| MD5 |
827e55164556776a5260d7beaf88bbc8
|
|
| BLAKE2b-256 |
e625aaea6bc6861facb519506b6e2f651d1c142b88d0dbe20913d54aabbbc700
|
File details
Details for the file docc_compiler-0.0.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: docc_compiler-0.0.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 32.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7178e4dfaf5be23e63edb7141f6aaa04890e1bed4cbb623974f757f9b7c84b5a
|
|
| MD5 |
1ba228cf44716c1f18d81dd78b356fde
|
|
| BLAKE2b-256 |
0fce8bfe3c65d62b65c832d95a713b5f499dcdc24899d6a655cfaab8442564c6
|