ΠΠΎΠ½ΡΠ΅ΡΠ½ Khronos, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎΡΠΎ OpenGL, Vulkan ΠΈ OpenCL, ΠΠΎΠ·ΠΈΡΠΈΡΡΠ° Π½Π° OpenCL 3.0 Π·Π°Π²ΡΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ° API ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, GPU, FPGA, DSP ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅, Π²Π°ΡΠΈΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ Π² ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ Π΄ΠΎ ΡΠΈΠΏΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅. Π‘ΡΠ°Π½Π΄Π°ΡΡΡΡ OpenCL Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΈ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΊΡΠΈ. Π ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΡΡΠ°ΡΡΠΈΠ΅ Π²Π·Π΅Ρ Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΡΠΎ IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ΠΈ Toshiba.
ΠΠ° Π½Π°ΡΡΠΎΡΡΠΈΡ Π΅ΡΠ°ΠΏ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΈΠΌΠ° ΡΡΠ°ΡΡΡ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° (provisional), ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΠ°Π±ΠΎΡΠ΅Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½Π° ΠΏΡΠ΅Π· . Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π±ΡΠ΄Π°Ρ Π²Π·Π΅ΡΠΈ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΡΡΠ°ΡΡΡ ΡΠΈΠ½Π°Π»Π½Π° ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ :
- API OpenCL 3.0 ΡΠ΅Π³Π° ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° OpenCL (1.2, 2.x), Π±Π΅Π· Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° Π²ΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ. OpenCL 3.0 ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΡΠ΅Π· ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠ»Π°Π³Π²Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΈ, Π±Π΅Π· Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ Π½Π° OpenCL 1.2/2.X.
- ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° Π΅ ΡΠ°ΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠ° Π½Π° OpenCL 1.2, Π΄ΠΎΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ OpenCL 2.x, ΡΠ° ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ Π½Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ OpenCL 3.0, ΠΈ ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠΈ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° OpenCL 3.0. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° OpenCL 3.0, Π±Π΅Π· Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° OpenCL 2.x. ΠΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π² OpenCL 3.0 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° API, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΈ.
- Π£Π½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΏΡΠ΅Π²ΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° OpenCL 3.0. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° OpenCL 1.2 ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° OpenCL 3.0 Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° OpenCL 2.x ΡΡΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π°, Π½ΠΎ Π°ΠΊΠΎ ΡΡΠ΅Π΄Π°ΡΠ° OpenCL 3.0 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ (Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Π² Π±ΡΠ΄Π΅ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ OpenCL 2.x, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ OpenCL 2.x). Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° OpenCL ΡΠ΅ ΡΠ΅ ΡΡΡΠ΄ΡΡ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Π΄ΠΎ OpenCL 3.0, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ ΡΠ°ΠΌΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ API ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΉΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ.
- Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° OpenCL 3.0 Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎΡΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ SPIR-V, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² API Vulkan. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ SPIR-V 1.3 Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° OpenCL 3.0 ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ. Π§ΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΄ΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ΄Π³ΡΡΠΏΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ DMA ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ Π² DSP-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Asynchronous DMA Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° DMA ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π³Π»ΠΎΠ±Π°Π»Π½Π°ΡΠ° ΠΈ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Ρ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
- Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½Π° Π΄ΠΎ , Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π΅Π·ΠΈΠΊΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ OpenCL Π·Π° C++ Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° βC++ for OpenCLβ. C++ for OpenCL ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Clang/LLVM ΠΈ ΡΠ΄ΡΠ° Π½Π° C++ ΠΈ OpenCL C Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ SPIR-V ΠΈΠ»ΠΈ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄. Π§ΡΠ΅Π· ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡΡΠ° Π² SPIR-V ΡΡΡΠΎ Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠ±ΠΎΡΠΊΠ° Π½Π° C++ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΈ SYCL, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠ° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° OpenCL ΠΏΡΠ΅Π· API Vulkan ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ , ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ ΡΠ΄ΡΠ° OpenCL Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Vulkan SPIR-V, ΠΈ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° API OpenCL Π½Π°Π΄ Vulkan.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
