Parallel-by-construction Tree Manipulation with APL (Part 2)
summary
Claims that APL expresses tree transforms so compactly they are parallel-by-construction, letting whole compiler passes appear as single lines and making critical-path complexity readable. Demonstrates a compiler pipeline with a static single-assignment pass and closure creation that emits CPU and GPU code via a tool called Kodi funds compiling to C++ CUDA and OpenCL. Reports order-of-magnitude speedups, explains debugger and tooling integration, and shows prototypes that run on GPU though some features (nested arrays) remain unfinished.
AI-written summary · about
chapters (38)
- 0:00Intro
- 6:18Performance
- 7:00Computational Complexity
- 7:40Linear Complexity
- 9:52Critical Path Complexity
- 10:35Complexity Analysis
- 13:19Scalar Expressions
- 14:01Data Dependencies
- 14:20Trapezoid Slicing
- 15:07Power to the User
- 15:42Parallel by Construction
- 17:03Technical
- 18:54Baby operators
- 20:55Lets try it
- 23:21Touch typing
- 24:20Language bar
- 25:13Variance
- 27:24Sketch
- 29:27Pull up
- 31:13Documentation
- 33:25Skimming
- 34:43Optimizing for wholeprogram rewrite
- 36:23Why 3 words are bad
- 37:55What is the standard way
- 42:03I am highlevel work
- 43:30Interpreters
- 43:54Compiler
- 44:58GPU performance
- 46:27Compiler features
- 46:58Nested arrays
- 49:33Mental representation
- 51:52New nodes
- 52:33Why numbers
- 52:57Why symbols
- 53:21Raw identity
- 53:34Defunds
- 56:33Closures
- 57:32Result
related talks
58mFunctional Array Funhouse Intensive - Part 2 of 5
02h 50mFunctional Array Funhouse Intensive - Part 3 of 5
53mIntroduction to C++ AMP (GPGPU Computing)
32mCompilation of Dynamic Sparse Tensor Algebra
10mGraph Based Pipeline Parallelism
30mData-Parallel Flattening by Expansion
15mPluS: Highly Efficient and Expandable ML Compiler with Pluggable Graph Schedules
26mAugmenting Existing Procedural HPC Application Codes(...)
