Skip to content
0:00 / 0:00

#intelskylake#microarchitecture#branchprediction

Matt Godbolt: Advanced Skylake Deep Dive

Jane Street

102K subscribers • 18 videos on Hallway

YouTube
  • Recommended by 1 person: 1 on Lobsters.
  • Presented by Matt Godbolt, creator of Compiler Explorer

Advanced. Deep dive for people who know the field.

66K views10 months ago1 recommendation

Systems programmingHardwareCPUs and computer architecturePerformance and optimizationConcurrency and parallelism

Matt Godbolt explores the execution engine, branch predictors, and performance counters of modern Intel microarchitectures.

Matt Godbolt goes deep into the actual implementation details of modern Intel microarchitecture. We'll explore how the execution engine really works - register files, schedulers, and memory disambiguation - and how branch predictors track history and correlate patterns. Through microbenchmarks and performance counter analysis, we'll demonstrate surprising behaviours and show how to investigate them when they appear in your code. Note: This talk assumes some familiarity with basic CPU concepts like out-of-order execution, branch prediction, and pipelining. The talk will start with a refresher, but for those wanting a more thorough grounding first, Matt suggests watching his previous talk, What Every Programmer Should Know about How CPUs Work: youtube.com/watch?v=-HNpim5x-IE

Why it's here

1 person recommends this

What people say. Recommended as an exceptionally detailed deep dive into CPU microarchitecture and its impact on software performance.

jasonkochon Lobsters • Recommends

Microarchitecture: What Happens Beneath Matt Godbolt goes deep into the actual implementation details of modern Intel microarchitecture. We'll explore how the execution engine really works - register files, schedulers, and memory disambiguation - and how branch predictors track history and correlate patterns. Through microbenchmarks and performance counter analysis, we'll demonstrate surprising behaviours and show how to investigate them when they appear in your code.