Konačne specifikacije OpenCL 3.0 su već objavljene

Prije nekoliko mjeseci podijelili smo ovdje na blogu vijesti o puštanje razvoja OpenCL-a 3.0 od strane Koncern Khronos (Odgovoran za razvoj specifikacija za porodice OpenGL, Vulkan i OpenCL).

I to je bilo donedavno to najavljeno objavljivanje konačnih OpenCL 3.0 specifikacija, definiranje API-ja i proširenja jezika C za organizaciju višeplatformnog paralelnog računanja pomoću višejezgrenih CPU-a, GPU-a, FPGA-a, DSP-a i drugih specijaliziranih čipova od onih koji se koriste u superračunarima i cloud serverima do čipova koji se mogu naći u mobilnim uređajima i integriranoj tehnologiji.

U isto vrijeme objavljen je OpenCL SDK otvorenog koda s alatima, primjerima, dokumentacijom, datotekama zaglavlja, vezama za C ++ i C biblioteke za razvoj aplikacija kompatibilnih sa OpenCL 3.0.

Takođe je predstavljena inicijalna implementacija OpenCL 3.0 zasnovana na kompajleru Clang, koja je u fazi stručne provjere radi uključivanja u glavni paket LLVM-a. Kompanije kao što su IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments i Toshiba doprinijele su standardu.

Danas, Khronos® OpenCL ™ Radna grupa sa zadovoljstvom najavljuje objavljivanje finaliziranih specifikacija OpenCL 3.0, uključujući novu objedinjenu specifikaciju jezika OpenCL C 3.0, zajedno s ranim početnim izdanjem Khronos OpenCL SDK-a kako bi programerima omogućio brzi ustanak ubrzajte sa OpenCL-om.

OpenCL 3.0 glavne karakteristike

OpenCL 3.0 API sada pokriva sve verzije OpenCL-a (1.2, 2 x), bez davanja zasebnih specifikacija za svaku verziju.

OpenCL 3.0 nudi mogućnost proširenja osnovne funkcionalnosti integriranjem dodatnih specifikacija koje će se preklapati u obliku opcija bez blokiranja monolitne prirode OpenCL 1.2 / 2.X.

Jedina funkcionalnost koja ispunjava OpenCL 1.2 proglašen je obaveznimi sve značajke predložene u Specifikacije OpenCL 2.x nazivaju se neobaveznim.

Ovaj pristup pojednostavit će stvaranje specijaliziranih implementacija koje su kompatibilne s OpenCL 3.0 i proširit će spektar uređaja na kojima se OpenCL 3.0 može koristiti.

Na primjer, Proizvođači mogu implementirati podršku za OpenCL 3.0 bez primjene određenih OpenCL 2.x karakteristika. Da bi se pristupilo funkcijama neobaveznog jezika, sistem zahtjeva za testiranje je dodan u OpenCL 3.0 za procjenu podrške za pojedinačne API elemente, kao i posebne makronaredbe.

Objedinjavanje sa prethodno objavljenim specifikacijama olakšava prevođenje aplikacija u OpenCL 3.0. OpenCL 1.2 aplikacije moći će se pokretati na uređajima koji podržavaju OpenCL 3.0 bez izmjena.

Aplikacije OpenCL 2.x također ne zahtijevaju promjene koda, ali ako okruženje OpenCL 3.0 pruža potrebnu funkcionalnost (za buduću prenosivost, OpenCL 2.x aplikacije se podstiču da dodaju probne upite za procjenu kompatibilnosti sa funkcijama OpenCL 2.x koje se koriste).

Programeri upravljačkih programa s implementacijama OpenCL-a mogu lako nadograditi svoje proizvode na OpenCL 3.0 dodavanjem samo obrade zahtjeva za određene API pozive i postupnim povećanjem funkcionalnosti s vremenom.

Specifikacija OpenCL 3.0 usklađena je s okolinom, proširenjima i specifikacijama generičkog intermedijara SPIR-V, koji se također koristi u Vulkan API-ju. Podrška za SPIR-V 1.3 specifikaciju uključena je u glavnu OpenCL 3.0 kao opciona karakteristika. Podrška za operacije s podskupinama dodana je korištenjem posredne reprezentacije SPIR-V za računske jezgre.

pored toga dodata podrška za proširenje za izvođenje DMA operacija Asinhroni podržani na DMA sličnim DSP čipovima.

Asinhroni DMA omogućava korištenje DMA transakcija za asinkroni prijenos podataka između globalne i lokalne memorije, paralelno s tekućim proračunima ili drugim prijenosima podataka.

Specifikacija proširenja paralelnog programiranja za jezik C je ažuriran na verziju 3.0 i razvoj jezičkih proširenja OpenCL za C ++ je prekinut u korist projekta "C ++ za OpenCL".

Za prevođenje OpenCL-a kroz Vulkan API, predložen je clspv kompajler, koji pretvara OpenCL jezgre u Vulkan SPIR-V reprezentaciju i clvk sloj kako bi se osiguralo da OpenCL API radi na Vulkanu.

Izvor: https://www.khronos.org/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.