What's New?
* **Python frontend improvements**: More Python features are supported, such as return values, tuples, and [numpy broadcasting](https://numpy.org/devdocs/user/theory.broadcasting.html). `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](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/transformations.ipynb) 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](https://marketplace.visualstudio.com/items?itemName=phschaad.sdfv).
* **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.