Across the world, there are an increasing number of centers with diverse hardware, including GPUs from vendors like AMD, Nvidia, and Intel. Many developers are sharing code across institutions and need software that runs on diverse architectures. The good news is that you can write code using a single programming model and language and deploy it across AMD, Intel, and Nvidia GPUs, as well as AMD, Arm, and Intel CPUs.
This session demonstrates how to achieve portable code using the oneMKL library, based on the oneAPI specification, targeting multi-vendor, multi-architecture accelerators from a single code base. It is governed by the Unified Acceleration Foundation (UXL), an open governance body that’s part of the Linux Foundation. We will discuss the GROMACS and NWChem projects, which benefit from using the oneMKL library to target Intel, Nvidia, and AMD GPUs. The oneMKL interface library makes this possible with minimal overhead using SYCL backend interoperability.