SciML/DiffEqGPU.jl

GPU-acceleration routines for DifferentialEquations.jl and the broader SciML scientific machine learning ecosystem

What it solves

DiffEqGPU.jl provides the infrastructure to accelerate the solving of differential equations on GPUs. It addresses the problem of computationally expensive ODE solvers, specifically when dealing with either very large systems of equations or when needing to solve the same equation across thousands of different initial conditions or parameters (ensemble simulations).

How it works

The library implements two distinct acceleration paths:

  1. Within-Method Parallelism: For large ODEs where the state vector u is massive, the library leverages GPU arrays (like CuArray) to accelerate the computation of the system function f.
  2. Parameter-Parallelism: For smaller ODEs that need to be solved for many different starting points or parameters, it uses EnsembleGPUArray and EnsembleGPUKernel to parallelize the solving process across the GPU's many cores.

It supports a wide range of hardware backends, including NVIDIA (CUDA), AMD (ROCm), Intel (OneAPI), Apple M-Series (Metal), and OpenCL.

Who it’s for

Researchers and engineers working with scientific machine learning (SciML) and differential equations who need high-performance computing on GPU hardware across different vendors.

Highlights

  • Multi-GPU Vendor Support: Works across NVIDIA, AMD, Intel, and Apple Silicon.
  • Ensemble Solving: Specialized tools for solving thousands of ODE trajectories simultaneously.
  • Integration: Part of the larger DifferentialEquations.jl ecosystem.
  • Cross-Platform: Supports multiple kernel languages and backends.

Related

  • Project
  • Project
  • Project
  • Project
  • Project