With supercomputers such as Aurora, Polaris, Perlmutter, and Frontier deployed across DOE national laboratories, there is now a range of GPU-based architectures for researchers to use from different vendors. The good news is that it is possible to write code using a single programming model and language deployable across all these supercomputers and more.
In this session, we will show you how to achieve portable code using the oneMKL library. oneMKL is based on the oneAPI specification and can be used to target multi-vendor and multi-architecture accelerators from a single code base. It is also now governed by the Unified Acceleration Foundation (UXL), an open governance body that is part of the Linux Foundation. We will also talk about the GROMACS and NWChem projects that are benefitting from using the oneMKL library to target Intel, Nvidia, and AMD GPUs, with discrete Fourier transforms as an example. The oneMKL interface library makes this possible with minimal overhead using SYCL backend interoperability.