PSyclone
PSyclone copied to clipboard
OpenACC Loop parallelism with managed memory
I tried using the NEMO OpenMP offloading script to insert OpenACC directive instead of OpenMP. It worked after fixing 2 issues:
-
The ACCLoopDirective does not have a collapse attribute setter. It has all the infrastructure but currently it can only be set with the constructor parameter, but in NEMO the directive is first created and then the collpase number computed. We need a setter for this attribute.
-
The ACCParallelDirective currently checks that any enter-data directive comes before this directive in the global constraints. @arporter I assume this is a constraint from a particular implementation of OpenACC we did in the pass but there is no reason to prevent the Parallel directive to be used with managed memory?
I assume this is a constraint from a particular implementation of OpenACC we did in the pass but there is no reason to prevent the Parallel directive to be used with managed memory?
Yes, that's correct. It's a constraint that can be removed now.