OpenCL 3.0 тодорхойлолтыг танилцуулав

OpenGL, Vulkan болон OpenCL гэр бүлийн техникийн үзүүлэлтүүдийг боловсруулах үүрэгтэй Khronos концерн, зарласан Олон цөмт CPU, GPU, FPGA, DSP болон суперкомпьютер болон үүлэн серверт ашигладаг бусад тусгай чипүүдийг ашиглан платформ хоорондын зэрэгцээ тооцооллыг зохион байгуулах Си хэлний API болон өргөтгөлүүдийг тодорхойлсон OpenCL 3.0 техникийн үзүүлэлтүүдийг боловсруулж дуусгах тухай. хөдөлгөөнт төхөөрөмж болон суулгагдсан технологид байдаг чипүүд рүү. OpenCL стандарт нь бүрэн нээлттэй бөгөөд лицензийн төлбөр шаарддаггүй. Стандартын ажилд IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments, Toshiba зэрэг компаниуд оролцсон.

Одоогийн шатанд техникийн тодорхойлолтыг түр зуурын статустай болгосон бөгөөд энэ нь дамжуулан илгээсэн санал хүсэлт дээр үндэслэн сайжруулах боломжтой гэсэн үг юм. GitHub. Санал хүсэлтийг харгалзан үзсэний дараа техникийн тодорхойлолтыг эцэслэн боловсруулж, одоо байгаа хэрэгжүүлэлтүүдийн нийцтэй байдлыг шалгахын тулд эцсийн туршилтын багцыг нийтлэх болно.

OpenCL 3.0 тодорхойлолтыг танилцуулав

Хамгийн онцлох Онцлог OpenCL 3.0:

  • 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 тооцоолох цөмд зориулж дэд бүлгүүдтэй ажиллахад зориулсан дэмжлэг нэмэгдсэн.
    OpenCL 3.0 тодорхойлолтыг танилцуулав

  • Шууд санах ойн хандалт бүхий 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++ програмуудыг угсрах ажлыг зохион байгуулдаг бөгөөд энэ нь зэрэгцээ програмуудыг үүсгэхэд хялбар болгодог.

    OpenCL 3.0 тодорхойлолтыг танилцуулав

  • Vulkan API-ээр дамжуулан OpenCL-ийг цацах хөрвүүлэгчийг санал болгов clspv, нь OpenCL цөмийг Vulkan SPIR-V дүрслэл болон давхарга болгон хувиргадаг clvk Vulkan дээр ажиллахын тулд OpenCL API-г идэвхжүүлэх.

    OpenCL 3.0 тодорхойлолтыг танилцуулав

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

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