Specifikimet përfundimtare të OpenCL 3.0 janë lëshuar tashmë

Disa muaj më parë kemi ndarë këtu në blog lajmet e lirimin e zhvillimit të OpenCL 3.0 nga Brenga Khronos (Përgjegjës për zhvillimin e specifikimeve për familjen OpenGL, Vulkan dhe OpenCL).

Dhe ishte deri vonë se njoftimi i specifikimeve përfundimtare të OpenCL 3.0, duke përcaktuar API-të dhe shtesat e gjuhës C për të organizuar llogaritjen paralele multiplatforme duke përdorur CPU-të multi-bërthamë, GPU-të, FPGA-të, DSP-të dhe çipat e tjerë të specializuar nga ato që përdoren në super kompjuterët dhe serverat cloud në patate të skuqura që mund të gjenden në pajisjet mobile dhe teknologjinë e integruar.

Në të njëjtën kohë, u lëshua një burim i hapur OpenCL SDK me mjete, shembuj, dokumentacion, skedarë header, lidhje për bibliotekat C ++ dhe C për zhvillimin e aplikacioneve në përputhje me OpenCL 3.0.

Paraqitet edhe implementimi fillestar i OpenCL 3.0 bazuar në përpiluesin Clang, i cili është në fazën e rishikimit të kolegëve për t'u përfshirë në paketën kryesore të LLVM. Kompani të tilla si IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments dhe Toshiba kanë kontribuar në standard.

Sot, Grupi Punues Khronos® OpenCL is është i kënaqur të njoftojë lëshimin e specifikimeve të përfunduara OpenCL 3.0, duke përfshirë një specifikim të ri të unifikuar të gjuhës OpenCL C 3.0, së bashku me një lëshim fillestar fillestar të një SDK Khronos OpenCL për të mundësuar zhvilluesit të ngrihen shpejt shpejtoni me OpenCL.

Karakteristikat kryesore të OpenCL 3.0

OpenCL 3.0 API tani mbulon të gjitha versionet e OpenCL (1.2, 2.x), pa siguruar specifikime të veçanta për secilin version.

OpenCL 3.0 ofron aftësinë për të zgjeruar funksionalitetin bazë duke integruar specifikime shtesë që do të mbivendosen në formën e opsioneve pa bllokuar natyrën monolite të OpenCL 1.2 / 2.X.

Vetëm funksionaliteti që plotëson OpenCL 1.2 deklarohet e detyrueshme, dhe të gjitha tiparet e propozuara në Specifikimet e OpenCL 2.x quhen opsionale.

Kjo qasje do të thjeshtojë krijimin e implementimeve të specializuara që janë në përputhje me OpenCL 3.0 dhe do të zgjerojë gamën e pajisjeve në të cilat mund të përdoret OpenCL 3.0.

P.sh. Prodhuesit mund të implementojnë mbështetje për OpenCL 3.0 pa zbatuar veçori specifike OpenCL 2.x. Për të hyrë në funksionet e gjuhës opsionale, një sistem i kërkesës së provës është shtuar në OpenCL 3.0 për të vlerësuar mbështetjen për elementet individuale të API-së, si dhe makrot speciale.

Unifikimi me specifikimet e lëshuara më parë e bën të lehtë përkthimin e aplikacioneve në OpenCL 3.0. Aplikacionet OpenCL 1.2 do të jenë në gjendje të ekzekutohen në pajisje që mbështesin OpenCL 3.0 pa modifikuar.

Aplikimet OpenCL 2.x gjithashtu nuk kërkon ndryshime të kodit, por nëse mjedisi OpenCL 3.0 ofron funksionalitetin e nevojshëm (për transportueshmërinë në të ardhmen, aplikacionet OpenCL 2.x inkurajohen të shtojnë pyetje testimi për të vlerësuar përputhshmërinë me tiparet OpenCL 2.x që përdoren).

Zhvilluesit e drejtuesve me implementime OpenCL mund të azhurnojnë lehtësisht produktet e tyre në OpenCL 3.0 duke shtuar vetëm përpunimin e kërkesave për thirrje të caktuara API dhe duke rritur gradualisht funksionalitetin me kalimin e kohës.

Specifikimi OpenCL 3.0 është rreshtuar me mjedisin, zgjerimet dhe specifikimet të ndërmjetme gjenerike SPIR-V, i cili përdoret gjithashtu në Vulkan API. Mbështetja për specifikimin SPIR-V 1.3 përfshihet në OpenCL 3.0 kryesore si një tipar opsional. Mbështetja për operacionet me nëngrupe është shtuar duke përdorur përfaqësimin e ndërmjetëm SPIR-V për bërthamat e llogaritjes.

Përveç kësaj shtoi mbështetjen për një shtesë për të kryer operacione DMA Asinkron i mbështetur në patate të skuqura DMA të ngjashme me DSP.

DMA asinkron bën të mundur përdorimin e transaksioneve DMA për të transferuar të dhëna midis memorjes globale dhe lokale në mënyrë asinkrone, paralelisht me llogaritjet e vazhdueshme ose transferime të tjera të të dhënave.

Specifikimi i shtesave programuese paralele për gjuhën C është azhurnuar në versionin 3.0 dhe zhvillimi i zgjerimeve të gjuhës OpenCL për C ++ është ndërprerë në favor të projektit "C ++ për OpenCL".

Për të përkthyer OpenCL përmes Vulkan API, propozohet përpiluesi i clspv, i cili konverton bërthamat OpenCL në përfaqësimin Vulkan SPIR-V dhe shtresën clvk për të siguruar që OpenCL API punon mbi Vulkan.

Fuente: https://www.khronos.org/


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.