Koncesioni Khronos, përgjegjës për zhvillimin e specifikimeve të familjes OpenGL, Vulkan dhe OpenCL, për publikimin e specifikimeve finalet , që përcaktojnë API-në dhe zgjerimet e gjuhës C për organizimin e llogaritjeve paralelave multidiste nga CPU-të multinë, GPU-të, FPGA-t, DSP-t dhe të tjera çipe të specializuar, nga ato që përdoren në superkompjuterë dhe serverë në re, deri te çipet që mund të gjenden në pajisjet mobile dhe në teknologjitë embedded. Standarti OpenCL është plotësisht i hapur dhe nuk kërkon pagesa licencash.
Njëkohësisht SDK e hapur OpenCL me mjete, shembuj, dokumentacion, skedarë përfshirës, lidhje për C++ dhe biblioteka C për zhvillimin e aplikacioneve, të cilat janë të përputhshme me OpenCL 3.0. Gjithashtu implementimi fillestar i OpenCL 3.0 mbi bazën e kompilatorit Clang, i cili është në fazën e shqyrtimit të patch-eve për t'u përfshirë në përbërjen kryesore të LLVM. Në punën për standardin morën pjesë kompani si IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments dhe Toshiba.
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
