ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° PoCL 1.4, нСзависна ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° стандардот OpenCL

Достапно ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ PoCL 1.4 (Portable Computing Language OpenCL), кој Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° стандардот OpenCL кој Π΅ нСзависСн ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ Π°ΠΊΡ†Π΅Π»Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½ΠΈ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ OpenCL ΠΊΠ΅Ρ€Π½Π΅Π»ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΈ процСсори. Код Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ дистрибуирани ΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π° МИВ. ΠŸΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° X86_64, MIPS32, ARM v7, AMD HSA APU ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΈ Ρ€Π°Π·Π½ΠΈ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ TTA процСсори (АрхитСктура ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΠ΄ транспорт) со Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° VLIW.

Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π½Π° Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ OpenCL Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π²Ρ€Π· основа Π½Π° LLVM, Π° Clang сС користи ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π΅Π΄Π΅Π½ ΠΊΡ€Π°Ρ˜ Π·Π° OpenCL C. Π—Π° Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ соодвСтна прСносливост ΠΈ пСрформанси, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π½Π° Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ OpenCL ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° користат Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ хардвСрски рСсурси Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС VLIW, супСрскалар, SIMD, SIMT, ΠΌΡƒΠ»Ρ‚ΠΈ-Ρ˜Π°Π΄Ρ€Π΅Π½ΠΈ ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈ-нишки. Достапна Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» Π½Π° ΠœΠšΠ‘
(Π”ΠΈΠ²Π΅Ρ€ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС инсталира). ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π·Π°Π΄Π½ΠΈ Π·Π° Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅ΠΊΡƒ процСсорот, ASIP (TCE/TTA), Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ процСсор Π₯БА ΠΈ NVIDIA GPU (CUDA).

Π’ Π½ΠΎΠ²Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°:

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° LLVM/Clang 9.0. ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° LLVM Π²Π΅Ρ€Π·ΠΈΠΈ постари ΠΎΠ΄ 6.0 Π΅ ΠΏΡ€Π΅ΠΊΠΈΠ½Π°Ρ‚Π°.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° посрСдни Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° процСсорот БПИР ΠΈ SPIR-V (сС користи Π²ΠΎ Vulkan API), кој ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΠΈ Π·Π° ΠΏΡ€Π΅Ρ‚ΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡˆΠ΅Ρ˜Π΄Π΅Ρ€ΠΈ Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΡ€Π΅ΡΠΌΠ΅Ρ‚ΡƒΠ²Π°ΡšΠ΅;
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π΄Ρ€Π°Ρ˜Π²Π΅Ρ€ Π·Π° pocl-accel со ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инфраструктура Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° хардвСрски Π·Π°Π±Ρ€Π·ΡƒΠ²Π°Ρ‡ΠΈ OpenCL 1.2 ΠΊΠΎΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ ΠΌΠ°ΠΏΠΈΡ€Π°Π½ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° (mmap);
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ моТност Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ pocl инсталации ΠΊΠΎΠΈ Π½Π΅ сС Π²Ρ€Π·Π°Π½ΠΈ Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ (ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС прСмСстат).

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€