Изначально процессоры x86 были довольно простыми устройствами. Постепенно они обросли дополнительными наборами инструкций, начиная с MMX и заканчивая AVX-512. Но на AVX-512 прогресс не остановился, и x86 продолжает развиваться, что вполне логично на фоне активного наступления других архитектур. На днях Intel опубликовала сведения о наборе инструкций AMX, который будет реализован в Xeon Scalable следующего поколения.
Набор AMX (Advanced Matrix Extension) продолжает традицию снабжать современные процессоры инструкциями, облегчающими процесс вычислений для специфичных задач. Особенно для тех, что связаны с машинным интеллектом и обучением нейросетей. Первым таким набором Intel стали расширения AVX-512 VNNI (DL Boost), дебютировавшие в семействе Cascade Lake и предназначенные для векторных вычислений в формате INT8.
В Xeon Scalable Cooper Lake они получили поддержку формата bfloat16, также востребованного в системах машинного обучения, что позволило использовать CPU и для обучений нейросетей, а не только исполнения как прежде. Третьим же расширением в рамках инициативы Intel DL Boost станет AMX (Advanced Matrix Extension) — оно появится в четвёртом поколении процессоров Xeon Scalable Sapphire Rapids.
Также AMX можно назвать первым крупным расширенным набором команд со времён внедрения AVX-512. Оба варианта DL Boost строились на базе AVX-512, в то время как AMX является отдельным, независимым набором расширений. В целом, архитектура x86 затронута не будет, как это было и с AVX/AVX2, но процессоры получат новый регистровый файл с восемью тензорными регистрами («тайлами») максимальным размером в шестнадцать 64-байт строк (1 Кбайт на регистр, 8 Кбайт на файл).
Инструкции AMX будут синхронизированы с операциями load/store; использовать их можно будет одновременно с любым другим кодом, включая AVX2 и AVX-512. Также в AMX реализована новая концепция «ускорителей» (accelerators), которые и будут работать с вышеупомянутыми «тайлами». Сами «тайлы» заданы не жёстко и их можно конфигурировать через специальный регистр управления — задавать число строк и количество байт в строке для оптимального использования того или иного алгоритма.
В настоящее время набор AMX включает в себя всего 12 новых инструкций. Условно их можно разделить на три категории: инструкции конфигурирования, управление «тайлами» и работы с «тайлами». Стоит отметить, что «тайлы» могут использовать скалярное произведение (dot-product) векторов в форматах INT8 и BF16, реализованных ранее в Cascade Lake и Cooper Lake. Пока в спецификациях описан лишь один «ускоритель» — перемножение матриц «тайлов» (TMUL), однако это лишь начало.
Сейчас кристаллы с поддержкой AMX уже имеются лабораториях Intel. Компания сообщила о том, что «кремний» Sapphire Rapids успешно запущен и тестируется. Ожидать появления новых процессоров следует в 2021 году. А что касается AMX, то компания уже опубликовала подробную документацию на новые расширения. Скачать её можно с сайта Intel. Нужные сведения описаны в третьей главе документа и выделены зелёным цветом.