[RFC] An libomptarget plugin for NEC's SX-Aurora VE architecture

Hello Everyone,

Recently, support for NEC's SX-Aurora VE architecture has began to land in LLVM and Clang [1].
This backend will also support OpenMP offloading to VE devices in the future.

At the HPC group at RWTH Aachen, we have, together with NEC, worked on implementing a different approach to OpenMP offloading, using source transformation and NEC's NCC compiler to compile code for the VE architecture. You can find our project here [2] which was published as paper here [3].

During this work, we developed a libomptarget plugin for the VE architecture [4].
The plugin uses NEC's VEO api to load and run target device binaries on VE devices and should be usable with offloading OpenMP programs generated by Clang, once offloading support to VE lands.
In preparation of OpenMP offloading support for the VE architecture in Clang, we would like to submit this plugin to LLVM.

We have uploaded the patch to Phabricator at https://reviews.llvm.org/D76843 and are looking for feedback.

Best Regards

Tim Cramer, Manoel Römmer, Boris Kosmynin

[1]: https://lists.llvm.org/pipermail/llvm-dev/2019-April/131580.html

[2]: https://github.com/RWTH-HPC/llvm-project/tree/aurora-offloading-prototype

[3]: https://link.springer.com/chapter/10.1007/978-3-030-43229-4_21

[4]: https://github.com/RWTH-HPC/llvm-project/tree/aurora-offloading-prototype/openmp/libomptarget/plugins/ve