Codeplay has made significant contributions to enabling an open standard, cross-architecture interface for developers as part of the oneAPI industry initiative. This contribution brings further support for NVIDIA processors to developers using DPC++ that adopts the SYCL open standard. Earlier this year the initial implementation of a CUDA back-end for DPC++ was integrated into the open source project.
The latest contribution, outlined in this blog post, harnesses the cuBLAS library for NVIDIA GPUs and the open standard SYCL and DPC++ implementation as well as including performance improvements. This implementation uses oneAPI Math Kernel Library (oneMKL) APIs along with the cuBLAS library, which is optimized to bring native performance to developers using NVIDIA GPUs.
Developers need a standard math framework that can be used to target multiple architectures, and existing libraries have only been developed by and for individual manufacturers of processors. This is the first oneMKL math library implementation to offer support for NVIDIA GPUs alongside the other supported processors. It can be used in combination with the DPC++ open source compiler, which can target a range of processor architectures from multiple vendors. This interface will mean that developers can avoid modifying their code for each manufacturer's processors saving significant development effort.
Codeplay invites the community to collaborate on this project, to improve and extend the libraries for math-intensive applications using SYCL and DPC++.
Andrew Richards, Codeplay CEO, said "We have been helping to grow the SYCL community for the past four years with a goal of liberating developers from having to write different code for each vendor's processor. This is a huge contribution towards allowing developers using SYCL to target a range of processors from multiple vendors, without sacrificing performance."