Automatically Batching Control-Intensive Programs for Modern Accelerators
Not on the map. Why?
Abstract (arXiv)
We present a general approach to batching arbitrary computations for accelerators such as GPUs. We show orders-of-magnitude speedups using our method on the No U-Turn Sampler (NUTS), a workhorse algorithm in Bayesian statistics. The central challenge of batching NUTS and other Markov chain Monte Carlo algorithms is data-dependent control flow and recursion. We overcome this by mechanically transforming a single-example implementation into a form that explicitly tracks the current program point for each batch member, and only steps forward those in the same place. We present two different batching algorithms: a simpler, previously published one that inherits recursion from the host Python, and a more complex, novel one that implemenents recursion directly and can batch across it. We implement these batching methods as a general program transformation on Python source. Both the batching system and the NUTS implementation presented here are available as part of the popular TensorFlow Probability software package.
Key facts. Cited by 6 papers in the map (data through 7 Oct 2026). First posted on arXiv 23 Oct 2019.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2023: 1; 2024: 1; 2025: 2; 2026: 2.
6 papers.
- 2024Disentangling impact of capacity, objective, batchsize, estimators, and step-size on flow VIcited by 5
- 2025Incorporating the ChEES Criterion into Sequential Monte Carlo Samplerscited by 3
- 2023ACRoBat: Optimizing Auto-batching of Dynamic Deep Learning at Compile Timecited by 1
- 2025Efficiently Vectorized MCMC on Modern Acceleratorscited by 0
- 2026Differentiate the Evaluator, Not the Program: An Efficient Runtime Representation for Neuro-Symbolic Learningcited by 0
- 2026DrainSinkhorn: Safe Elimination for Batched Entropic Optimal Transportcited by 0
- 2026DrainSinkhorn: Safe Elimination for Batched Entropic Optimal Transport27 Jul 2026
- 2026Differentiate the Evaluator, Not the Program: An Efficient Runtime Representation for Neuro-Symbolic Learning3 Jul 2026
- 2025Incorporating the ChEES Criterion into Sequential Monte Carlo Samplers3 Apr 2025
- 2025Efficiently Vectorized MCMC on Modern Accelerators20 Mar 2025
- 2024Disentangling impact of capacity, objective, batchsize, estimators, and step-size on flow VI11 Dec 2024
- 2023ACRoBat: Optimizing Auto-batching of Dynamic Deep Learning at Compile Time17 May 2023