# 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.