oneAPI and DPC++ for Nvidia GPUs

Rod Burns

Rod Burns

Unknown

Codeplay is working in partnership with Lawrence Berkeley National Laboratory to develop support for Nvidia devices in the oneAPI DPC++ project. This enables developers to write SYCL code and target Nvidia GPUs simplifying the migration process from CUDA to SYCL. ...learn more

Project status: Published/In Market

oneAPI, HPC

Intel Technologies
DPC++, oneAPI

Links [1]

Overview / Usage

Codeplay is actively contributing support for CUDA devices to the oneAPI project, enabling developers to use oneAPI to target Intel and Nvidia processors using a single unified, production ready toolchain.

At the core of Codeplay's contribution is DPC for CUDA delivering support for Nvidia GPUs to the DPC open source compiler project. DPC++ is part of the oneAPI toolkit and consists of an open source compiler that implements the SYCL open standard from the Khronos Group.

Codeplay's contributions enable developers to compile the same SYCL code for both Intel and Nvidia processors using the DPC++ compiler. Codeplay continues to develop and maintain this work through a partnership with Lawrence Berkeley National Lab (LBNL) and Argonne National Laboratory (ANL).

* Nvidia and CUDA are registered trademarks of Nvidia Corporation

Methodology / Approach

Codeplay has added support for Nvidia platforms to the DPC compiler and this is based directly on Nvidia's CUDA, rather than OpenCL. DPC uses a Plugin Interface (PI) to target different backends. Intel provides an OpenCL 2.2 plugin that enables DPC to run on OpenCL platforms, and Codeplay has implemented a plugin that can be selected at runtime. By using native CUDA, DPC does not need to rely on the OpenCL support from Nvidia, enabling more features and with better overall performance.

Furthermore Codeplay has implemented several changes to the libclc library to add support for PTX builtins created from SPIR-V and this enables usage of SYCL builtins on Nvidia GPUs.

* Nvidia and CUDA are registered trademarks of Nvidia Corporation

Technologies Used

SYCL, C, oneAPI, DPC++

Collaborators

2 Results

2 Results

Comments (0)