torchode: A Parallel ODE Solver for PyTorch
This provides a faster and more robust ODE solver for researchers and practitioners in machine learning and scientific computing using PyTorch, though it is incremental as it builds on existing ODE solving methods.
The paper tackles the problem of solving multiple ordinary differential equations (ODEs) in parallel within the PyTorch ecosystem, resulting in performance gains of up to 4.3 times faster per step and robustness that reduces step counts by up to 4 times compared to other solvers.
We introduce an ODE solver for the PyTorch ecosystem that can solve multiple ODEs in parallel independently from each other while achieving significant performance gains. Our implementation tracks each ODE's progress separately and is carefully optimized for GPUs and compatibility with PyTorch's JIT compiler. Its design lets researchers easily augment any aspect of the solver and collect and analyze internal solver statistics. In our experiments, our implementation is up to 4.3 times faster per step than other ODE solvers and it is robust against within-batch interactions that lead other solvers to take up to 4 times as many steps. Code available at https://github.com/martenlienen/torchode