OpenMP Target Device Offloading for the SX-Aurora TSUBASA Vector Engine

Driven by the heterogeneity trend in modern supercomputers, OpenMP provides support for heterogeneous systems since 2013. Having a single programming model for all kinds of accelerator-based systems decreases the burden of code porting to different device types. The acceptance of this heterogeneous paradigm requires the availability of corresponding OpenMP compiler and runtime environments supporting different target device architectures. The LLVM/Clang infrastructure is designated to extend the offloading features for any new target platform. However, this supposes a compatible compiler backend for the target architecture. In order to overcome this limitation we present a source-to-source code transformation technique which outlines the OpenMP code regions for the target device. By combining this technique with a corresponding communication layer, we enable OpenMP target offloading to the NEC SX-Aurora TSUBASA vector engine, which represents the new generation of vector computing.

[1]  Alistair P. Rendell,et al.  Implementation and Optimization of the OpenMP Accelerator Model for the TI Keystone II Architecture , 2014, IWOMP.

[2]  Ravi Narayanaswamy,et al.  Offload Compiler Runtime for the Intel® Xeon Phi Coprocessor , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[3]  David E. Bernholdt,et al.  OpenMP 4.5 Validation and Verification Suite for Device Offload , 2018, IWOMP.

[4]  Andreas Koch,et al.  OpenMP device offloading to FPGA accelerators , 2017, 2017 IEEE 28th International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[5]  Ángel Álvarez,et al.  OpenMP Dynamic Device Offloading in Heterogeneous Platforms , 2019, IWOMP.

[6]  Alistair Hart First Experiences Porting a Parallel Application to a Hybrid Supercomputer with OpenMP4.0 Device Constructs , 2015, IWOMP.

[7]  Tian Jin,et al.  Offloading Support for OpenMP in Clang and LLVM , 2016, 2016 Third Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC).

[8]  David E. Bernholdt,et al.  Evaluating Support for OpenMP Offload Features , 2018, ICPP Workshops.

[9]  Kevin O'Brien,et al.  Integrating GPU support for OpenMP offloading directives into Clang , 2015, LLVM '15.