adblock check

Новый патч Intel для GCC позволит оптимизировать программы для разных поколений процессоров

Реализация FMV в GCC добавит поддержку APX и AVX10.2 с автовыбором оптимальных инструкций при запуске, закладывая фундамент для Diamond Rapids и Nova Lake
Обложка: Trashbox.ru

Команда разработчиков GCC начала подготовку к внедрению функции множественного версионирования (FMV) для новых наборов инструкций Intel APX и AVX10.2. Это позволит компилятору генерировать код, который будет автоматически выбирать наиболее быстрые инструкции в зависимости от возможностей процессора, на котором запущена программа, без необходимости выпуска отдельных бинарных файлов.

Этот метод, который уже поддерживается для AVX2 и AVX-512, теперь адаптируется для передовых расширений Intel. Реализация FMV через механизм «целевых атрибутов» в коде означает, что разработчики смогут создавать несколько версий одной функции, а приложение во время выполнения само выберет оптимальную — самую современную или, наоборот, самую совместимую.

Новый патч Intel для GCC позволит оптимизировать программы для разных поколений процессоров
Примеры использования атрибутов

Это нововведение крайне своевременно, так как готовит почву для грядущих процессоров Intel. Согласно документации, патчи GCC добавляют поддержку целевых атрибутов для Diamond Rapids (серверное решение) и Nova Lake (массовый сегмент), которые дебютируют с поддержкой APX и AVX10.2. Однако путь к релизу будет долгим: данные правки интегрируют в ветку GCC 17, ожидаемую лишь в следующем году.

Интересно, что поддержка этих инструкций уже была частично реализована в GCC 16, однако полноценное версионирование доберется до стабильного релиза только в следующей версии. Это особенно важно в свете недавних заявлений Intel, подтвердивших наличие AVX10.2 и APX в Nova Lake, что ранее ставилось под сомнение.

Источник

Limows
@Limows
Автор
Линуксоид, техно-ретро-блоггер со стажем
Консольщик
Компьютеры Компьютеры
20,2K участников
Вступить
Linux Linux
9,6K участников
Вступить
Комментариев пока нет
Оставьте комментарий...
Оставьте комментарий...