Objavljene končne specifikacije OpenCL 3.0

Koncern Khronos, odgovoren za razvoj specifikacij družine OpenGL, Vulkan in OpenCL, napovedal ob objavi končnih specifikacij OpenCL 3.0, definiranje API-jev in razširitev jezika C za organizacijo vzporednega računalništva na več platformah z uporabo večjedrnih CPU-jev, GPE-jev, FPGA-jev, DSP-jev in drugih specializiranih čipov, od tistih, ki se uporabljajo v superračunalnikih in strežnikih v oblaku, do čipov, ki jih je mogoče najti v mobilnih napravah in vgrajena tehnologija. Standard OpenCL je popolnoma odprt in ne zahteva licenčnine.

Hkrati objavljeno odprt OpenCL SDK z orodji, primeri, dokumentacijo, datotekami glave, C++ vezavami in C knjižnicami za razvoj aplikacij, združljivih z OpenCL 3.0. tudi ki jih zastopa začetna izvedba OpenCL 3.0 na osnovi prevajalnika Clang, ki je v fazi pregleda popravkov za vključitev v glavno strukturo LLVM. Pri delu na standardu so sodelovala podjetja, kot so IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments in Toshiba.

Objavljene končne specifikacije OpenCL 3.0

Najbolj opazen funkcije OpenCL 3.0:

  • API OpenCL 3.0 zdaj pokriva vse različice OpenCL (1.2, 2.x), ne da bi zagotovil ločene specifikacije za vsako različico. OpenCL 3.0 ponuja možnost razširitve osnovne funkcionalnosti z integracijo dodatnih specifikacij, ki bodo večplastne v obliki možnosti, ne da bi blokirale monolitno naravo OpenCL 1.2/2.X.
  • Samo funkcionalnost, ki je v skladu z OpenCL 1.2, je razglašena za obvezno, vse funkcije, predlagane v specifikacijah OpenCL 2.x, pa so razvrščene kot neobvezne. Ta pristop bo olajšal ustvarjanje izvedb po meri, ki so združljive z OpenCL 3.0, in bo razširil obseg naprav, na katerih je mogoče uporabljati OpenCL 3.0. Na primer, proizvajalci lahko implementirajo podporo za OpenCL 3.0, ne da bi implementirali posebne funkcije OpenCL 2.x. Za dostop do izbirnih jezikovnih funkcij je OpenCL 3.0 dodal sistem testnih poizvedb, ki vam omogoča ovrednotenje podpore posameznih elementov API, kot tudi posebnih makrov.
  • Poenotenje s predhodno izdanimi specifikacijami olajša selitev aplikacij na OpenCL 3.0. Aplikacije OpenCL 1.2 se bodo lahko izvajale na napravah, ki podpirajo OpenCL 3.0 brez sprememb. Aplikacije OpenCL 2.x prav tako ne bodo zahtevale sprememb kode, dokler okolje OpenCL 3.0 zagotavlja zahtevano funkcionalnost (za zagotovitev prihodnje prenosljivosti je aplikacijam OpenCL 2.x priporočljivo dodati testne poizvedbe za oceno podpore za funkcije OpenCL 2.x biti izkoriščen). Razvijalci gonilnikov z implementacijami OpenCL lahko enostavno nadgradijo svoje izdelke na OpenCL 3.0, dodajo samo obdelavo poizvedb za določene klice API-ja in postopoma povečajo funkcionalnost skozi čas.
  • Specifikacija OpenCL 3.0 je usklajena z okoljem, razširitvami in specifikacijami generične vmesne predstavitve SPIR-V, ki jo uporablja tudi Vulkan API. Podpora za specifikacijo SPIR-V 1.3 je vključena v jedro OpenCL 3.0 kot izbirna funkcija. Z uporabo vmesne reprezentacije SPIR-V za računalniška jedra je dodana podpora za delovanje s podskupinami.
    Objavljene končne specifikacije OpenCL 3.0

  • Dodana podpora za razširitev za izvajanje asinhronih operacij DMA (Asynchronous DMA), podprta v DSP podobnih čipih z neposrednim dostopom do pomnilnika. Asinhroni DMA omogoča uporabo transakcij DMA za asinhroni prenos podatkov med globalnim in lokalnim pomnilnikom, vzporedno z izračuni ali drugimi operacijami prenosa podatkov.
  • Specifikacija razširitev vzporednega programiranja C je bila posodobljena na različica 3.0, razvoj jezikovnih razširitev OpenCL za C++ pa je bil prekinjen v korist projekta »C++ za OpenCL«. C++ za OpenCL je prevajalnik, ki temelji na Clang/LLVM in oddajanje Jedra C++ in OpenCL v vmesno predstavitev SPIR-V ali nizkonivojsko strojno kodo. Z oddajanjem SPIR-V organizira tudi sestavljanje aplikacij C++ s pomočjo knjižnice predlog SYCL, ki poenostavlja ustvarjanje vzporednih aplikacij.

    Objavljene končne specifikacije OpenCL 3.0

  • Predlagan je bil prevajalnik za oddajanje OpenCL prek API-ja Vulkan clspv, ki pretvori jedra OpenCL v predstavitev Vulkan SPIR-V, in plast clvk da omogočite API-ju OpenCL, da deluje na vrhu Vulkana.

    Objavljene končne specifikacije OpenCL 3.0

Vir: opennet.ru

Dodaj komentar