ВСрсия Π½Π° PoCL 5.0 с нСзависима рСализация Π½Π° стандарта OpenCL

Π‘Π΅ΡˆΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° вСрсията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° PoCL 5.0 (Portable Computing Language OpenCL), ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° внСдряванС Π½Π° стандарта OpenCL, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ нСзависимо ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ ускоритСли ΠΈ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ Π·Π° изпълнСниС Π½Π° OpenCL ядра Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»Π½ΠΈ процСсори . ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ спСциализирани процСсори ASIP (Application-Specific Instruction-set Processor) ΠΈ TTA (Transport Triggered Architecture) с VLIW Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

РСализацията Π½Π° основния ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° OpenCL Π΅ Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° LLVM, Π° Clang сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π΅Π½ ΠΊΡ€Π°ΠΉ Π·Π° OpenCL C. Π—Π° Π΄Π° осигури подходяща прСносимост ΠΈ производитСлност, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ядрото Π½Π° OpenCL ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ рСсурси Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄, ΠΊΠ°Ρ‚ΠΎ VLIW, супСрскаларСн, SIMD, SIMT, многоядрСн ΠΈ многонишков. Има ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ICD Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ (Installable Client Driver). Има Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Ρ‡Ρ€Π΅Π· CPU, ASIP (TCE/TTA), GPU, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° HSA Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ NVIDIA GPU (Ρ‡Ρ€Π΅Π· libcuda).

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π΅ Π½ΠΎΠ² β€žΠžΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½β€œ Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ изчислСния Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° OpenCL ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ към Π΄Ρ€ΡƒΠ³ΠΈ хостовС Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ΠΈ фоновия pocld процСс.
  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ CUDA внСдрява Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° OpenCL 3.0 ΠΊΠ°Ρ‚ΠΎ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ с ΠΎΠ±Ρ…Π²Π°Ρ‚, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier ΠΈ sub_group_ballot.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° процСсори, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° RISC-V Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° PoCL бСшС тСствана Π½Π° ΠΏΠ»Π°Ρ‚ΠΊΠ°Ρ‚Π° Starfive VisionFive 2, Π·Π°Ρ€Π΅Π΄Π΅Π½Π° с Ubuntu 23.10 срСда с LLVM 17 ΠΈ GCC 13.2.
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ cl_ext_float_atomics Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΎ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° FP32 ΠΈ FP64.
  • Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ cl_khr_command_buffer Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π΄ΠΎ вСрсия 0.9.4.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ СкспСримСнталСн Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° AlmaIF Π·Π° FPGA.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° Π΅ нСпълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставянС Π½Π° ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ SPIR 1.x/2.0. SPIR-V Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Clang/LLVM 17.0. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Clang/LLVM 10-13 Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€