This talk was very hard to do, I guess timestamps still may be acceptable.
Contents
00:00 Welcome!
00:17 Aren't there enough AD (Automatic Differentiation) frameworks in Julia?
01:08 So, what does Enzyme.jl bring to the table?
03:31 Enzyme.jl approach to AD
04:03 Challenge of low-level AD: low-level code lacks information need to compute adjoints
05:09 Overview of few concepts in low-level AD
07:26 Closer look at type analysis
08:54 Closer look at activity analysis
09:57 Decomposing the "tape"
11:15 Closer look at shadow memory
11:54 Closer look at the cache
12:59 New features in Enzyme.jl 0.7
14:45 User specified activity information
16:20 Live demo
16:37 First example: simple square function x^2
18:10 Second example: mutation function cube
19:25 Enzyme.jlDuplicatedNoNeed feature
20:23 Differentiating through control flow
22:20 Differentiating through more complicated codes: matrix multiply
23:50 Some more fun with complicated code
25:03 Demo of GPU code
26:45 What next?
28:12 Wishes from the ChainRules.jl interface
29:58 Summary
Enzyme.jl -- Reverse mode diff'n on LLVM IR for Julia, https://www.youtube.com/watch?v=gFfePK44ICk
This talk was very hard to do, I guess timestamps still may be acceptable.
Contents 00:00 Welcome! 00:17 Aren't there enough AD (Automatic Differentiation) frameworks in Julia? 01:08 So, what does Enzyme.jl bring to the table? 03:31 Enzyme.jl approach to AD 04:03 Challenge of low-level AD: low-level code lacks information need to compute adjoints 05:09 Overview of few concepts in low-level AD 07:26 Closer look at type analysis 08:54 Closer look at activity analysis 09:57 Decomposing the "tape" 11:15 Closer look at shadow memory 11:54 Closer look at the cache 12:59 New features in Enzyme.jl 0.7 14:45 User specified activity information 16:20 Live demo 16:37 First example: simple square function x^2 18:10 Second example: mutation function cube 19:25 Enzyme.jl DuplicatedNoNeed feature 20:23 Differentiating through control flow 22:20 Differentiating through more complicated codes: matrix multiply 23:50 Some more fun with complicated code 25:03 Demo of GPU code 26:45 What next? 28:12 Wishes from the ChainRules.jl interface 29:58 Summary
Resources ChainRules.jl Enzyme.jl