---
# System prepended metadata

title: '[DaCe] JaCe III'
tags: [shaping-archive]

---

# [DaCe] JaCe III


- Shaped by: Philip
- Appetite (FTEs, weeks):
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->

## Problem
In [cycle 22](https://hackmd.io/V1e3G8SHRtuZLPOYSdXc3w) we created the initial version of [JaCe](https://github.com/GridTools/jace).
For several reasons this initial PR was limited in scope and some parts remained inside the [development branch](https://github.com/GridTools/jace/tree/dev_branch) such as
- the integration of pytrees/containers,
- the handling of non C strides,
- general cleanups to the code,
- additional translators (not all from the prototype),
- more tests.

Furthermore, as we stated previously, we are interested in an initial benchmark.
Most likely using the [pyhpc test suite](https://github.com/dionhaefner/pyhpc-benchmarks) or Felix' fluid test.
However, for passing the pyhpc some additional translators are needed.


## Appetite
At least this cycle.


## Solution

#### Finishing the Design
In this cycle we try to address two things,
1) Merging the development branch into main
2) Starting to benchmark or allowing benchmark in the next cycle.

Merging the development branch into master will be done in tree steps.
- Merging everything except the translators and the tests.
- Merging the translators, without the related tests.
- Merging the tests.

This split is more or less arbitrary, but should lead to small pieces that can be reviewed efficiently.
If needed the last point, merging the tests, could also be split and integrated with the  previous steps, respectively.    
We expect that these PR will go faster than the initial one, which took roughly two cycles, as they are smaller and does not touch much of the core design.


#### Prepare to Benchmark
This step is conceptually simple but it will require some work.
First, we will have to implement all missing translators, including `scan` and `scatter`, which will be complicated.
Something that will also be challenging are some [issues](https://github.com/spcl/dace/issues/1595) in the optimization pipeline, after all we implemented the optimization ourselves in the prototype.



## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->


## No-gos
<!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the ## appetite or make the problem tractable -->


## Progress
<!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. -->

- [x] Task 1 ([PR#xxxx](https://github.com/GridTools/gt4py/pulls))
    - [x] Subtask A
    - [x] Subtask X
- [ ] Task 2
    - [x] Subtask H
    - [ ] Subtask J
- [ ] Discovered Task 3
    - [ ] Subtask L
    - [ ] Subtask S
- [ ] Task 4

