# Master Branch Integration of DaceProgram Utilities for fv3core ###### tags: `cycle 5` `dace` In past cycles we have demonstrated the viability of integrating GT4Py Stencils in `DaceProgram`s by applying the approach to the acoustic substep of fv3core. This work has been carried out on separate feature branches of all 3 repositories (fv3core, dace, gt4py). In this project, we will bring these branches to a shape that can be merged into the main branches of the respective repositories. This will prevent divergence of developments in all the repositories. In particular, for * **gt4py** - The new GPU expansion for the dace backend - Adding the `SDFGConvertible` functionality to stencil objects with appropriate caching - moving computepath decorators and config functionality to gt4py * **fv3core** - Carry over new dace decorators to the master branch and apply them to the halo-exchange free codes - Extension as time permits: Integrate the work done on halo exchanges in the previous cycle * **dace** bring existing `linus-fixes-11` branch to maturity We explicitly make short parsing and code generation times and user experience a quality aspect that is to be considered while preparing those PR's, meaning that apropriate caching and utilities to load externally transformed graphs shall be provided. ## Goals * Solid merge candidates in fv3core, gt4py or dace repositories that, when merged, would allow - parsing all modules of the acoustic substeps except the root DynCore object into SDFGs. NB 1: DynCore requires halo exchanges and is optional. The mode without halo exchanges does not exist in fv3core master and can't be added here. NB 2: This is already supported in feature branches. - adding functionality to stencil object s.t. they can be integrated directly in dace programs. In this way more applications than fv3core can start experimenting with this approach on gt4py master. * Integration of halo exchanges in the context of the acoustics substep is optional ### No-Goals * Still, only the acoustic substep will be supported in fv3core. ## Appetite * 3 weeks