Оптимизация для новых архитектур
Выпуск Intel Graphics Compiler (IGC) версии 2.38.2 знаменует собой важный шаг в подготовке к следующим релизам Intel Compute Runtime. Ключевым нововведением стала серия оптимизаций, специально нацеленных на графические процессоры архитектуры Xe2+. Это указывает на то, что драйверы и компилятор активно адаптируются под будущие или недавно вышедшие GPU Intel, обеспечивая более эффективную генерацию кода.
Особое внимание уделено архитектуре Panther Lake. В новой версии IGC реализована логика, позволяющая компилятору предпочтительно использовать SIMD16 вместо SIMD32 в тех случаях, когда давление на регистры (register pressure) делает такой выбор более выгодным. Это позволяет снизить потребление памяти и повысить пропускную способность вычислительных блоков.
Поддержка LLVM 22 и OpenCL
Компилятор получил обновления для совместимости с новейшей версией LLVM — LLVM 22. Это критически важно для разработчиков, использующих современные инструменты сборки, так как обеспечивает стабильность и доступ к новым возможностям базового фреймворка.
Также добавлена поддержка расширения OpenCL cl_khr_subgroup_rotate. Это расширение вводит встроенные функции OpenCL C для операции обмена данными внутри подгруппы (sub-group), позволяя «вращать» значения между рабочими элементами. Такая функциональность полезна для алгоритмов, требующих эффективного обмена данными между потоками внутри одного вычислительного блока без обращения к глобальной памяти.
Инструменты отладки и доступность
Для разработчиков драйверов и оптимизаторов кода стало возможным включать сборку с Address Sanitizer (ASan) на Linux. Это значительно упрощает поиск ошибок, связанных с обращением к памяти, на этапе компиляции шейдеров и графических вызовов.
Сводка изменений
| Категория | Детали изменений | Значение |
|---|---|---|
| Производительность | Оптимизации для Xe2+ | Улучшение рендеринга на новых GPU Intel |
| Архитектура | Приоритет SIMD16 над SIMD32 | Оптимизация для Panther Lake при высоком давлении на регистры |
| Совместимость | Поддержка LLVM 22 | Работа с актуальными инструментами сборки |
| OpenCL | cl_khr_subgroup_rotate | Эффективный обмен данными внутри подгруппы |
| Отладка | ASan для Linux | Обнаружение ошибок работы с памятью |
Исходный код IGC 2.38.2 уже доступен на GitHub. Ожидается, что за обновлением компилятора последует релиз Intel Compute Runtime, который интегрирует эти изменения в пользовательские драйверы для Windows и Linux.
Источник: Phoronix ↗
