OpenGL, Vulkan болон OpenCL гэр бүлийн техникийн үзүүлэлтүүдийг боловсруулах үүрэгтэй Khronos концерн,
Одоогийн шатанд техникийн тодорхойлолтыг түр зуурын статустай болгосон бөгөөд энэ нь дамжуулан илгээсэн санал хүсэлт дээр үндэслэн сайжруулах боломжтой гэсэн үг юм.
Хамгийн онцлох
- OpenCL 3.0 API нь одоо OpenCL-ийн бүх хувилбарыг (1.2, 2.x) хамарч байгаа бөгөөд хувилбар тус бүрд тус тусад нь тодорхойлолт өгөхгүй. OpenCL 3.0 нь OpenCL 1.2/2.X-ийн цул шинж чанарыг хаахгүйгээр сонголт хэлбэрээр давхарласан нэмэлт үзүүлэлтүүдийг нэгтгэх замаар үндсэн функцийг өргөтгөх боломжийг олгодог.
- Зөвхөн OpenCL 1.2-д нийцсэн функцийг заавал хийх ёстой гэж зарласан бөгөөд OpenCL 2.x техникийн үзүүлэлтэд санал болгосон бүх функцийг нэмэлт гэж ангилдаг. Энэ арга нь OpenCL 3.0-д нийцсэн захиалгат хэрэгжилтийг бий болгоход хялбар болгож, OpenCL 3.0-ийг ашиглах төхөөрөмжүүдийн хүрээг өргөжүүлэх болно. Жишээлбэл, үйлдвэрлэгчид OpenCL 3.0-ийн дэмжлэгийг OpenCL 2.x-ийн тусгай функцуудыг хэрэгжүүлэхгүйгээр хэрэгжүүлж болно. Нэмэлт хэлний онцлогт хандахын тулд OpenCL 3.0 нь API элементүүд болон тусгай макроуудын дэмжлэгийг үнэлэх боломжийг олгодог тестийн асуулгын системийг нэмсэн.
- Өмнө нь гаргасан техникийн үзүүлэлтүүдтэй нэгдсэн нь програмуудыг OpenCL 3.0 руу шилжүүлэхэд хялбар болгодог. OpenCL 1.2 програмууд нь OpenCL 3.0-ийг дэмждэг төхөөрөмжүүд дээр ямар ч өөрчлөлтгүйгээр ажиллах боломжтой болно. OpenCL 2 орчин нь шаардлагатай функцийг хангасан тохиолдолд OpenCL 3.0.x програмууд нь кодын өөрчлөлтийг шаарддаггүй (ирээдүйд зөөвөрлөх чадварыг баталгаажуулахын тулд OpenCL 2.x програмуудад OpenCL 2.x функцүүдийн дэмжлэгийг үнэлэхийн тулд туршилтын асуулга нэмэхийг зөвлөж байна. ашиглаж байна). OpenCL хэрэгжүүлэлттэй драйвер хөгжүүлэгчид бүтээгдэхүүнээ OpenCL 3.0 болгож хялбархан сайжруулж, зөвхөн тодорхой API дуудлагын хүсэлтийн боловсруулалтыг нэмж, үйл ажиллагааг аажмаар нэмэгдүүлэх боломжтой.
- OpenCL 3.0 тодорхойлолт нь Vulkan API-д мөн ашиглагддаг SPIR-V ерөнхий завсрын дүрслэлийн орчин, өргөтгөлүүд болон техникийн үзүүлэлтүүдтэй нийцдэг. SPIR-V 1.3 техникийн дэмжлэгийг үндсэн OpenCL 3.0-д нэмэлт функц болгон оруулсан болно. Завсрын төлөөлөл ашиглах замаар
SPIR-V тооцоолох цөмд зориулж дэд бүлгүүдтэй ажиллахад зориулсан дэмжлэг нэмэгдсэн.
- Шууд санах ойн хандалт бүхий DSP шиг чипүүдэд дэмжигдсэн асинхрон DMA үйлдлүүдийг (Асинхрон DMA) гүйцэтгэх өргөтгөлийн дэмжлэгийг нэмсэн. Асинхрон DMA нь тооцоолол эсвэл бусад өгөгдөл дамжуулах үйлдлүүдтэй зэрэгцэн дэлхийн болон дотоод санах ойн хооронд өгөгдөл дамжуулахын тулд DMA гүйлгээг ашиглах боломжийг олгодог.
- C Parallel Programming Extensions-ийн тодорхойлолтыг шинэчилсэн
хувилбар 3.0 , мөн C++-д зориулсан OpenCL хэлний өргөтгөлүүдийг хөгжүүлэх ажлыг “OpenCL-д зориулсан C++” төслийн дэмжсэнээр зогсоосон. OpenCL-д зориулсан C++ нь Clang/LLVM дээр суурилсан хөрвүүлэгч юмнэвтрүүлэг C++ болон OpenCL C цөмүүдийг SPIR-V завсрын дүрслэл эсвэл доод түвшний машины код болгон хувиргадаг. Нэвтрүүлгээр дамжуулан SPIR-V нь SYCL загварын номын санг ашиглан C++ програмуудыг угсрах ажлыг зохион байгуулдаг бөгөөд энэ нь зэрэгцээ програмуудыг үүсгэхэд хялбар болгодог. - Vulkan API-ээр дамжуулан OpenCL-ийг цацах хөрвүүлэгчийг санал болгов
clspv , нь OpenCL цөмийг Vulkan SPIR-V дүрслэл болон давхарга болгон хувиргадагclvk Vulkan дээр ажиллахын тулд OpenCL API-г идэвхжүүлэх.
Эх сурвалж: opennet.ru