Intrinsics - Low-Level Engine Development with Burst - Unite Copenhagen

Intrinsics - Low-Level Engine Development with Burst - Unite Copenhagen

Unity via YouTube Direct link

Let's lose the branches

31 of 40

31 of 40

Let's lose the branches

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

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.