Проблема фрагментации GPU-архитектур
В отличие от CPU, где доминируют стабильные ISA (x86, Arm), графические процессоры Intel (Alchemist, Battlemage) имеют собственные нативные наборы инструкций. Каждое новое поколение вводит новые аппаратные возможности, что заставляет компиляторы генерировать архитектурно-зависимый код. Intel решила эту проблему, внедрив PISA — виртуальный ISA, выступающий прослойкой между выходом компилятора и нативным машинным кодом.
Как работает PISA: аналог NVIDIA PTX
PISA позволяет разработчикам писать обобщенный код один раз, который затем финализируется в нативные инструкции для конкретной GPU. Это не означает полной совместимости всех программ на всех картах, но обеспечивает стабильную точку входа. Модель напоминает NVIDIA PTX: она сохраняет близость к железу (close-to-metal), поддерживая низкоуровневое программирование, встроенные библиотеки и ассемблер, но скрывает аппаратные различия.
Технические детали версии 0.1
Первая версия PISA базируется на модели выполнения и памяти OpenCL 3.0. Документация уже определяет базовые типы данных (целые, с плавающей точкой), адреса, доступ к регистрам и другие стандартные компоненты ISA. Это сигнал о том, что Intel продолжает инвестировать ресурсы в развитие графического стека, несмотря на слухи о задержках с Xe3/Xe4.
Сравнение подходов к виртуализации ISA
| Параметр | Intel PISA (v0.1) | NVIDIA PTX |
|---|---|---|
| Роль | Виртуальный ISA для компиляции | Промежуточное представление (IR) |
| Уровень абстракции | Высокий, но с доступом к железу | Низкий, близкий к металлу |
| Поддержка ассемблера | Да (inline assembly) | Да |
| Стандарт памяти | OpenCL 3.0 | CUDA Memory Model |
Значение для экосистемы
Введение PISA критически важно для разработчиков драйверов и создателей библиотек. Оно снижает порог входа для портирования софта на Intel Arc, так как отпадает необходимость поддерживать каждую микроархитектуру отдельно. Для конечных пользователей это может ускорить появление оптимизированных приложений и игр для GPU Battlemage и будущих поколений без задержек, связанных с перекомпиляцией под «железо».
Источник: TechPowerUp ↗
