Depending on the outcomes of #12, we may be able to target a much higher level implementation of the GPU port that allows the usage of advanced features in C++ like polymorphism and higher level features in OpenMP like custom mappers. These two changes alone would vastly reduce the complexity of the current GPU port.
In this task, we will either:
- merge the CPU branch and the updated higher-level GPU branch together
- or create a fresh high-level OpenMP target offloading implementation based off the current main CPU-only branch.
Given the significant advances in OpenMP compiler technology in the past several years, we expect that the latter option may actually be an easier route forward.
Depending on the outcomes of #12, we may be able to target a much higher level implementation of the GPU port that allows the usage of advanced features in C++ like polymorphism and higher level features in OpenMP like custom mappers. These two changes alone would vastly reduce the complexity of the current GPU port.
In this task, we will either:
Given the significant advances in OpenMP compiler technology in the past several years, we expect that the latter option may actually be an easier route forward.