Pidoku
Performance

Performance

IntermediateTopic5 lessons~4h 55m

Lessons, in order

About this topic

A GPU can be a thousand times faster than a CPU or barely faster at all. The difference is almost never “better arithmetic”. It is whether the program respects four constraints: memory bandwidth, memory access patterns, how well the SMs are kept busy, and per-launch overhead.

#LessonThe question it answers
01The Roofline ModelWhat is the fastest this operation could possibly run?
02Memory Access PatternsWhy does the order of memory access change speed 10x?
03Occupancy and DivergenceAre the SMs actually busy?
04Launch Overhead and FusionWhy are many small kernels slow?
05Measuring a GPUWhat do the tools tell you — and what do they hide?

When you finish you can look at an operation, predict its speed from a data sheet, measure it, and explain the gap.

↑↓ navigate↵ openesc close

drag to pan · scroll to zoom