Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines
- Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, F. Durand, Saman P. Amarasinghe
- Computer ScienceACM-SIGPLAN Symposium on Programming Language…
- 16 June 2013
A systematic model of the tradeoff space fundamental to stencil pipelines is presented, a schedule representation which describes concrete points in this space for each stage in an image processing pipeline, and an optimizing compiler for the Halide image processing language that synthesizes high performance implementations from a Halide algorithm and a schedule are presented.
OpenTuner: An extensible framework for program autotuning
- Jason Ansel, S. Kamil, Saman P. Amarasinghe
- Computer ScienceInternational Conference on Parallel…
- 24 August 2014
The efficacy and generality of OpenTuner are demonstrated by building autotuners for 7 distinct projects and 16 total benchmarks, showing speedups over prior techniques of these projects of up to 2.8χ with little programmer effort.
Decoupling algorithms from schedules for easy optimization of image processing pipelines
- Jonathan Ragan-Kelley, Andrew Adams, Sylvain Paris, M. Levoy, Saman P. Amarasinghe, F. Durand
- Computer ScienceACM Transactions on Graphics
- 1 July 2012
This work proposes a representation for feed-forward imaging pipelines that separates the algorithm from its schedule, enabling high-performance without sacrificing code clarity, and demonstrates the power of this representation by expressing a range of recent image processing applications in an embedded domain specific language called Halide and compiling them for ARM, x86, and GPUs.
Learning to optimize halide with tree search and random programs
- Andrew Adams, Karima Ma, Jonathan Ragan-Kelley
- Computer ScienceACM Transactions on Graphics
- 12 July 2019
This work presents a new algorithm to automatically schedule Halide programs for high-performance image processing and deep learning that produces schedules which are on average almost twice as fast as the existing Halide autoscheduler without autotuning, or more than two as fast with, and is the first automatic scheduling algorithm to significantly outperform human experts on average.
DiffTaichi: Differentiable Programming for Physical Simulation
- Yuanming Hu, Luke Anderson, F. Durand
- Computer ScienceInternational Conference on Learning…
- 25 September 2019
We present DiffTaichi, a new differentiable programming language tailored for building high-performance differentiable physical simulators. Based on an imperative programming language, DiffTaichi…
Automatically scheduling halide image processing pipelines
- Ravi Teja Mullapudi, Andrew Adams, Dillon Sharlet, Jonathan Ragan-Kelley, K. Fatahalian
- Computer ScienceACM Transactions on Graphics
- 11 July 2016
An algorithm for automatically generating high-performance schedules for Halide programs that does not require costly (and often impractical) auto-tuning, and generates schedules for a broad set of image processing benchmarks that are performance-competitive with, and often better than, schedules manually authored by expert Halide developers on server and mobile CPUs, as well as GPUs.
Neural Kernels Without Tangents
- Vaishaal Shankar, Alexander W. Fang, B. Recht
- Computer ScienceInternational Conference on Machine Learning
- 4 March 2020
Using well established feature space tools such as direct sum, averaging, and moment lifting, an algebra for creating "compositional" kernels from bags of features is presented that corresponds to many of the building blocks of "neural tangent kernels (NTK).
Darkroom: compiling high-level image processing code into hardware pipelines
- James Hegarty, J. Brunhaver, P. Hanrahan
- Computer ScienceACM Transactions on Graphics
- 27 July 2014
The semantics of the Darkroom language allow it to compile programs directly into line-buffered pipelines, with all intermediate values in local line-buffer storage, eliminating unnecessary communication with off-chip DRAM.
Programming Heterogeneous Systems from an Image Processing DSL
- Jing Pu, Steven Bell, M. Horowitz
- Computer ScienceACM Transactions on Architecture and Code…
- 28 October 2016
The image processing language Halide is extended so users can specify which portions of their applications should become hardware accelerators, and a compiler is provided that uses this code to automatically create the accelerator along with the “glue” code needed for the user’s application to access this hardware.
Taichi: a language for high-performance computation on spatially sparse data structures
- Yuanming Hu, Tzu-Mao Li, Luke Anderson, Jonathan Ragan-Kelley, F. Durand
- Computer ScienceACM Transactions on Graphics
- 8 November 2019
Fig. 1. (Top) We propose the Taichi programming language, which exposes a high-level interface for developing and processing spatially sparse multi-level data structures, and an optimizing compiler…
...
...