Our Open Source SYCL Projects for BLAS and DNN are Changing

07 December 2023

In a technology landscape that evolves quickly, developers consistently require better and more efficient application performance. Being locked to one hardware manufacturer by proprietary code limits choice, and leaves developers and organisations unable to leverage the latest advancements in a diverse field of hardware. At Codeplay, we are committed to expanding the open ecosystems for accelerated computing, with the SYCL open standard and oneAPI programming model simplifying the process of targeting multiple hardware architectures and bringing us closer to true code portability. As part of our ongoing commitment to this vision, we are renaming several libraries.

SYCL-BLAS, an ongoing research collaboration with the High-Performance Computing & Architectures (HPCA) group, will become portBLAS. This project will continue to implement Basic Linear Algebra Subroutines using SYCL. Using C++ meta programming, portBLAS is able to provide a decent generalized routine implementation for the linear algebra operations that can be tailored to various devices without modifying the actual routine implementation. It will continue its efforts to improve performance portability for these dense BLAS routine implementations targeting major vendor platforms including, but not limited to, NVIDIA, AMD and Intel GPUs. portBLAS currently provides support for accessing Tensor Cores on the latest NVIDIA GPUs for performing GEMM operation using DPC++ joint_matrix api as well, and it would strive to extend this support over to similar hardware units from Intel and AMD alike in future.

SYCL-DNN, a library for implementing neural network algorithms with SYCL, will become portDNN. The project is an open-source single-source C++ library that supports numerous Deep Learning primitives such as Convolution, Pooling and BatchNorm. PortDNN is written using the heterogenous programming model SYCL which enables its algorithms to be portable across different devices and architectures. Additionally, using C++ meta-programming portDNN is able to tailor its primitives to various target devices in order to get comparable performance against native Deep Learning Libraries.

This library renaming emphasises our commitment to code portability, and to expanding open ecosystems - while also now matching the oneAPI backend naming standard. Codeplay will continue to maintain and develop each of these projects, and we encourage you to get involved by engaging with the repos and giving your own feedback.

You can find these libraries at,

portBLAS

portDNN

Codeplay Software Ltd has published this article only as an opinion piece. Although every effort has been made to ensure the information contained in this post is accurate and reliable, Codeplay cannot and does not guarantee the accuracy, validity or completeness of this information. The information contained within this blog is provided "as is" without any representations or warranties, expressed or implied. Codeplay Sofware Ltd makes no representations or warranties in relation to the information in this post.
Codeplay Team's Avatar

Codeplay Team

Community Member