Megjelent az OpenCL 3.0 végleges specifikációja

Az OpenGL, Vulkan és OpenCL család specifikációinak fejlesztéséért felelős Khronos konszern, bejelentett a végleges előírások közzétételéről OpenCL 3.0, API-k és a C nyelv kiterjesztései a többmagos CPU-k, GPU-k, FPGA-k, DSP-k és más speciális chipek felhasználásával a többplatformos párhuzamos számítástechnika megszervezéséhez, a szuperszámítógépekben és felhőszerverekben használt chipektől a mobileszközökben, ill. beépített technológia. Az OpenCL szabvány teljesen nyitott, és nem igényel licencdíjat.

Egyidejűleg közzétett Nyissa meg az OpenCL SDK-t eszközökkel, példákkal, dokumentációval, fejlécfájlokkal, C++-összerendelésekkel és C-könyvtárakkal az OpenCL 3.0-val kompatibilis alkalmazások fejlesztéséhez. Is bemutatott az OpenCL 3.0 kezdeti implementációja a Clang fordítón alapulva, amely a javítások felülvizsgálatának szakaszában van, hogy bekerüljön az LLVM fő szerkezetébe. 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.

Megjelent az OpenCL 3.0 végleges specifikációja

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.
    Megjelent az OpenCL 3.0 végleges specifikációja

  • 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.

    Megjelent az OpenCL 3.0 végleges specifikációja

  • 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.

    Megjelent az OpenCL 3.0 végleges specifikációja

Forrás: opennet.ru

Hozzászólás