Доклад

Branch prediction, или Откуда процессор берет производительность (Часть 1)

  • На русском языке

Современные процессоры являются крайне сложными устройствами, заточенными на получение максимальной производительности из того кода, который мы запускаем на них. Понятия Out of Order (OoO), Super Scalar на слуху, и многие знают про Branch predictor, но мало кто представляет, как он устроен. А между тем, Branch prediction — это основа спекулятивного выполнения, которая является одним из самых важных компонентов производительности.

Конечно, это знание не требуется программисту в повседневной практике. Но понимание, до какой степени процессор способен предсказывать поведение вашей программы и как он это делает, может помочь оптимизировать код в критических местах.

В докладе рассмотрим:

  • Общее устройство процессора. 
  • Как работает OoO и где в нем место для Branch predictor.
  • Как работает спекулятивное исполнение.
  • Базовые алгоритмы предсказаний ветвлений.
  • Некоторые продвинутые методы предсказания ветвлений.
  • Как это влияет на исполение нашего кода.

Спикеры

Доклады