Skip to Main Content
EventHero

Blog

Ginkgo and oneAPI accelerate numerical simulations on Intel GPUs

March 7, 2024

About Ginkgo

Ginkgo is a high-performance C++ framework for sparse linear algebra on manycore systems. It is implemented using modern C++ (The C/C++ Compiler used must be at least C++14-compliant), with GPU kernels implemented in CUDA*, HIP*, and oneAPI-compliant Data Parallel C++ with SYCL. Ginkgo was developed by the Karlsruhe Institute of Technology (KIT), the University of Tennessee, and Universitat Jaume I. It is an open-source and community-driven project under the modified BSD (Berkeley Software Distribution) license.

Figure 1: Architecture Optimized Kernels

Using a universal linear operator abstraction, Ginkgo provides basic building blocks like the sparse matrix-vector product for various matrix formats, iterative solvers, preconditioners, and batched routines. Ginkgo targets multi- and many-core systems and currently features back-ends for AMD GPUs, Intel GPUs, NVIDIA GPUs, and OpenMP*-supporting architectures. The core functionality is separated from hardware-specific kernels for easy extension to other architectures, with runtime polymorphism selecting the specific kernels. See the feature list graphic (Fig. 2) for details on what is available within the Ginkgo framework.

Scientists in many different research domains are eager to run their workloads on the new Intel architectures, particularly Intel® Iris® Xe Graphics and Intel® Data Center GPU Max Series. However, they lack the math libraries they can rely on to execute on these devices. Porting Ginkgo’s linear algebra functionality to the SYCL ecosystem allows them to rely on Ginkgo when running their scientific simulations on Intel Iris Xe Graphics devices.

In this article, we will detail:

  1. how we ported Ginkgo to the Intel and SYCL ecosystems and why it is important,
  2. how we bring the best performance possible to these scientific applications on Intel hardware.
  3. finally, how can we accelerate the OpenFOAM simulation framework by relying on Ginkgo as a linear solver?
Figure 2: Ginkgo Feature List

Porting Ginkgo to the oneAPI and SYCL Ecosystems

Ginkgo is the first platform-portable open-source math library supporting Intel GPUs via oneAPI’s open SYCL backend. Domain scientists from different areas rely on Ginkgo and its sparse linear algebra functionality, which forms the base building blocks for many scientific simulations. Existing implementations supported CUDA, HIP, and openMP. Extending Ginkgo Platform portability to Intel GPUs using oneAPI enables applications based on Ginkgo to be vendor-agnostic, demonstrating cross-platform performance on various hardware and programming models. Watch the video implementing a heat equation simulation in the Intel® DevCloud!

“Adding the Intel SYCL backend to the Ginkgo library gives domain scientists a high-performance math library for running workloads on the Intel GPUs”

– Hartwig Anzt, University of Tennessee