~/talk

Data-oriented Design for Differentiable, Probabilistic Programming

Talkat LAFI 2025 · on Sunday, 2025-01-19· [machine-learning, compilers-and-language-design]
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

Reimplementation of the lazy rose tree from LazyPPL into a strict, data-oriented Rust backend reduces thunk size from about 16 to 4 bytes, stores nodes and thunk states in separate vectors, and uses array-of-structs→struct-of-arrays layout. Benchmarks report a Haskell run taking ~5 minutes vs Rust ~2 seconds on piecewise linear MCMC; memory becomes constant across runs by reusing the tape. A reverse-mode autodiff graph for gradients is integrated, and some unsafe Rust is used to implement splitable RNG state safely.

AI-written summary · about

  1. 0:00Introduction
  2. 0:23Motivation
  3. 1:07Non-parametric statistics
  4. 2:53Lazy vs classic PPLs
  5. 3:57Lazy PPL with rose trees
  6. 5:25Rose tree structure
  7. 6:08Lazy data in Haskell
  8. 7:15Data-oriented design
  9. 7:56Trees to vectors
  10. 8:39Efficient thunks in Rust
  11. 9:25AoS to SoA optimization
  12. 9:47Ergonomic Rust interface
  13. 10:50Performance benchmarks
  14. 11:53Beyond speed
  15. 12:35Future research
  16. 13:16Q&A
  17. 13:38Memory reduction
  18. 15:49Rust's ownership and mutable resource splitting
  19. 17:44Laziness in Rust DSL
  20. 19:30Closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.