OpenCL 3.1

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-Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ: azpitalde с 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 ΠΈ ΠΌΠ΅Π΄ΠΈΠ°-ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°ΠΌΠΈ.

Iturria: linux.org.ru