DaCe 0.11.1
What's Changed
- More flexible Python frontend: you can now call functions and object methods, use fields and globals in
@dace
programs! Some examples:- There is no need to annotate called functions
@dataclass
and general object field support- Loop unrolling: implicit and explicit (with the
dace.unroll
generator) - Constant folding and explicit constant arguments (with
dace.constant
as a type hint) - Debuggability: all functions (e.g.
dace.map
,dace.tasklet
) work in pure Python as well - and many more features
- NumPy semantics are followed more closely, e.g., subscripts create array views
- Direct CuPy and
torch.tensor
integration in@dace
program arguments - Auto-optimization (preview): use
@dace.program(auto_optimize=True, device=dace.DeviceType.CPU)
to automatically run some transformations, such as turning loops into parallel maps. - ARM SVE code generation support by @sscholbe (#705)
- Support for MLIR tasklets by @Berke-Ates in (#747)
- Source Mapping by @benibenj in #756
- Support for HBM on Xilinx FPGAs by @jnice-81 (#762)
Miscellaneous:
- Various performance optimizations to calling
@dace
programs - Various bug fixes to transformations, code generator, and frontends
Full Changelog: v0.10.8...v0.11.1