Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines
By Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, Saman P. Amarasinghe. 2013
1,416 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Computer Vision and Pattern Recognition, Hardware and Architecture, Efficiency & Compression, ML Systems & Hardware
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Yoshua Bengio
- Quoc V. Le
- Mohit Bansal
- Christopher R'e
- Stefano Ermon
- Sergey Levine
- Trevor Darrell
- Percy Liang
In Computer Vision and Pattern Recognition
- Luc Van Gool
- Ming-Hsuan Yang
- Jitendra Malik
- Dacheng Tao
- Xiaogang Wang
- Trevor Darrell
- Andrew Zisserman
- Andrea Vedaldi
In Hardware and Architecture
In Efficiency & Compression
- Tri Dao
- Christopher R'e
- Stefano Ermon
- Joseph E. Gonzalez
- Matei A. Zaharia
- Torsten Hoefler
- Daniel Y. Fu
- Chien-chin Huang
In ML Systems & Hardware
- Torsten Hoefler
- Arvind Krishnamurthy
- Luis Ceze
- Ziheng Jiang
- Eddie Q. Yan
- Thierry Moreau
- Lianmin Zheng
- Tal Ben-Nun
Citations in the corpus
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (2022, methodology): “IO-aware algorithms have been critical for similar memory-bound operations, when reading and writing data can account for a large portion of the runtime—such as database joins [74], image processing [73], numerical linear algebra [4], and more [42, 89].”
- TensorFlow: A system for large-scale machine learning (2016, neutral): “We are currently investigating automatic kernel fusion using Halide [61] and other compiler-based techniques.”
- Fast Convolutional Nets With fbfft: A GPU Performance Evaluation (2014, methodology): “This is an approach used in automatic code generation tools such as Halide (Ragan-Kelley et al. (2013)) and relies on aggressive if-conversionproperties of the CUDA compiler.”
- Supporting Very Large Models using Automatic Dataflow Graph Partitioning (2018, methodology): “Inspired by Halide [19], TDL describes tensor computation by specifying the output tensor value at each index with simple expressions on the input tensors.”
- Towards Practical Verification of Machine Learning: The Case of Computer Vision Systems (2017, methodology): “[39], to the best of our knowledge, we are the first to reduce the output space of a parameterized image transform using such techniques.”
- Augur: Data-Parallel Probabilistic Modeling (2014, background): “However performing inference over program traces generated by a model, instead of the model support itself, makes it more difficult to generate an efficient inference algorithm.”
- Ansor : Generating High-Performance Tensor Programs for Deep Learning (2020, background): “The compiler then uses an algorithm such as beam search [34] to search for good decisions (e.g., Halide auto-scheduler [2]).”
- DiffTaichi: Differentiable Programming for Physical Simulation (2019, background): “DiffTaichi PyTorch TensorFlow Enoki JAX Halide Julia Swift GPU Megakernels ∆ ∆ Imperative Scheme”
- Learning to Optimize Tensor Programs (2018, methodology): “There are many domain-specific languages (DSLs) for code generation [32, 36, 15, 37, 20, 30], each with with a different E , Se and g.”
- Tiramisu: A Polyhedral Compiler for Expressing Fast and Portable Code (2018, methodology): “The use of a scheduling language has been shown effective for generating efficient code by multiple compilers including CHiLL, AlphaZ, and Halide [40], [41].”
- TVM: An Automated End-to-End Optimizing Compiler for Deep Learning (2018, methodology): “The process of generating multiple valid implementations builds on Halide’s idea of decoupling descriptions from computation rules (or schedule optimizations) [30], for y in range(1024): for x in range(1024): C[y][x] = 0 for k in range(1024): C[y][x] += A[k][y] * B[k][x]”
- TVM: An Automated End-to-End Optimizing Compiler for Deep Learning (2018, methodology): “Our tensor expression takes cues from Halide [32], Darkroom [17], and TACO [23].”
- Optimizing data-intensive computations in existing libraries with split annotations (2018, methodology): “For example, even state-of-theart compilers tailored for linear algebra [7, 34, 61] generate convolutions and matrix multiplies that are up to 2× slower than hand-optimized implementations [3, 14, 18].”
- BIDMach: Large-scale Learning with Zero Memory Allocation (2013, background): “A+B or a small convolution kernel), one can compile a series of operations into a single-pass operator that is mapped across an input matrix [4].”