February 3, 2021 – The National Energy Research Scientific Computing Center (NERSC) at Lawrence Berkeley National Laboratory (Berkeley Lab), in collaboration with the Argonne Leadership Computing Facility (ALCF) at Argonne National Laboratory, has signed a contract with Codeplay Software to enhance the LLVM SYCL™ GPU compiler capabilities for NVIDIA® A100 GPUs.
This collaboration will help NERSC and ALCF users, along with the high-performance computing community in general, produce high-performance applications that are portable across compute architectures from multiple vendors.
Codeplay is a software company based in the U.K. that has a long history of developing compilers and tools for different hardware architectures. The company has been the lead implementor of SYCL compilers and a main contributor to the existing open source support for NVIDIA V100 GPUs through the DPC++ project. NVIDIA A100 GPUs are available in the ThetaGPU extension of ALCF’s Theta and will power NERSC’s next-generation supercomputer, Perlmutter.
NERSC supercomputers are used for scientific research by researchers working in diverse areas such as alternative energy, environment, high-energy and nuclear physics, advanced computing, materials science, and chemistry. Over the past year, 20 research teams have been involved in COVID-19 simulations for analysis and developing solutions.
ALCF supercomputers enable scientific research and engineering by offering supercomputing resources and hands-on expertise to the research community. These systems have helped advance science computing in an array of areas through convergence of simulation, data science, and machine learning methods. Over the past year, ALCF supercomputers have accelerated the development of treatments and strategies to combat the COVID-19 pandemic.
SYCL (pronounced “sickle”) is an open standard that is maintained under The Khronos® Group. Initially released in 2014, it is a royalty-free, cross-platform abstraction layer that enables code for heterogeneous processors to be written using standard ISO C++ with the host and kernel code for an application contained in the same source file. SYCL has been closely aligned to OpenCL™, but over time has evolved into its own completely distinct programming model. Under the new contract, Berkeley Lab and Argonne researchers will work with Codeplay engineers to enhance the LLVM-based DPC++ open source compiler, based on the SYCL 2020 standard, to support NVIDIA A100 GPUs.
Today the SYCL programming model supports a variety of accelerators through multiple implementations. SYCL will be supported on the forthcoming Department of Energy Aurora exascale supercomputer and, with this work, can be used with Perlmutter.
“With thousands of users and a wide range of applications using NERSC’s resources, we must support a wide range of programming models. In addition to directive-based approaches, we see modern C++ language-based approaches to accelerator programming, such as SYCL, as an important component of our programming environment offering for users of Perlmutter,” said Brandon Cook, application performance specialist at NERSC. “Further, this work supports the productivity of scientific application developers and users through performance portability of applications between Aurora and Perlmutter.”
“The ALCF is excited to see that Perlmutter will be supporting the SYCL programming model via DPC++,” said Kalyan Kumaran, director of technology at the ALCF. “As a key programming model for Argonne’s upcoming exascale system, SYCL and DPC++ will benefit the broader DOE community by providing portability of accelerator programming models across DOE computing facilities.”
“We are delighted to see the SYCL programming standard being embraced by the U.S. national labs and providing scientists developing accelerated C++ with a standardized software platform,” said Andrew Richards, founder and CEO of Codeplay Software. “Codeplay is a big believer in open standards and has worked extensively within Khronos to define and release SYCL 2020, which includes many new features such as memory handling for higher overall system performance.”