---
# System prepended metadata

title: GT4Py-pace-DaCe Developments for Cycle 6
tags: [cycle 6, pace, dace]

---

# GT4Py-pace-DaCe Developments for Cycle 6
###### tags: `cycle 6` `dace` `pace`

The AI2 team has picked up the DaCe orchestrated approach with a fairly large investment of work and is in the process of evaluating its feasiblity as a main backend to base their further development of pace (formerly fv3core) on.

There is a [table](https://docs.google.com/spreadsheets/d/1sUozKJBQDaaAJpPZxdyiKOO3IkJQaWUntuAq7YQCotQ/edit#gid=255120259) with milestones to track progress in this process.

We propose to continue supporting AI2 in this effort during the upcoming cycle together with the great support from SPCL's side. 

## Tasks

The main idea is to support AI2 as issues come up during this process. As such, it is possible that tasks that we define here may be deprioritized or abandoned in accordance with their own agenda.

At this time, there are 3 aspects that are being worked on, where performance focuses on CPUs, with Fortran performance as a rough goal.


* Fortran-like Performance (factor TBD?)
  
  Natural next steps (no particular order): 
    * Applying and possibly improving DaCe auto-optimize transformations
    * Improve stencil-scope stencil expansions
* Solidifying
    * Enabling vector halo exchanges in addition to the already implemented scalar exchanges.
    * Stability improvement , e.g. of "computepath" functionality.
    * Custom / future features in DaCe backends (regions, vertical offsets, ...)
* Validation
    * ?

## Possible specific CSCS contributions

Of those points, some are good fits to be tacklet by CSCS based on our expertise and interests:


* Look deeper into regions for dace backends
    (already in old pipeline, other GTC backends working)
* Look into stencil-scope CPU performance

## Apetite:

With the tasks not sharply defined, defining an appetite is not possible. 

Based on the next tasks, it is possible to efficiently start with 2 programmers, one focusing on GT4Py feature support in the dace backends, another on vector halo exchanges and possibly CPU performance. 