OP2 / PyOP2

Framework for performance-portable parallel computations on unstructured meshes
https://op2.github.io/PyOP2
Other
80 stars 35 forks source link

Inline loopy kernels. #598

Closed sv2518 closed 4 years ago

sv2518 commented 4 years ago

I am currently trying to fix the inlining of kernels, so that we can handle Slate kernels in PyOP2 as loopy rather than C kernels. I had an attempt at that here https://github.com/OP2/PyOP2/compare/inline-callables-from-loopy-programs, which needed some adjustments in loopy that I introduced here https://github.com/firedrakeproject/loopy/compare/allow-callablestables-gen-with-functionsnotinhistory.

I ran Firedrake test with this, and the ones that are failing are all related to extrusion see the Jenkins run here https://jenkins.ese.ic.ac.uk/blue/organizations/jenkins/firedrake/detail/test-inlining/5/pipeline. Does anyone have an idea what could cause the trouble there? One of the error messages is that the kernels passed into the kernel, don't match the ones the kernel wants.

sv2518 commented 4 years ago

Fixed on Firedrake side here https://github.com/firedrakeproject/firedrake/compare/change-slate-nlayer-arg-tobe-vectorvalued, the Firedrake tests are passing now see https://github.com/firedrakeproject/firedrake/compare/test-inlining.