Accelerate Haskell for GPU and Multicores
summary
A Haskell EDSL compiles array programs to native kernels via LLVM/CUDA codegen, caches compiled kernels (run/runN) and aggressively fuses combinators so higher‑order code turns into tight loops; LULESH reference CUDA is 3.5s versus Accelerate 6s, OpenMP versions are competitive, and a salt‑marsh Python+OpenCL pipeline (1–1.6s/frame) runs faster after porting. Implementation uses generics for user types, Template Haskell for pattern synonyms, Tracy hooks for source‑level profiling, and ongoing work adds destructive updates, schedulers and automatic differentiation; current GPU backend targets NVIDIA only.
AI-written summary · about
chapters (15)
- 0:00Start
- 0:18Gabriel Keller
- 4:33Performance
- 7:04Benchmarks
- 8:25Formation of Spatial Patterns in Ecosystems
- 16:05Index into an Array
- 17:41Stencil Operations
- 19:24Matrix Matrix Multiplication
- 22:11Type Constructor
- 27:44Profiling and Debugging
- 36:35Haskell's Bidirectional Pattern Synonyms
- 41:39Pattern Matching
- 55:57An Example of Interference for Deep Neural Network
- 56:14Is It Possible To Execute All these Commands on a Gpu without Copying the Results to Cpu
- 59:25Linear Types as a Way To Improve the Inner Workings of the Library
related talks
56mDeterministic Parallel Programming with Haskell
55mDeforestation and Program Fusion
01h 26mReflections on Haskell@Meta
01h 06mMicroHs, a tiny Haskell Compiler
01h 02mOptimising for fast builds with GHC
01h 26mHaskell Language Server
38mLightning talks
53mCan Haskell Become a Great Language for Data Science?
