Az OpenCL 3.0 végleges specifikációi már megjelentek

Néhány hónappal ezelőtt megosztottuk itt a blogon a hírek az OpenCL 3.0 fejlesztésének kiadása Khronos aggodalom (Felelős az OpenGL, Vulkan és OpenCL család specifikációinak kidolgozásáért).

És egészen a közelmúltig ez volt bejelentették az OpenCL 3.0 végleges specifikációinak kiadását, meghatározva az API-kat és a C nyelv kiterjesztéseit a multiplatform párhuzamos számítástechnika megszervezéséhez, 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 a felhőszervereken használtaktól a mobileszközökben és az integrált technológiában megtalálható chipekig.

Ezzel egy időben nyílt forráskódú OpenCL SDK is megjelent eszközökkel, példákkal, dokumentációval, fejlécfájlokkal, linkekkel a C ++ és C könyvtárakhoz az OpenCL 3.0 kompatibilis alkalmazások fejlesztéséhez.

Bemutatjuk az OpenCL 3.0 kezdeti megvalósítását a Clang fordító alapján, amely az LLVM fő csomagjába való felvétel céljából szakértői felülvizsgálati szakaszban van. Olyan vállalatok járultak hozzá a szabványhoz, mint az IBM, az NVIDIA, az Intel, az AMD, az Apple, az ARM, az Electronic Arts, a Qualcomm, a Texas Instruments és a Toshiba.

Ma a Khronos® OpenCL ™ munkacsoport örömmel jelenti be a véglegesített OpenCL 3.0 specifikációk kiadását, beleértve az új egységes OpenCL C 3.0 nyelvi specifikációt, valamint a Khronos OpenCL SDK korai kezdeti kiadását, hogy a fejlesztők gyorsan fel tudjanak kelni gyorsítsd fel az OpenCL segítségével.

Az OpenCL 3.0 főbb jellemzői

OpenCL 3.0 API most az OpenCL összes verzióját lefedi (1.2, 2,x), külön specifikációk megadása nélkül minden verzióhoz.

Az OpenCL 3.0 lehetőséget kínál az alapvető funkcionalitás kibővítésére további specifikációk integrálásával, amelyek opciók formájában átfedik egymást, anélkül, hogy blokkolnák az OpenCL 1.2 / 2.X monolitikus jellegét.

Csak a megfelelő funkcionalitás Az OpenCL 1.2 kötelezővé nyilvánítva, és az összes javasolt tulajdonság Az OpenCL 2.x specifikációit opcionálisnak nevezzük.

Ez a megközelítés leegyszerűsíti az OpenCL 3.0-val kompatibilis speciális 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ó.

Pl. A gyártók az OpenCL 3.0 támogatását specifikus OpenCL 2.x szolgáltatások bevezetése nélkül is megvalósíthatják. Az opcionális nyelvi funkciók eléréséhez tesztkérési rendszert adtak az OpenCL 3.0-hoz, hogy értékelje az egyes API-elemek, valamint a speciális makrók támogatását.

A korábban kiadott specifikációkkal történő egyesítés megkönnyíti az alkalmazások OpenCL 3.0-ra fordítását. Az OpenCL 1.2 alkalmazások módosítás nélkül képesek futtatni az OpenCL 3.0-t támogató eszközökön.

alkalmazások Az OpenCL 2.x szintén nem igényel kód módosítást, de ha az OpenCL 3.0 környezet biztosítja a szükséges funkcionalitást (a jövőbeni hordozhatóság érdekében az OpenCL 2.x alkalmazásokat javasoljuk, hogy vegyenek fel tesztlekérdezéseket a használt OpenCL 2.x szolgáltatásokkal való kompatibilitás értékeléséhez).

Az OpenCL implementációval rendelkező illesztőprogram-fejlesztők egyszerűen frissíthetik termékeiket az OpenCL 3.0-ra, ha csak bizonyos API-hívásokhoz adnak hozzá kérelem-feldolgozást, és idővel fokozatosan növelik a funkciókat.

Az OpenCL 3.0 specifikációt összehangolták a környezettel, a kiterjesztésekkel és a specifikációkkal az általános S intermedierPIR-V, amelyet a Vulkan API-ban is használnak. A SPIR-V 1.3 specifikáció támogatását az OpenCL 3.0 fő opcionális szolgáltatásként tartalmazza. Az alcsoportokkal végzett műveletek támogatása hozzáadódott a számítási magok SPIR-V köztes reprezentációjának használatával.

Amellett, hogy hozzáadott támogatás egy kiterjesztéshez a DMA műveletek végrehajtásához Aszinkron támogatott a DSP-szerű DMA chipeken.

Az aszinkron DMA lehetővé teszi a DMA tranzakciók használatát a globális és a helyi memória közötti aszinkron adatátvitelhez, a folyamatban lévő számításokkal vagy egyéb adatátvitelekkel párhuzamosan.

A párhuzamos programozási kiterjesztések specifikációja a nyelv számára A C frissítve lett a 3.0 verzióra és a C ++ nyelv OpenCL nyelvi kiterjesztéseinek fejlesztése a "C ++ for OpenCL" projekt javára megszűnik.

Az OpenCL lefordításához a Vulkan API-n keresztül a clspv fordítót javasoljuk, amely átalakítja az OpenCL magokat a Vulkan SPIR-V reprezentációvá, és az clvk réteget annak biztosítására, hogy az OpenCL API működjön a Vulkan tetején.

forrás: https://www.khronos.org/


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.