PoCL 6.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 drayverini 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:
- Clang/LLVM 18.0 uchun qo‘shimcha qo‘llab-quvvatlash, LLVM 10, 11, 12 va 13 uchun qo‘llab-quvvatlash to‘xtatildi.
- Operatsiyalarni parallellashtirish va vazifalarni bajarishni rejalashtirish uchun Intel tomonidan ishlab chiqilgan OneTBB kutubxonasidan foydalangan holda yangi cpu-tbb backend amalga oshirildi.
- CPUda OpenCL yadrolarining bajarilishini ta'minlaydigan protsessor backendida OpenMP parallel dasturlash standartini qo'llab-quvvatlash qo'shildi, clGetDeviceAndHostTimer() usuli qo'shildi va cl_pocl_svm_rect, cl_pocl_command_buffer_svm_svm va cl_comffpooterbu.
- OpenCL buyruqlarini qayta ishlashni tarmoqdagi boshqa xostlarga o'tkazish orqali taqsimlangan hisoblashni tashkil qilish uchun mo'ljallangan "Remote" backend, CG SVM (Coarse-Grain Shared Virtual Memory) uchun qo'shimcha qo'llab-quvvatlash, kirish imkoniyatini berdi. Vsock aloqa protokoli yordamida backend va clCompileProgram() va clLinkProgram() funksiyalaridan foydalangan holda dasturlarni kompilyatsiya qilish va ulash uchun yordam.
- Level Zero API-dan foydalanadigan LevelZero backend 4 GB dan katta buferlarni yaratishga imkon beradi va sinxronizatsiya jarayonlari uchun optimallashtirish amalga oshiriladi.
- CUDA backendida sub_group_shuffle va sub_group_shuffle_xor operatsiyalari amalga oshirildi va CL_DEVICE_MAX_MEM_ALLOC_SIZE chegarasi oshirildi.
Manba: opennet.ru
