Halide: A Language for Fast, Portable Computation on Images and Tensors
summary
Halide is a C++-embedded DSL that separates algorithm from schedule and uses tiling, vectorization and compute_at to trade locality, parallelism and redundant recomputation. With an LLVM backend it JITs or AOT-compiles pipelines, runs auto-schedulers (Mulipudi 2016, Lee 2018, atoms 2019 auto-scheduler), and is used in Google Pixel camera, Photoshop and YouTube. On a 4 MP image a tuned schedule reaches ~0.4 ms on four cores (≈251× faster than a naive 100 ms implementation).
AI-written summary · about
chapters (47)
- 0:00Introduction
- 0:45What are DSLs
- 2:06What is Halide
- 2:50Halide Team
- 4:11Summary
- 5:04CPU Optimization
- 6:08CPU Independent Work
- 6:42Recompute Values
- 7:56Locality
- 8:58Dependency Chain
- 9:55Optimized Libraries
- 10:34Why C
- 11:47Running Example
- 11:57Two Stage Blur
- 12:52Edge Cases
- 13:21C Example
- 13:48Boundary Extending
- 14:38Horizontal Blur
- 15:36Pixel Cache
- 16:09Swap Loops
- 16:46Parallelization
- 17:18Is it portable
- 17:54Is it correct
- 18:09Is it maintainable
- 18:31Define the algorithm
- 19:09Blur pipeline
- 20:53Questions
- 22:50Schedule
- 26:25Inlining
- 27:19Vectorize
- 28:40Tile
- 30:42Bonus
- 31:36Fastest Schedule
- 33:06AutoSchedulers
- 34:16AutoSchedulers 2019
- 35:23Questions Answers
- 38:09Compiler Infrastructure
- 39:04Halide in C
- 40:46JIP Mode
- 41:20Halide Program
- 42:43Ahead of Time Compilation
- 43:33Generator Code
- 45:18CrossCompile
- 45:53CMake
- 46:58Runtime
- 48:02Conclusion
- 48:49QA
related talks
08mA Halide Backend for TorchInductor
15mEfficient Automatic Scheduling of Imaging & Vision Pipelines for the GPU
24mHelion 1.0: A High-Level DSL for Performance Portable Kernels
28mHelion: A High-level DSL for Kernel Authoring
01h 00mThe Shape of Things to Come
24mVerified Tensor-Program Optimization Via High-Level Scheduling Rewrites
22mTileLoom: Automatic Dataflow Planning for Tile-Based Languages on Spatial Dataflow Accel…
41mHelion's New CuTe DSL and Pallas Backends and How We Built Them Via Agents
