Потребительские версии процессоров Cannon Lake и Ice Lake получат AVX-512

Новый документ Intel для разработчиков программного обеспечения сообщает о том, что компания введёт поддержку набора инструкций AVX-512 в свои потребительские процессоры начиная с поколений Cannon Lake и Ice Lake. Новые расширения для x86 позволят CPU повысить производительность в определённых приложениях. Между тем не совсем понятно, какие именно программы для настольных и мобильных ПК будут поддерживать AVX-512 в 2018–2019 годах, когда данные процессоры выйдут на рынок.

AVX-512: для избранных уже сегодня

Начиная с середины 90-х годов прошлого века корпорации Intel и AMD внедряли различные расширения набора инструкций для архитектуры x86. В течение последних 20 лет обе компании добавили сотни новых команд, призванных увеличить производительность либо за счёт использования параллелизма на уровне данных (и применения SIMD-инструкций), либо с помощью специальных аппаратных блоков.

Последние расширения Intel для потребительских платформ называются AVX/AVX2, а их основными задачами было расширение ширины файла регистров (как для операций с плавающей точкой, так и для операций с целыми числами) до 256 разрядов, а также добавление команд вроде FMA3 (служащих аналогичной цели: производить относительно сложные вычисления за один такт). При выполнении 256-разрядных операций AVX/AVX2 процессоры иногда должны снижать свою частоту, поскольку при исполнении таких операций увеличиваются энергопотребление и тепловыделение, но даже на сниженных частотах использование AVX/AVX2 имеет большой смысл.


Эволюция Intel AVX

Следующим шагом в эволюции расширений набора инструкций стал AVX-512. В случае с данным набором команд компания пошла по несколько отличному от традиционного пути: она создала специфические команды для определённых приложений и реализовала их в разных типах процессоров. Так, некоторые расширения AVX-512 нацелены в первую очередь на рабочие нагрузки серверов общего назначения, тогда как другие применимы для суперкомпьютеров. Реализация всех расширений во всех продуктах вряд ли имеет большой смысл для Intel и её клиентов, поэтому последние Intel Xeon поколения Skylake-SP (и процессоры HEDT на их основе) поддерживают один набор команд AVX-512, а Xeon Phi — другой (в диаграмме ниже показаны разные уровни поддержки AVX-512 разными CPU). При этом современные потребительские процессоры вообще не поддерживают AVX-512, поскольку физическая реализация 512-разрядного файла регистров значительно увеличивает размер ядра (до 15 % в случае ядра Skylake) и его себестоимость, а также потому, что программы для клиентских ПК сегодня не умеют использовать новые инструкции.


Текущие инкарнации AVX-512. Диаграмма из твиттера @InstLatx64

Впрочем, в будущем всё изменится: Intel планирует включить поддержку ряда команд AVX-512 в своих будущих потребительских процессорах Cannon Lake и Ice Lake, а разработчики программного обеспечения могут начать внедрять поддержку новых инструкций уже сейчас с прицелом на HEDT-платформы на базе Core i7/Core i9 с ядрами Skylake-SP.

AVX-512: для (почти?) всех, но завтра

Согласно документу Intel для разработчиков программ, потребительские процессоры поколения Cannon Lake будут поддерживать наборы команд AVX512F, AVX512CD, AVX512DQ, AVX512BW и AVX512VL, что соответствует уровню Intel Xeon Scalable и Intel Core i7/Core i9. Кроме того, микроархитектура Cannon Lake будет поддерживать команды AVX512_IFMA и AVX512_VBMI, но на данный момент не ясно, будет ли их поддержка ограничена серверами или же будет включена и в потребительских процессорах (последний сценарий более вероятен).


Intel Core i9-7900X: AVX-512 уже сегодня

Изначально Intel обещала выпустить свои процессоры поколения Cannon Lake в 2016–2017 годах, но отложила внедрение технологического процесса 10 нм до 2018 года, тем самым отложив и выпуск новых CPU. Как ожидалось, процессоры Cannon Lake должны были стать 10-нм версиями Kaby Lake (а затем Coffee Lake) с некоторыми усовершенствованиями, но добавление поддержки AVX-512 означает довольно ощутимое изменение архитектуры, поскольку большие фрагменты данных требуют большой пропускной способности памяти (в Skylake-SP она обеспечивается большими кешами и контроллерами памяти с четырьмя или шестью каналами). Принимая во внимание требования к ПСП и энергопотребление AVX-512-блоков, новые инструкции могут поддерживаться не всеми клиентскими процессорами Cannon Lake, но лишь теми, которые нацелены на относительно высокопроизводительные ПК. Например, мы можем не увидеть AVX-512 в мобильных процессорах со сниженным энергопотреблением, а также моделях для настольных ПК начального уровня. Впрочем, хорошая новость заключается в том, что когда мощные Cannon Lake появятся на рынке, по крайней мере некоторые программы для клиентских компьютеров смогут использовать расширения AVX-512.

Эволюция AVX-512 для центральных процессоров общего назначения не остановится на Cannon Lake. Процессоры Intel Ice Lake будут поддерживать инструкции AVX512_VPOPCNTDQ (они также будут поддерживаться Xeon Phi семейства Knights Mill), а также команды AVX512_VNNI, AVX512_VBMI2, AVX512+VPCLMULQDQ и AVX512_BITALG. Кроме того, микросхемы Ice Lake будут поддерживать AVX-512 версии известных алгоритмов AES и GFNI для шифрования и исправлений ошибок — AVX512+VAES и AVX512+GFNI. Тем временем, Knights Mill будет эксклюзивно поддерживать AVX512_4FMAPS и AVX512_4VNNI. Впрочем, существует заявка Intel на заплатку к ядру Linux, которая утверждает, что эти инструкции будут поддерживаться как Xeon Phi, так и Xeon. Описания к заплаткам Linux не всегда точны, а планы могут меняться, но данную информацию следует учитывать.


Будущие инкарнации AVX-512. Диаграмма из твиттера @InstLatx64

Как видно из документа Intel, процессоры поколений Cannon Lake и Ice Lake будут иметь поддержку самых современных инструкций AVX-512. Неизвестно, будут ли ядра CNL и ICL использоваться в будущих серверных процессорах (следует помнить, что Intel готовит некий исключительно серверный продукт с кодовым именем Cascade Lake), но если это так, то, судя по всему, ядра Intel для серверных и потребительских CPU будут иметь один и тот же набор возможностей AVX-512.

Важное событие

Внедрение инструкций AVX-512 в потребительские процессоры Intel — довольно важное событие даже несмотря на то, что данный набор команд в основном предназначен для обработки больших объёмов данных, что свойственно для серверов и, в определённой степени, рабочих станций. Так, последние могут получить от AVX-512 прибавку производительности в областях вроде кодирования видео, рендеринга, криптографии, глубокого обучения и т. д. Судя по всему, в Intel считают, что 512-разрядные INT/FP-вычисления станут важными и для потребительских ПК.

Нравится3
Комментарии (1)
Ну наконец-то!
B
i
u
Спойлер