Bemutatták az OpenCL 3.0 specifikációt

Az OpenGL, Vulkan és OpenCL család specifikációinak fejlesztéséért felelős Khronos konszern, bejelentett az OpenCL 3.0 specifikációk kidolgozásának befejezéséről, amelyek API-kat és a C nyelv kiterjesztéseit határozzák meg a többmagos CPU-k, GPU-k, FPGA-k, DSP-k és más speciális chipek felhasználásával, a szuperszámítógépekben és felhőszerverekben használt többplatformos párhuzamos számítástechnika megszervezéséhez a mobileszközökben és a beágyazott technológiában megtalálható chipekre. Az OpenCL szabvány teljesen nyitott, és nem igényel licencdíjat. A szabvány kidolgozásában olyan cégek vettek részt, mint az IBM, az NVIDIA, az Intel, az AMD, az Apple, az ARM, az Electronic Arts, a Qualcomm, a Texas Instruments és a Toshiba.

Jelenleg a specifikáció ideiglenes státuszba került, ami magában foglalja a pontosítás lehetőségét a visszajelzések alapján. GitHub. A megjegyzések figyelembe vétele után a specifikáció véglegesítésre kerül, és egy végső tesztcsomagot tesznek közzé a meglévő megvalósítások kompatibilitásának tesztelésére.

Bemutatták az OpenCL 3.0 specifikációt

Legfigyelemreméltóbb Jellemzők OpenCL 3.0:

  • Az OpenCL 3.0 API mostantól az OpenCL összes verzióját lefedi (1.2, 2.x), anélkül, hogy minden verzióhoz külön specifikációt adna. Az OpenCL 3.0 lehetővé teszi az alapvető funkciók kiterjesztését további specifikációk integrálásával, amelyek opciók formájában rétegződnek anélkül, hogy blokkolnák az OpenCL 1.2/2.X monolit jellegét.
  • Csak az OpenCL 1.2-nek megfelelő funkcionalitás kötelező, és az OpenCL 2.x specifikációiban javasolt összes szolgáltatás opcionálisnak minősül. Ez a megközelítés megkönnyíti az OpenCL 3.0-val kompatibilis egyedi megvalósítások létrehozását, és kibővíti azon eszközök körét, amelyeken az OpenCL 3.0 használható. Például a gyártók megvalósíthatják az OpenCL 3.0 támogatását az OpenCL 2.x speciális funkcióinak megvalósítása nélkül. Az opcionális nyelvi funkciók eléréséhez az OpenCL 3.0 hozzáadott egy tesztlekérdezési rendszert, amely lehetővé teszi az egyes API-elemek, valamint a speciális makrók támogatásának értékelését.
  • A korábban kiadott specifikációkkal való egyesítés megkönnyíti az alkalmazások OpenCL 3.0-ra való áttelepítését. Az OpenCL 1.2 alkalmazások módosítás nélkül futhatnak az OpenCL 3.0-t támogató eszközökön. Az OpenCL 2.x alkalmazások szintén nem igényelnek kódmódosítást, amíg az OpenCL 3.0 környezet biztosítja a szükséges funkcionalitást (a jövőbeli hordozhatóság érdekében az OpenCL 2.x alkalmazásoknak ajánlott tesztlekérdezések hozzáadása az OpenCL 2.x szolgáltatások támogatásának értékeléséhez használt). Az OpenCL-megvalósítással rendelkező illesztőprogram-fejlesztők könnyedén frissíthetik termékeiket OpenCL 3.0-ra, bizonyos API-hívásokhoz csak lekérdezésfeldolgozást adva, és idővel fokozatosan növelhetik a funkcionalitást.
  • Az OpenCL 3.0 specifikáció összhangban van a Vulkan API által is használt SPIR-V általános köztes reprezentáció környezetével, bővítményeivel és specifikációival. A SPIR-V 1.3 specifikáció támogatása az OpenCL 3.0 alapcsomagjában opcionális szolgáltatásként szerepel. Köztes ábrázolás használatával SPIR-V Az alcsoportokkal végzett műveletek támogatása hozzáadásra került a számítási magokhoz.
    Bemutatták az OpenCL 3.0 specifikációt

  • Támogatás hozzáadva az aszinkron DMA-műveletek végrehajtására szolgáló bővítményhez (Asynchronous DMA), amelyet a DSP-szerű chipek támogatnak közvetlen memória-hozzáféréssel. Az aszinkron DMA lehetővé teszi a DMA-tranzakciók használatát a globális és a lokális memória közötti aszinkron adatátvitelre, párhuzamosan számításokkal vagy egyéb adatátviteli műveletekkel.
  • A C párhuzamos programozási bővítmények specifikációja frissítve lett 3.0. verzió, és az OpenCL nyelvi bővítmények fejlesztése a C++-hoz leállt a „C++ for OpenCL” projekt javára. A C++ for OpenCL egy Clang/LLVM és alapú fordítóprogram műsorszórás C++ és OpenCL C kernelek SPIR-V köztes reprezentációba vagy alacsony szintű gépi kódba. A sugárzáson keresztül a SPIR-V a C++ alkalmazások összeállítását is megszervezi a SYCL sablonkönyvtár segítségével, ami leegyszerűsíti a párhuzamos alkalmazások létrehozását.

    Bemutatták az OpenCL 3.0 specifikációt

  • Javasoltak egy fordítót az OpenCL sugárzására a Vulkan API-n keresztül clspv, amely az OpenCL kerneleket Vulkan SPIR-V reprezentációvá alakítja, és egy réteget clvk hogy az OpenCL API működjön a Vulkanon.

    Bemutatták az OpenCL 3.0 specifikációt

Forrás: opennet.ru

Hozzászólás