ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ OpenCL Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° LLVM, Π° Clang ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΏΡΠ΅Π΄Π΅Π½ ΠΊΡΠ°Ρ Π·Π° OpenCL C. ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π° ΠΏΡΠ΅Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ, ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ OpenCL ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ
Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ VLIW, ΡΡΠΏΠ΅ΡΡΠΊΠ°Π»Π°Ρ, SIMD, SIMT, ΠΌΡΠ»ΡΠΈ-ΡΠ°Π΄ΡΠ΅Π½ΠΈ ΠΈ ΠΌΡΠ»ΡΠΈ-Π½ΠΈΡΠΊΠΈ. ΠΠΎΡΡΠ°ΠΏΠ½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» Π½Π° ΠΠΠ
(ΠΠΈΠ²Π΅Ρ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°). ΠΠΎΡΡΠΎΡΠ°Ρ Π·Π°Π΄Π½ΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ, ASIP (TCE/TTA), Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°
LLVM/Clang 9.0 . ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° LLVM Π²Π΅ΡΠ·ΠΈΠΈ ΠΏΠΎΡΡΠ°ΡΠΈ ΠΎΠ΄ 6.0 Π΅ ΠΏΡΠ΅ΠΊΠΈΠ½Π°ΡΠ°. - ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈ ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ
Π‘ΠΠΠ ΠΈSPIR-V (ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Vulkan API), ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ Π·Π° ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΠ΄Π΅ΡΠΈ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π°ΡΠ΅; - ΠΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π΄ΡΠ°ΡΠ²Π΅Ρ Π·Π° pocl-accel ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° Ρ Π°ΡΠ΄Π²Π΅ΡΡΠΊΠΈ Π·Π°Π±ΡΠ·ΡΠ²Π°ΡΠΈ OpenCL 1.2 ΠΊΠΎΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΌΠ°ΠΏΠΈΡΠ°Π½ ΡΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° (mmap);
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ pocl ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ Π²ΡΠ·Π°Π½ΠΈ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ (ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ°Ρ).
ΠΠ·Π²ΠΎΡ: opennet.ru