Доклад

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

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

Во второй части мы дополним наши знания о branch prediction продвинутыми алгоритмами предсказаний. И конечно, state-of-the-art-алгоритмами. Знание это программисту, конечно, не требуется в повседневной практике. Но нужно понимать, до какой степени процессор способен предсказывать поведение вашей программы. То, как он это делает, может помочь соптимизировать код в критических местах.

Мы рассмотрим:

  • Двухуровневые таблицы и дихотомию Йеха.
  • Некоторые продвинутые методы предсказания ветвлений.
  • Персептрон, который позволяет предсказать поведение ветвлений, и современные алгоритмы для этого.

Спикеры

Доклады