LINUX.ORG.RU

OpenCL 3.1

 


0

2

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

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

В ядро OpenCL 3.1 также перенесены возможности, важные для AI- и HPC-нагрузок: subgroups с shuffle/rotate-операциями и расширенным набором типов, скалярные произведения целых чисел с вариантами насыщения и накопления, новые битовые операции, запрос рекомендуемого размера локальной рабочей группы и стандартный запрос UUID устройства, согласованный с поведением Vulkan.

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

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

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

>>> Источник: khronos.org/blog

★★

Проверено: dataman ()
Последнее исправление: hobbit (всего исправлений: 4)
Ответ на: комментарий от Reset

обязательная поддержка загрузки вычислительных ядер в формате SPIR-V

В правильном же направлении движутся. Зачем столько негатива?

Saakx
()
Ответ на: комментарий от Saakx

Пусть нижний слой оставляют, как драйвер для sycl пойдет :)

Reset ★★★★★
()
Ответ на: комментарий от Reset

OpenCL здорового человека называется Sycl

Higher-level programming model for OpenCL

Буду знать, благодарю.

Camel ★★★★★
()
Ответ на: комментарий от yvv1

Что ты под этим подразумеваешь? А так все основные вендоры поддерживаются (даже nvidia и apple), для каждого генерируется родное для вендора низкое представление, которое понимает драйвер.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Я просто совсем не в курсе, что это. Т.е. sycle транслируется в разные бэкенды, cuda, metal, opencl и т.д., так что ли?

yvv1
()
Ответ на: комментарий от yvv1

Работает как обычный компилятор. Kernel часть транслируется в assembly разных платформ - ptx для nvidia, hip для amd, level zero для intel, spirv для opencl платформ. Apple тут единственное исключение так как там один C++ код транслируется в другой похожий на C++ (Metal)

Reset ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.