OpenCL standartini mustaqil amalga oshirish bilan PoCL 5.0 versiyasi

PoCL 5.0 loyihasining (Portable Computing Language OpenCL) nashri chop etildi, u grafik tezlatgich ishlab chiqaruvchilardan mustaqil bo‘lgan va OpenCL yadrolarini har xil turdagi grafikalar va markaziy protsessorlarda bajarish uchun turli backendlardan foydalanish imkonini beruvchi OpenCL standartini amalga oshirishni ishlab chiqadi. . Loyiha kodi MIT litsenziyasi ostida tarqatiladi. X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU platformalarida va VLIW arxitekturasiga ega turli ixtisoslashtirilgan ASIP (Ilovaga xos ko'rsatmalar to'plami protsessor) va TTA (Transport tetiklangan arxitektura) protsessorlarida ishlashni qo'llab-quvvatlaydi.

OpenCL yadro kompilyatorining amalga oshirilishi LLVM asosida qurilgan va Clang OpenCL C uchun old qism sifatida ishlatiladi. To'g'ri portativlik va ishlashni ta'minlash uchun OpenCL yadro kompilyatori VLIW, superscalar, SIMD, SIMT, ko'p yadroli va ko'p tarmoqli kabi kod bajarilishini parallellashtirish uchun turli apparat resurslaridan foydalanishi mumkin bo'lgan kombinatsiyalangan funktsiyalarni yaratishi mumkin. ICD drayverlarini qo'llab-quvvatlash mavjud (O'rnatish mumkin bo'lgan mijoz drayveri). CPU, ASIP (TCE/TTA), HSA arxitekturasiga asoslangan GPU va NVIDIA GPU (libcuda orqali) orqali ishlashni qo'llab-quvvatlash uchun backendlar mavjud.

Yangi versiyada:

  • OpenCL buyruqlarini qayta ishlashni tarmoqdagi boshqa xostlarga o'tkazish orqali taqsimlangan hisoblashni tashkil qilish uchun mo'ljallangan yangi "Remote" backend amalga oshirildi.
  • CUDA drayveri atom operatsiyalari, qamrovli o'zgaruvchilar, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier va sub_group_ballot kabi OpenCL 3.0 ning qo'shimcha funktsiyalari va kengaytmalarini amalga oshiradi.
  • RISC-V arxitekturasiga asoslangan protsessorlarni qo'llab-quvvatlash yaxshilandi. PoCL ishlashi LLVM 2 va GCC 23.10 bilan Ubuntu 17 muhiti o'rnatilgan Starfive VisionFive 13.2 platasida sinovdan o'tkazildi.
  • cl_ext_float_atomics kengaytmasi FP32 va FP64 qo'llab-quvvatlashi bilan amalga oshirildi.
  • cl_khr_command_buffer kengaytmasini amalga oshirish 0.9.4 versiyasiga yangilandi.
  • FPGAlar uchun eksperimental AlmaIF backend taklif qilindi.
  • SPIR 1.x/2.0 shaderlarining oraliq namoyishi uchun toʻliq boʻlmagan yordam olib tashlandi. SPIR-V tavsiya etilgan oraliq shader tili sifatida e'lon qilingan.
  • Clang/LLVM 17.0 uchun qo'shimcha qo'llab-quvvatlash. Clang/LLVM 10-13-ni qo'llab-quvvatlash eskirgan.

Manba: opennet.ru

a Izoh qo'shish