Releases: spcl/dace
Releases · spcl/dace
DaCe 0.10.8
What's New?
- Various bug fixes and more stable Python/NumPy frontend
- Support for running DaCe programs within the Python interpreter
- (experimental) Support for automatic optimization passes (more coming soon!)
DaCe 0.10
What's New?
- Python frontend improvements: More Python features are supported, such as return values, tuples, and numpy broadcasting.
@dace.program
s can now call other programs or SDFGs. - AMD GPU (HIP) Support: AMD GPUs are now fully supported with HIP code generation.
- Easy-to-use transformation APIs: Apply transformation compositions with one call, enumerate subgraph matches manually, and many more functions now available as part of the dace API. See the new tutorial for examples.
- Faster code generation: Backends now generate lower-level code that is more compiler-friendly.
- Instrumentation interface: Setting the
instrument
property for SDFG nodes and states enables easy-to-use, localized performance reporting with timers, GPU events, and PAPI performance counters. - DaCe VSCode plugin: Interactive SDFG viewer and optimizer as part of Visual Studio Code. Download the plugin here.
- Type inference and connector types: In addition to automatic type inference, connectors on nodes can now be defined with explicit types, giving more fine-grained control over type reinterpreting and vector types.
- Subgraph transformations: New transformation type that can work on arbitrary subgraphs. For example, fuse any computation within a state with
SubgraphFusion
. - Persistent GPU kernel schedule: Launch persistent kernels with a change of a property! Proportion used of GPU multiprocessors is configurable.
- More transformations: Loop manipulation and other new transformations now available with DaCe. Some transformations (such as
Vectorization
) made more robust to corner cases. - More tools: Use
sdfgcc
to quickly compile and optimize.sdfg
files from the command line, generating header and library files. Great for interoperability and Makefiles. - Short DaCe annotation: Data-centric functions can now be annotated with
@dace
. - Many minor fixes and additions: More library nodes (such as
einsum
) and new properties added, enabling faster performance and more productive high-performance coding than ever.
DaCe 0.9.5
What's New?
- Intel FPGA backend: Generates and compiles Intel FPGA OpenCL code from SDFGs.
- Renderer: Many improvements to the scalability of drawing large SDFGs, touch/mobile support, and code view upon zooming into Tasklets.
- SDFV: Now includes a sidebar with information about clicked nodes/edges/states.
- GPU reduction: Now supports Reduce nodes where output array contains multiple dimensions (if contiguous). On other cases, use the
ReduceExpansion
transformation. - Faster compilation: Improved CMake usage to speed up compilation time if files were not changed.
- Stability: Various fixes to the Python frontend, transformations, code generation, and DIODE (on Linux and Windows).
- Generated programs now include header (.h) file and an example C program that invokes the compiled SDFG.
DaCe 0.9
What's New
- NumPy syntax for Python: Wrap Python functions that work on numpy arrays with
@dace.program
and create SDFGs from implicit dataflow. - DIODE 2.0: DIODE has been reworked to operate in the browser, and works natively on Windows. Note that it is currently experimental, and some features may cause errors. We are happy to fix bugs if you find and report issues!
- Standalone SDFG renderer (SDFV) and improved Jupyter support: Contextual, optimized SDFG drawing with collapsible scopes (double-click a map, a state, or a nested SDFG). Fully integrated into Jupyter notebooks.
- Transformations: Improvements to scalability of subgraph pattern matching and memlet propagation.
- Improvements to the TensorFlow frontend.
- Many minor bug fixes and several API improvements.
DaCe 0.8.1
Initial release of DaCe.