SciML / DiffEqGPU.jl

GPU-acceleration routines for DifferentialEquations.jl and the broader SciML scientific machine learning ecosystem
https://docs.sciml.ai/DiffEqGPU/stable/
MIT License
272 stars 27 forks source link

Add stepping to GPU integrators #325

Open ggkountouras opened 4 months ago

ggkountouras commented 4 months ago

Is your feature request related to a problem? Please describe.

step!(integ, dt, true) fails on GPURosenbrock23() with add_tstop!: method has not been implemented for the integrator

Describe the solution you’d like

Stepping should be added to GPU integrators (as is the case for CPU integrators).

Additional context

Stepping might also affect ensembles.

ChrisRackauckas commented 3 months ago

I'm not sure this can be done on t he GPU. You want to make there be a single kernel call, and a stepping interface makes there be more intermediate state memory that needs to be stored.

ggkountouras commented 3 months ago

You only need one kernel. Start it on DiffEqGPU.init(), after that every step!() is CPU-GPU communication.