# GridTools C++ Functional GPU Backend
###### tags: `functional cycle 7`
shaped by: Felix
appetite: full cycle for Felix, supported through code reviews and knowledge transfer by Anton
## Motivation
For the in-development declarative GT4Py frontend, we require a lightweight GridTools C++ backend which servers as an API between the Python and C++ worlds. A CPU-only proof of concept has been implemented by Anton. The goal of this project is to have fully working CPU and GPU implementions with a slimmer interface and only the functionality required for the declarative GT4Py project. In contrast to the current proof of concept, no AST transformations and lifting will be supported on the C++ side. All AST optimizations and required normalizations should be implemented in Python.
## Steps
Work on this project has already started and the targeted API design is more or less clear. Thus, the main work is implementation and testing.
## Non-Goal
The initial plan does not include structured-grid-specific optimizations like per-block temporaries with redundant computations in halo regions, ij-caches etc. (k-caches will be supported by design of the semantical model). The focus lies on unstructured computations for now.