Közzétették az OpenCL 3.0 végleges specifikációit

A Khronos Szövetség, amely felelős az OpenGL, Vulkan és OpenCL család specifikációinak fejlesztéséért, bejelentette a végleges specifikációk közzététele OpenCL 3.0, amelyek az API-kat és a C nyelv kiterjesztéseit határozzák meg a keresztnapi párhuzamos számításokhoz többmagos CPU-k, GPU-k, FPGA-k, DSP-k és egyéb speciális chipek felhasználásával, a szuperszámítógépek és felhőszerverek által használt chipektől kezdve azokig, amelyeket mobil eszközökben és beágyazott technológiákban lehet találni. Az OpenCL szabvány teljesen nyílt, és nem igényel licencdíjat.

Egyidejűleg megjelent nyílt OpenCL SDK eszközkészlettel, példákkal, dokumentációval, header fájlokkal, C++ és C könyvtárak csomagolásával, az OpenCL 3.0-ral kompatibilis alkalmazások fejlesztéséhez. Továbbá bemutatva az OpenCL 3.0 kezdeti megvalósítása a Clang fordítón alapul, amely a LLVM fő összetevőjébe történő beillesztéshez szükséges patch-ek áttekintési stádiumában van. A szabvány kidolgozásában részt vett olyan cégek, mint az IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments és Toshiba.

Közzétették az OpenCL 3.0 végleges specifikációit

Legfontosabb jellemzői OpenCL 3.0:

  • Az OpenCL 3.0 API mostantól minden OpenCL verziót (1.2, 2.x) lefed, anélkül, hogy minden verzióhoz külön specifikációkat biztosítanának. Az OpenCL 3.0 lehetőséget biztosít a fő funkciók kiterjesztésére további specifikációk integrálásán keresztül, amelyek opciók formájában ráépülnek, anélkül hogy blokkolnák az OpenCL 1.2/2.X monolitikus jellegét.
  • Csak az OpenCL 1.2-nek megfelelő funkcionalitás kötelező, míg az OpenCL 2.x specifikációkban javasolt összes funkció opcionálisnak minősül. Ez a megközelítés megkönnyíti a szakterületi megvalósítások létrehozását, amelyek kompatibilisek az OpenCL 3.0-val, és szélesíti azakat az eszközök körét, amelyeken az OpenCL 3.0 használható. Például a gyártók implementálhatják az OpenCL 3.0 támogatását anélkül, hogy a külön OpenCL 2.x funkciókat implementálnák. Az OpenCL 3.0-ban bevezetésre került egy ellenőrző lekérdezési rendszer is, amely lehetővé teszi az API egyes elemeinek támogatásának értékelését, valamint speciális makrók alkalmazását.
  • A korábbi kiadású specifikációkkal való egységesítés megkönnyíti az alkalmazások áttérését az OpenCL 3.0-ra. Az OpenCL 1.2 alkalmazások változtatás nélkül fognak működni az OpenCL 3.0-t támogató eszközökön. Az OpenCL 2.x alkalmazások szintén nem igényelnek kódváltoztatást, de ha az OpenCL 3.0 környezet a szükséges funkcionalitást nyújtja, ajánlott, hogy a jövőbeni OpenCL 2.x alkalmazások átjárhatósága érdekében a fejlesztők ellenőrző lekérdezéseket adjanak hozzá az OpenCL 2.x által használt képességek támogatottságának értékeléséhez. Az OpenCL megvalósításokkal rendelkező meghajtófejlesztők könnyen frissíthetik termékeiket az OpenCL 3.0-ra, csupán az API-hívások meglétének ellenőrzésével, és idővel fokozatosan növelhetik a funkcionalitást.
  • Az OpenCL 3.0 specifikációja összhangba került a SPIR-V univerzális köztes reprezentálás környezetével, kiterjesztéseivel és specifikációival, amely szintén alkalmazva van a Vulkan API-ban. A SPIR-V 1.3 specifikáció támogatása opcionális lehetőségként került be az OpenCL 3.0 fő összetevőibe. Közvetett reprezentálás alkalmazásán keresztül SPIR-V a számítási magok számára támogatás került az alcsoportokkal végzett műveletekhez.
    Közzétették az OpenCL 3.0 végleges specifikációit
  • Támogatás került bevezetésre az aszinkron DMA-műveletek (Asynchronous DMA) végrehajtásához, amelyeket DSP-szerű chipek támogatnak közvetlen memória-hozzáféréssel. Az Asynchronous DMA lehetővé teszi a DMA tranzakciók használatát az adatok globális és lokális memória közötti aszinkron átvitelére, párhuzamosan a végrehajtott számításokkal vagy más adatrészvénysekkel.
  • A C nyelv párhuzamos programozásának kiterjesztési specifikációja frissítésre került 3.0-ás verzióra, míg az OpenCL nyelvi kiterjesztések C++-ra való fejlesztése leállt a «C++ for OpenCL» projekt javára. A C++ for OpenCL egy Clang/LLVM alapú fordító, amely lefordítja a magokat C++ és OpenCL C nyelvről SPIR-V köztes reprezentációra vagy alacsony szintű gépi kódra. Az SPIR-V-be való lefordítás révén a C++ alkalmazások összeállítása is lehetővé válik, amelyek a SYCL sablonkönyvtárat használják, egyszerűsítve a párhuzamos alkalmazások létrehozását.

    Közzétették az OpenCL 3.0 végleges specifikációit
  • OpenCL Vulkan API-n keresztüli lefordításához a következő fordító javasolt: clspv, amely az OpenCL magokat a Vulkan SPIR-V reprezentációjává alakítja, és egy köztes réteg, clvk , amely biztosítja az OpenCL API működését a Vulkan felett.

    Közzétették az OpenCL 3.0 végleges specifikációit

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster