OpenCL стандартын бие даасан хэрэгжилт бүхий PoCL 5.0 хувилбар

График хурдасгуур үйлдвэрлэгчдээс хараат бус, өөр өөр төрлийн график болон төв процессор дээр OpenCL цөмүүдийг ажиллуулах янз бүрийн арын хэсгийг ашиглах боломжийг олгодог OpenCL стандартын хэрэгжилтийг хөгжүүлж буй PoCL 5.0 төслийн хувилбар (Portable Computing Language OpenCL) хэвлэгдсэн. . Төслийн кодыг MIT лицензийн дагуу түгээдэг. X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU платформууд болон VLIW архитектуртай төрөл бүрийн тусгайлсан ASIP (Програмын тусгай зааварчилгааны процессор) болон TTA (Transport Triggered Architecture) процессорууд дээр ажиллахыг дэмждэг.

OpenCL цөм хөрвүүлэгчийн хэрэгжилт нь LLVM дээр суурилагдсан бөгөөд Clang нь OpenCL C-ийн урд хэсэг болгон ашиглагддаг. Зохистой зөөвөрлөх чадвар, гүйцэтгэлийг хангахын тулд OpenCL цөмийн хөрвүүлэгч нь VLIW, суперскаляр, SIMD, SIMT, олон цөмт, олон урсгалт зэрэг кодын гүйцэтгэлийг зэрэгцүүлэхийн тулд янз бүрийн техник хангамжийн нөөцийг ашиглаж болох хослол функцуудыг үүсгэж болно. ICD драйверуудыг (Суулгах боломжтой үйлчлүүлэгч драйвер) дэмждэг. CPU, ASIP (TCE/TTA), HSA архитектурт суурилсан GPU болон NVIDIA GPU (libcuda-аар) -ээр дамжуулан ажиллагааг дэмжих арын хэсэг байдаг.

Шинэ хувилбарт:

  • OpenCL командуудын боловсруулалтыг арын pocld процессыг ажиллуулж байгаа сүлжээн дэх бусад хостууд руу шилжүүлэх замаар тархсан тооцооллыг зохион байгуулах зорилготой шинэ "Алсын" backend хэрэгжсэн.
  • CUDA драйвер нь OpenCL 3.0-ийн атомын үйлдэл, хамрах хүрээний хувьсагч, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, sub_group_саналын хуудас гэх мэт нэмэлт боломжууд болон өргөтгөлүүдийг хэрэгжүүлдэг.
  • RISC-V архитектурт суурилсан CPU-ийн сайжруулсан дэмжлэг. PoCL-ийн ажиллагааг LLVM 2 болон GCC 23.10 бүхий Ubuntu 17 орчинтой Starfive VisionFive 13.2 самбар дээр туршсан.
  • cl_ext_float_atomics өргөтгөлийг FP32 болон FP64-ийн дэмжлэгтэйгээр хэрэгжүүлсэн.
  • cl_khr_command_buffer өргөтгөлийн хэрэгжилтийг 0.9.4 хувилбар болгон шинэчилсэн.
  • FPGA-д зориулсан туршилтын AlmaIF backend-ийг санал болгосон.
  • SPIR 1.x/2.0 шэйдерүүдийн завсрын төлөөлөлд зориулсан бүрэн бус дэмжлэгийг устгасан. SPIR-V нь санал болгож буй завсрын шэйдер хэлээр зарлагдлаа.
  • Clang/LLVM 17.0-д зориулсан дэмжлэг нэмэгдсэн. Clang/LLVM 10-13-ын дэмжлэгийг зогсоосон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх