Intel представила два набора расширений архитектуры x86, которые улучшат производительность кода общего назначения и обеспечат единый векторный набор инструкций для будущих процессоров.
Первое расширение называется “Advanced Performance Extensions” (Intel APX) и предоставляет доступ к большему количеству регистров и другим функциям, направленным на повышение производительности кода общего назначения.
Второе расширение называется “Advanced Vector Extensions” 10 (Intel AVX10) и описывается как “современная векторная архитектура набора инструкций”, которая будет поддерживаться всеми будущими процессорами Intel.
APX, по мнению Intel, является большим шагом для данной архитектуры. Его главной особенностью является удвоение количества регистров общего назначения с 16 до 32. Наличие большего количества регистров означает, что манипулировать их значениями необходимо будет реже, что должно повлиять на производительность в лучшую сторону.
В частности, это позволит компилятору хранить больше значений в регистрах, так что код, использующий APX, может требовать на 10 процентов меньше загрузок из памяти и потенциально более чем на 20 процентов меньше сохранений, чем тот же код, скомпилированный для существующего набора инструкций, утверждает Intel.
Это означает, что процессор тратит больше времени на вычисления, а не на перемещение данных. Кроме того, доступ к регистрам занимает меньше времени и потребляет меньше энергии, чем сложные операции загрузки и сохранения.
Новые регистры общего назначения поддерживают технологию XSAVE, что означает, что они могут быть автоматически сохранены и восстановлены при переключении контекста. Дополнительная область XSAVE для этого не требуется, так как регистры используют пространство, ранее выделенное компанией для Intel MPX.
APX также добавляет условные формы инструкций загрузки, сохранения и сравнения/тестирования, предназначенные для борьбы с потерей производительности приложений из-за ошибочного предсказания условных переходов. Они реализуются через расширения префикса EVEX существующих унаследованных инструкций.
Согласно данным Intel, разработчики теперь смогут использовать APX, чтобы перекомпилировать код без потребности в изменении исходного кода продукта.
AVX10, по словам Intel, является первым крупным обновлением векторного набора инструкций с момента введения AVX-512. Он предназначен для обеспечения единого сходного векторного набора инструкций для всех архитектур Intel и поэтому будет поддерживаться всеми будущими процессорами, включая ядра высокой производительности (P-cores) и энергоэффективные ядра (E-cores).
AVX10 основан на наборе функций Intel AVX-512 и будет поддерживать все длины векторных инструкций (128, 256 и 512), а также скалярные инструкции и маски операций.
Однако, похоже, что “конвергентная” версия AVX10, которая будет общей для всех процессоров Intel, будет иметь максимальную длину вектора 256 бит и 32-битные маски операций. Она получит название Intel AVX10 / 256.
Поддержка 512-битных векторных и 64-битных регистров маски операций также будет продолжаться на некоторых процессорах P-core “в тяжёлых векторных вычислительных приложениях, которые могут использовать дополнительную длину вектора”. Эта версия расширения будет называться Intel AVX10/512.
Хотя всё это может показаться немного запутанным, в конечном итоге Intel наоборот хочет упростить поддержку разработчиками векторных инструкций, имея базовый уровень поддержки на всех чипах, что имеет свои преимущества, например, при обработке с помощью искусственного интеллекта.
В общем и целом, разработчикам от внедрения новых расширений должно стать удобнее, а конечные пользователи получат прирост в производительности и энергоэффективности процессоров.