Closed
Description
Currently, Clacc never automatically adds worker
or vector
clauses to OpenACC loop
constructs. This behavior conforms to the OpenACC specification but does not achieve desirable performance for some applications. (In contrast, Clacc does automatically add the gang
clause as required by OpenACC 3.1.)
Tasks:
- Investigate other OpenACC implementations (e.g., NVIDIA, GCC) to understand when their implementations automatically insert
worker
andvector
clauses. The main goal is to determine what Clacc's analyses require to be competitive. - Investigate OpenMP loop-related directives, especially the
loop
construct, for current or planned features that would support this capability, and identify anyone in the OpenMP community already pursuing them. - As needed based on those investigations, design and prototype OpenMP extensions for which the required analyses can be performed, potentially at the LLVM IR level.
- Implement translation to OpenMP from OpenACC
loop
constructs that do not have but can accept aworker
orvector
clause.