Koncesioni Khronos, përgjegjës për zhvillimin e specifikimeve të familjes OpenGL, Vulkan dhe OpenCL, përfundimin e zhvillimit të specifikimeve OpenCL 3.0, të cilat përcaktojnë API dhe zgjerimet e gjuhës C për organizimin e llogaritjeve paralele ndëropërplatformë duke përdorur CPU me shumë bërthama, GPU, FPGA, DSP dhe çipa të tjerë të specializuar, nga ata që përdoren në superkompjuterë dhe serverë në re, deri te çipet që mund të takohen në pajisje celulare dhe teknologji të integruar. Standardi OpenCL është plotësisht i hapur dhe nuk kërkon pagesa licencash. Në punën për standardin morën pjesë kompani si IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments dhe Toshiba.
Në këtë fazë të tanishme, specifikimit iu dha statusi i provizorë (provisional), i cili nënkupton mundësinë e përmirësimit mbi baza të komenteve që janë dërguar përmes . Pas marrjes në konsideratë të vërejtjeve, specifikimi do të marrë statusin përfundimtar dhe do të publikohet një grup përfundimtar testimi për verifikimin e përputhshmërisë së realizimeve ekzistuese.
Pikat më të dukshme :
- API OpenCL 3.0 tani mbulon të gjitha versionet e OpenCL (1.2, 2.x) pa ofruar specifikime të veçanta për çdo version. OpenCL 3.0 parashikon mundësinë e zgjerimit të funksionalitetit bazë përmes integrimit të specifikimeve shtesë, të cilat do të mbivendosen në formën e opsioneve, duke mos penguar karakterin monolitik të OpenCL 1.2/2.x.
- Vetëm funksionaliteti që përputhet me OpenCL 1.2 është shpallur i detyrueshëm, ndërsa të gjitha mundësitë që ofrohen në specifikimet OpenCL 2.x janë kategorizuar si të opcionalshme. Ky qasje do të thjeshtësojë krijimin e implementimeve të specializuara që janë kompatibile me OpenCL 3.0 dhe do të zgjasë gamën e pajisjeve ku OpenCL 3.0 mund të përdoret. Për shembull, prodhuesit mund të zbatojnë mbështetje për OpenCL 3.0 pa zbatuar veçori të veçanta nga OpenCL 2.x. Për qasje në mundësitë opcionale të gjuhës në OpenCL 3.0, është shtuar një sistem kërkesash verifikimi, që lejon vlerësimin e mbështetjes për elemente të veçanta të API-t, si dhe makros të veçanta.
- Unifikimi me specifikimet e lëshuara më parë e bën më të lehtë përkthimin e aplikacioneve në OpenCL 3.0. Aplikacionet e OpenCL 1.2 do të funksionojnë në pajisjet që mbështesin OpenCL 3.0 pa pasur nevojë për ndryshime. Aplikacionet OpenCL 2.x gjithashtu nuk do të kërkojnë ndryshimin e kodit, por nëse mjedisi OpenCL 3.0 ofron funksionalitetin e nevojshëm (për të siguruar portabilitetin për aplikacionet OpenCL 2.x në të ardhmen, rekomandohet që të shtohen kërkesa verifikuese për të vlerësuar mbështetjen e mundësive të përdorura të OpenCL 2.x). Zhvilluesit e drejtorëve me zbatime të OpenCL do të jenë në gjendje të përditësojnë lehtësisht produktet e tyre në OpenCL 3.0 duke shtuar vetëm trajtimin e kërkesave për thirrjet e ndryshme të API-së dhe me kalimin e kohës të rrisin funksionalitetin.
- Specifikimi i OpenCL 3.0 është përputhur me ambientin, zgjerimet dhe specifikimet e përfaqësimit të përbashkët të ndërmjetëm SPIR-V, i cili po ashtu përdoret në API-në Vulkan. Mbështetje për specifikimin SPIR-V 1.3 është shtuar në përbërjen kryesore të OpenCL 3.0 si një mundësi opsionale. Përmes përdorimit të përfaqësimit të ndërmjetëm, për bërthamat llogaritëse është shtuar mbështetja për operacionet me nën-grupet.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r zgjerimin pĂ«r kryerjen e operacioneve DMA asinkrone (Asynchronous DMA), tĂ« mbĂ«shtetur nĂ« çipat e ngjashĂ«m me DSP me qasje tĂ« drejtpĂ«rdrejtĂ« nĂ« memorie. Asynchronous DMA ofron mundĂ«sinĂ« pĂ«r tĂ« pĂ«rdorur transaksione DMA pĂ«r transferimin e tĂ« dhĂ«nave midis memories globale dhe lokale nĂ« njĂ« mĂ«nyrĂ« asinkrone, paralelisht me llogaritĂ« e kryera ose operacione tĂ« tjera tĂ« transferimit tĂ« tĂ« dhĂ«nave.
- Specifikimi i zgjerimeve për programimin paralel në gjuhën C është përditësuar në , dhe zhvillimi i zgjerimeve gjuhësore OpenCL për C++ është ndalur në favor të projektit "C++ për OpenCL". C++ për OpenCL është një compiler i bazuar në Clang/LLVM dhe nukoret në C++ dhe OpenCL C në përfaqësimin ndërmjetës SPIR-V ose kodin e ulët të makinës. Nëpërmjet translitimit në SPIR-V është organizuar gjithashtu ndërtimi i aplikacioneve C++ që përdorin bibliotekën e shablloneve SYCL, që lehtëson krijimin e aplikacioneve paralel.
- Për translitimin e OpenCL përmes Vulkan API është propozuar compiler , i cili transformon nucle në përfaqësimin Vulkan SPIR-V, dhe një shtresë për të siguruar funksionimin e API OpenCL mbi Vulkan.
Burimi: opennet.ru
