Intel совместно с x86 Ecosystem Advisory Group представил спецификацию ACE — нового акселератора для набора инструкций AMX. Раньше AMX умел только матричные умножения через блок TMUL (внутренние произведения), ACE добавляет второй тип — операции внешнего произведения. Если в TMUL программист вручную задавал размер каждого тайлового регистра, то в ACE они фиксированы: 64 байта на 16 строк. Из типов данных убрали комплексные числа, но добавили FP8.
ACE черпает вдохновение в архитектуре Arm SME2, которая тоже использует внешние произведения. Но подходы различаются. ACE опирается на фиксированные 512-битные векторные регистры AVX-512/AVX10 — они достаточно широки, чтобы служить lookup-таблицей для конвертации квантованных данных. Новая инструкция VUNPACKB распаковывает элементы от 2 до 7 бит, а VPERM и VPERMI2B делают перекодировку. Arm не может гарантировать такую ширину векторов (SVE допускает длину от 128 до 2048 бит), поэтому SME2 добавил отдельный 512-битный регистр ZT0 для этой же задачи, но он менее гибок — работает только с 2- и 4-битными значениями.
Для работы с FP8 оба подхода предусматривают масштабирующие коэффициенты блоками. В ACE за это отвечает 1024-битный регистр BSR0, в SME — поля LSCALE в регистре управления FPMR. Проблема в том, что в обоих случаях перезапись регистра масштабов может стать узким местом, если его не умеют переименовывать в железе.
Ключевое преимущество ACE — эффективность работы с кэшем. Инструкции ACE берут операнды из векторных регистров AVX-512, а не из тайловых, как старый AMX. Это позволяет держать больше аккумуляторов в 8 КБ тайловых регистров. Расчёты показывают: для умножения матриц 32K×32K в INT8 ACE грузит из кэша 1,5 ТБ данных (0,046 байта на операцию MAC), тогда как AMX — 1,7 ТБ, а AVX-512-VNNI — 3,4 ТБ. Меньше нагрузки на L1D — выше частота и меньше энергопотребление.
Новые инструкции TILEMOVROW и TILEMOVCOL позволяют копировать строки и столбцы между векторными и тайловыми регистрами в обход L1D. Теоретически тайловые регистры можно использовать как программный scratchpad, но на практике это вряд ли приживётся: всего 8 КБ, поддержка потребует от ОС сохранять их при переключении контекста, а задержки на передачу могут быть большими.
Железных реализаций ACE пока нет. Intel и AMD могут внедрить его в следующем поколении CPU, но качество имплементации решит судьбу расширения.