Это короткий пост об исследовании поведения AVX2 и AVX-512 в связи с
лицензионным даунклокингом новых чипов Intel Ice Lake.
Лицензионный даунклокинг
1 — это
малоизвестный эффект, при котором пределы частот опускаются ниже номинальных в случае выполнения определённых SIMD-инструкций, особенно тяжёлых инструкций с плавающей запятой или инструкций с 512-битной шириной.
Подробности о подобном виде даунклокинга можно прочитать в
этом ответе на StackOverflow, и мы уже
довольно детально объясняли низкоуровневую механику подобных переходов. Также можно найти
инструкции о том, как воспользоваться широкими SIMD (Single Instruction Multiple Data: тип или расширение архитектуры набора команд, например, Intel AVX или ARM NEON, способные выполнять множественные идентичные операции с элементами, упакованными в SIMD-регистр) с учётом этой проблемы
2.
Информация по ссылкам написана в контексте Skylake-SP (SKX, серверной архитектуры Intel Skylake, включающей в себя Skylake-SP, Skylake-X и Skylake-W), которые стали первым поколением чипов с поддержкой AVX-512.
Какова же ситуация с Ice Lake — с самыми новыми чипами, поддерживающими как инструкции AVX-512 из SKX, так и имеющими
совершенно новый набор инструкций AVX-512? Нам придётся смотреть на эти новые инструкции издалека, и мы никогда не сможем воспользоваться ими из-за даунклокинга?