Skip to content

PyOP2 kernels are not portable #308

Description

@kynan

One of the claims of PyOP2 is portability of kernel source, however that's not currently true: When providing a kernel as a C string one needs to special case for host and device backends at the moment: host backends pull the iteration space inside the kernel, device backends don't.

This would be fixable if the kernel signature was generated by PyOP2 based on the arguments. I can see two potential ways of getting there:

  1. Make the argument list (and the access descriptors) part of the kernel object. This would also allow cross-checking with the par_loop arguments when entering a par_loop.
  2. Lazily generate the kernel signature when entering a par_loop based on its arguments.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions