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 ★★★★★
()

Подскажите пжалста, где почитать про современные возможности OpenCL (ну ладно, в том числе Sycl) в простой форме? Ясно что CPU и DSP может всё что угодно, любые обращения к памяти и алгоритмы, но каковы ограничения работы на GPU, возможно немало ограничений снято? Как то 5 лет не обращал на эту область внимания вообще

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

По OpenCL не знаю. По sycl есть tutorial https://github.khronos.org/syclacademy/

Основные ограничения на ядра - нельзя звать malloc/new, нельзя рекурсию. С атомиками надо быть аккуратным, так как sycl subgroup имеет единый program counter и попытка изобрести spin lock приведет к зависанию

Чем хорош sycl - внутри ядер работает stl без каких либо модификаций :)

Reset ★★★★★
()

Интересно, актуальна ли вообще сейчас тема вычислений на потребительских видеокартах, учитывая общий перекос в сторону single- и half-precision.

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

Админы, сорян за флуд, но вы не могли бы мои 20 пунктов скора перекинуть этому парню? Чисто по человечески жаль его, сам через это прошёл.

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

Нет, админ считает, что я тупой и ленивый, могу и сам всё найти и прочитать. Этим он показывает веру в мои способности.

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

Смотря чего вычислять. Про double конечно надо забыть сразу. Например у apple вообще нет double никакого даже медленного :)

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

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

Сравните по возможностям эта два API и потом пообсуждаем про здоровье. Ещё мне очень интересно узнать, после перезагрузки GPU-линии в Интел, кто будет поодерживать и развивать SYCL? Khronos? Без денег Интел? Ага, сейчас!

VIT ★★
()
Ответ на: комментарий от I-Love-Microsoft

Подскажите пжалста, где почитать про современные возможности OpenCL

Очевидно, что здесь. Где же ещё?

https://www.khronos.org/opencl/
VIT ★★
()
Ответ на: комментарий от VIT

Ещё мне очень интересно узнать, после перезагрузки GPU-линии в Интел, кто будет поодерживать и развивать SYCL?

Это отсылка к dpc++? А что других реализаций не существует?

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

И то и другое. Оно живее Вовы Ленина и никто его не закапывал. Правда в том, что внутреннюю разработку никто не афиширует.

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

ога, в apple opencl версии 1.1, у nvidia 2.1 кажется и обновлять они эти версии не будут никогда, что-то не похоже на живое

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

Стандарты вполне себе выходят, неинтелевская реализация очень хорошо развивается

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

Здесь всё очень непросто. Нвидия - главный противник OpenCL, всячески саботирует его распространение, но ведёт внутренюю разработку.

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

Нафига им вести внутреннюю разработку? Логика в чем? В идеале производитель железа должен предоставлять и разрабатывать нижний слой, кронос делать спеку, а производитель компилятора пилить языковую поддержку. openCL это ни туда ни сюда

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

У каждого из тройки главных производителей графических карт своя мотивация.

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

Свежая информация, 11 ведущих компаний подтвердили полную поддержку OpenCL-3.1 в своих продуктах в течение этого года.

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