OpenCL 3.0 spetsifikatsiyasi joriy etildi

OpenGL, Vulkan va OpenCL oilasining spetsifikatsiyalarini ishlab chiqish uchun mas'ul bo'lgan Khronos konserni, e'lon Ko'p yadroli protsessorlar, GPUlar, FPGA'lar, DSP'lar va superkompyuterlar va bulutli serverlarda qo'llaniladigan boshqa ixtisoslashtirilgan chiplardan foydalangan holda platformalararo parallel hisoblashni tashkil qilish uchun API va C tilining kengaytmalarini belgilaydigan OpenCL 3.0 spetsifikatsiyalarini ishlab chiqishni yakunlash to'g'risida mobil qurilmalarda va o'rnatilgan texnologiyada topilishi mumkin bo'lgan chiplarga. OpenCL standarti butunlay ochiq va litsenziya to'lovlarini talab qilmaydi. Standart ustida ishlashda IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments va Toshiba kabi kompaniyalar ishtirok etdi.

Hozirgi bosqichda spetsifikatsiyaga vaqtinchalik maqom berildi, bu orqali yuborilgan fikr-mulohazalar asosida takomillashtirish imkoniyatini nazarda tutadi. GitHub. Sharhlar hisobga olinsa, spetsifikatsiya yakunlanadi va mavjud ilovalarning muvofiqligini tekshirish uchun yakuniy test to'plami nashr etiladi.

OpenCL 3.0 spetsifikatsiyasi joriy etildi

Eng diqqatga sazovor xususiyatlari OpenCL 3.0:

  • OpenCL 3.0 API endi OpenCL ning barcha versiyalarini (1.2, 2.x) qamrab oladi, har bir versiya uchun alohida spetsifikatsiyalar taqdim etmaydi. OpenCL 3.0 OpenCL 1.2/2.X ning monolitik tabiatini bloklamasdan, variantlar ko‘rinishida qatlamlangan qo‘shimcha spetsifikatsiyalarni birlashtirish orqali asosiy funksionallikni kengaytirish imkoniyatini beradi.
  • Faqat OpenCL 1.2 ga mos keladigan funksionallik majburiy deb e'lon qilinadi va OpenCL 2.x spetsifikatsiyalarida taklif qilingan barcha xususiyatlar ixtiyoriy deb tasniflanadi. Ushbu yondashuv OpenCL 3.0 bilan mos keluvchi maxsus ilovalarni yaratishni osonlashtiradi va OpenCL 3.0 dan foydalanish mumkin bo‘lgan qurilmalar doirasini kengaytiradi. Misol uchun, ishlab chiqaruvchilar OpenCL 3.0-ni qo'llab-quvvatlashni OpenCL 2.x-ning o'ziga xos xususiyatlarini amalga oshirmasdan amalga oshirishlari mumkin. Ixtiyoriy til xususiyatlariga kirish uchun OpenCL 3.0 alohida API elementlarini, shuningdek, maxsus makrolarni qo‘llab-quvvatlashni baholash imkonini beruvchi test so‘rovlari tizimini qo‘shdi.
  • Ilgari chiqarilgan spetsifikatsiyalar bilan birlashtirish ilovalarni OpenCL 3.0 ga ko'chirishni osonlashtiradi. OpenCL 1.2 ilovalari OpenCL 3.0 ni qo‘llab-quvvatlaydigan qurilmalarda o‘zgartirishlarsiz ishlay oladi. OpenCL 2 muhiti kerakli funksionallikni ta'minlasa, OpenCL 3.0.x ilovalari ham kodni o'zgartirishni talab qilmaydi (kelajakda portativlikni ta'minlash uchun OpenCL 2.x ilovalari OpenCL 2.x xususiyatlarini qo'llab-quvvatlashni baholash uchun test so'rovlarini qo'shish tavsiya etiladi. foydalanilmoqda). OpenCL ilovalariga ega drayver ishlab chiquvchilari o'z mahsulotlarini OpenCL 3.0 ga osongina yangilashlari mumkin, faqat ma'lum API qo'ng'iroqlari uchun so'rovlarni qayta ishlashni qo'shishlari va vaqt o'tishi bilan funksionallikni asta-sekin oshirishlari mumkin.
  • OpenCL 3.0 spetsifikatsiyasi atrof-muhit, kengaytmalar va SPIR-V umumiy oraliq taqdimotining spetsifikatsiyalari bilan mos keladi, bu Vulkan API tomonidan ham qo'llaniladi. SPIR-V 1.3 spetsifikatsiyasini qo'llab-quvvatlash ixtiyoriy xususiyat sifatida asosiy OpenCL 3.0 tarkibiga kiritilgan. Oraliq vakillikdan foydalanish orqali SPIR-V hisoblash yadrolari uchun kichik guruhlar bilan operatsiyalarni qo'llab-quvvatlash qo'shildi.
    OpenCL 3.0 spetsifikatsiyasi joriy etildi

  • To'g'ridan-to'g'ri xotiraga kirish imkoniyatiga ega DSP-ga o'xshash chiplarda qo'llab-quvvatlanadigan asinxron DMA operatsiyalarini (Asinxron DMA) amalga oshirish uchun kengaytmani qo'llab-quvvatlash qo'shildi. Asinxron DMA hisob-kitoblar yoki boshqa ma'lumotlarni uzatish operatsiyalari bilan parallel ravishda global va mahalliy xotira o'rtasida asinxron ravishda ma'lumotlarni uzatish uchun DMA tranzaksiyalaridan foydalanish imkonini beradi.
  • C Parallel Programming Extensions spetsifikatsiyasi yangilandi 3.0 versiyasi, va C++ uchun OpenCL til kengaytmalarini ishlab chiqish “OpenCL uchun C++” loyihasi foydasiga toʻxtatildi. OpenCL uchun C++ bu Clang/LLVM va asosidagi kompilyator eshittirish C++ va OpenCL C yadrolarini SPIR-V oraliq vakillik yoki past darajadagi mashina kodiga aylantiradi. Translyatsiya orqali SPIR-V, shuningdek, SYCL shablonlari kutubxonasidan foydalangan holda C++ dasturlarini yig'ishni tashkil qiladi, bu parallel ilovalarni yaratishni osonlashtiradi.

    OpenCL 3.0 spetsifikatsiyasi joriy etildi

  • Vulkan API orqali OpenCLni translyatsiya qilish uchun kompilyator taklif qilindi clspv, bu OpenCL yadrolarini Vulkan SPIR-V ko'rinishiga va qatlamga aylantiradi clvk OpenCL API-ni Vulkanning tepasida ishlashini yoqish uchun.

    OpenCL 3.0 spetsifikatsiyasi joriy etildi

Manba: opennet.ru

a Izoh qo'shish