Домой Статьи и аналитика Технологии OpenCL 3.1: обязательный SPIR-V и оптимизации для ИИ

OpenCL 3.1: обязательный SPIR-V и оптимизации для ИИ

Обновление открытого стандарта для кроссплатформенных вычислений на CPU, GPU и NPU принесло поддержку промежуточного представления SPIR-V и новые инструменты для AI.

OpenCL 3.1: обязательный SPIR-V и оптимизации для ИИ
OpenCL 3.1: обязательный SPIR-V и оптимизации для ИИ — иллюстрация к материалу. Источник: linux.org.ru

5 мая консорциум Khronos официально представил OpenCL 3.1 — свежее обновление открытого стандарта, предназначенного для кроссплатформенных вычислений на базе CPU, GPU, DSP, NPU и специализированных ускорителей. Релиз был приурочен к профессиональной конференции IWOCL 2026 и продолжает развитие модели OpenCL 3.x, где функциональные возможности сначала тестируются в качестве расширений, а затем интегрируются в обязательное ядро стандарта.

Ключевые изменения и SPIR-V

Центральным нововведением OpenCL 3.1 стала обязательная поддержка загрузки вычислительных ядер в формате SPIR-V для всех совместимых реализаций. Данный стандарт используется в качестве переносимого промежуточного представления, которое может быть получено, например, с помощью инструментов LLVM/Clang или SPIR-V LLVM Translator. Переход на SPIR-V упрощает использование OpenCL в качестве backend-решения для SYCL, chipStar и других специализированных компиляторов, а также позволяет разработчикам распространять программные ядра в предварительно скомпилированном виде, минуя передачу исходного кода.

Оптимизация для AI и HPC

В ядро стандарта были перенесены важные инструменты, критичные для работы с задачами искусственного интеллекта и высокопроизводительными вычислениями (HPC):

  • Поддержка subgroups с операциями shuffle/rotate и расширенным набором типов данных.
  • Скалярные произведения целых чисел с поддержкой режимов накопления и насыщения.
  • Актуализированный набор битовых операций.
  • Функция запроса рекомендуемого размера локальной рабочей группы.
  • Стандартизированный запрос UUID устройства, который теперь полностью согласован с аналогичным поведением в Vulkan.

Языковые улучшения и поддержка

Среди прочих изменений стоит выделить расширение языковых возможностей без обязательного подключения дополнительных модулей, обновленный printf в OpenCL C (теперь с поддержкой модификаторов z и t), а также уточнение семантики CL_DEVICE_HOST_UNIFIED_MEMORY. Кроме того, была добавлена возможность передачи нулевого размера для аргументов локальной памяти и упрощена процедура синхронизации при проверке состояния события CL_COMPLETE.

Активную работу над внедрением OpenCL 3.1 уже ведут такие гиганты индустрии, как Arm, Imagination, Intel и Qualcomm. Со стороны открытого ПО Khronos выделяет проект Rusticl в составе Mesa, а также реализации PoCL и CLVK. Параллельно продолжается развитие слоев совместимости, которые позволяют запускать OpenCL поверх графических API Vulkan и DirectX 12, что обеспечивает работу стандарта даже на системах, не имеющих нативных драйверов.

Планы на будущее

В консорциуме Khronos уже определили следующие этапы развития технологии. В будущих версиях планируется внедрение командных буферов для низкоуровневого повторного запуска задач, доработка единой общей памяти, поддержка матричных операций в совместном режиме, а также интеграция новых форматов данных для работы с нейросетями и углубленная совместимость с Vulkan, DirectX 12 и современными медиа-пайплайнами.

Источник: https://www.linux.org.ru