Replies: 3 comments 1 reply
-
|
Im not sure OCCA itself requires OpenCL v2.0. I know libParanumal enforces that here: https://github.com/paranumal/libparanumal/blob/main/libs/core/platformProperties.cpp#L96 but not sure thats a strict requirement for OCCA. Might be worth trying a simple test program |
Beta Was this translation helpful? Give feedback.
-
|
IIRC there are some OpenCL features OCCA uses that are in the OpenCL 2.0 spec, but not previous specs, and became optional or changed somewhat in OpenCL 3.0. The OpenCL backend hasn't received much love in a while. We should likely revisit this and add some runtime logic or preprocessor guards to handle the differences between specs. |
Beta Was this translation helpful? Give feedback.
-
|
Ah I think I remember. I think it has to do with passing pointers to device functions. OpenCL requires that the arguments to those functions have their address space declared, which OCCA does not determine and insert for you today. You need the Generic Address Space feature from OpenCL 2.0 for that. If you avoid device functions, then I think you're good |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
In a similar setting to #787, but with the
OpenCLthread model, I see a messageIs there a specific reason why OpenCL C 2.0 is required? It does not seem widely implemented, and this rules out, for example, execution on https://github.com/pocl/pocl.
Beta Was this translation helpful? Give feedback.
All reactions