Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

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

Unity via YouTube

Overview

Explore low-level engine development using the Burst Compiler in this 42-minute Unite Copenhagen conference talk. Dive into the expansion of Burst Compiler's capabilities, enabling complex engine and gameplay problems to be expressed in HPC# through direct CPU intrinsics. Learn about the reasoning behind this approach, implementation challenges, debugging techniques, and performance comparisons with C++ code. Gain insights into SIMD (Single Instruction, Multiple Data) concepts, their importance in modern hardware, and how to leverage them effectively. Discover techniques for explicit SIMD programming using Unity.Mathematics and Burst Intrinsics, with practical examples and disassembly comparisons. Understand data reinterpretation, instruction selection, and guidelines for optimal SIMD usage in Burst. This talk is ideal for developers interested in high-performance computing and low-level optimization techniques in game engine development.

Syllabus

Intro
Who this talk is for
Talk Contents
What is SIMD?
SIMD Analogy: Chopping Veggies
Why is SIMD important?
Dedicated Hardware: Skylake Example
Cache Bandwidth
The vector fallacy
Quick smell test for float SIMD-ness (x86)
Example: 3D dot products (back to basics)
Example: 3D dot products (SIMD)
SIMD mindset, contd.
So how do you get SIMD code?
LLVM's auto vectorizer
Example of successful vectorization
Explicit SIMD with Unity.Mathematics
Explicit Unity.Mathematics SIMD Example
The need for typeless SIMD
Data reinterpretation
Instruction selection
Leveraging data tricks
What we're working on
Typeless?
Do what the hardware does
API Usage Example
API Extract
A more complete example
Reference version
Reference disassembly
Let's lose the branches
Branch-free disassembly
Explicit SIMD with Unity Mathematics
Explicit Math version disassembly
Explicit SIMD with Burst Intrinsics
Explicit SIMD Disassembly
Guidelines for SIMD with Burst
What about System.Numerics?
Summary
Thank you!

Taught by

Unity

Reviews

Start your review of Intrinsics - Low-Level Engine Development with Burst - Unite Copenhagen

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.