Reverse Enginering the M1 GPU
What is a GPU?
CPU vs. GPU
GPUs can do...
3D rendering
Games
Desktop apps
Compute ("GPGPU")
Image processing
Machine learning
3D rendering
Unified shaders
This design is okay, but...
Lots of bandwidth...
Overdraw
Solution:
Tile-Based Deferred Rendering
Tiling
Tiled Vertex Buffer
Apple GPU Tiling
Definitely Not PowerVRâ„¢
The Apple M1 GPU
M1 SoC
(Simplified)
Address Spaces
GPU Ring Buffers
Let's Reverse Engineer it!
Render commands
GPU Stack
The trick!
Resume presentation
Reverse Enginering the M1 GPU First explain how GPUs work Then how the M1 is different Details of the M1 architecture What I'm trying to figure out How we can reverse engineer it Lots of this is simplified Some of it is guesswork