Completed
Talk Contents
Class Central Classrooms beta
YouTube videos curated by Class Central.
Classroom Contents
Intrinsics - Low-Level Engine Development with Burst - Unite Copenhagen
Automatically move to the next video in the Classroom when playback concludes
- 1 Intro
- 2 Who this talk is for
- 3 Talk Contents
- 4 What is SIMD?
- 5 SIMD Analogy: Chopping Veggies
- 6 Why is SIMD important?
- 7 Dedicated Hardware: Skylake Example
- 8 Cache Bandwidth
- 9 The vector fallacy
- 10 Quick smell test for float SIMD-ness (x86)
- 11 Example: 3D dot products (back to basics)
- 12 Example: 3D dot products (SIMD)
- 13 SIMD mindset, contd.
- 14 So how do you get SIMD code?
- 15 LLVM's auto vectorizer
- 16 Example of successful vectorization
- 17 Explicit SIMD with Unity.Mathematics
- 18 Explicit Unity.Mathematics SIMD Example
- 19 The need for typeless SIMD
- 20 Data reinterpretation
- 21 Instruction selection
- 22 Leveraging data tricks
- 23 What we're working on
- 24 Typeless?
- 25 Do what the hardware does
- 26 API Usage Example
- 27 API Extract
- 28 A more complete example
- 29 Reference version
- 30 Reference disassembly
- 31 Let's lose the branches
- 32 Branch-free disassembly
- 33 Explicit SIMD with Unity Mathematics
- 34 Explicit Math version disassembly
- 35 Explicit SIMD with Burst Intrinsics
- 36 Explicit SIMD Disassembly
- 37 Guidelines for SIMD with Burst
- 38 What about System.Numerics?
- 39 Summary
- 40 Thank you!