Finale OpenCL 3.0 spesifikasies gepubliseer

Die Khronos-onderneming, verantwoordelik vir die ontwikkeling van die OpenGL-, Vulkan- en OpenCL-familiespesifikasies, aangekondig op publikasie van finale spesifikasies OpenCL 3.0, definieer API's en uitbreidings van die C-taal vir die organisering van kruisplatform parallelle rekenaars deur gebruik te maak van multikern-SVE's, GPU's, FPGA's, DSP's en ander gespesialiseerde skyfies, van dié wat in superrekenaars en wolkbedieners gebruik word tot skyfies wat in mobiele toestelle en ingeboude tegnologie. Die OpenCL-standaard is heeltemal oop en vereis nie lisensiefooie nie.

Terselfdertyd gepubliseer maak OpenCL SDK oop met gereedskap, voorbeelde, dokumentasie, koplêers, C++-bindings en C-biblioteke vir die ontwikkeling van toepassings wat versoenbaar is met OpenCL 3.0. Ook verteenwoordig deur aanvanklike implementering van OpenCL 3.0 gebaseer op die Clang-samesteller, wat op die stadium is om pleisters te hersien vir insluiting in die hoofstruktuur van LLVM. Maatskappye soos IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments en Toshiba het aan die werk aan die standaard deelgeneem.

Finale OpenCL 3.0 spesifikasies gepubliseer

Mees opvallend kenmerke OpenCL 3.0:

  • Die OpenCL 3.0 API dek nou alle weergawes van OpenCL (1.2, 2.x), sonder om afsonderlike spesifikasies vir elke weergawe te verskaf. OpenCL 3.0 bied die vermoë om kernfunksionaliteit uit te brei deur die integrasie van bykomende spesifikasies wat in die vorm van opsies gelaag sal word sonder om die monolitiese aard van OpenCL 1.2/2.X te blokkeer.
  • Slegs funksionaliteit wat aan OpenCL 1.2 voldoen, word verpligtend verklaar, en alle kenmerke wat in die OpenCL 2.x-spesifikasies voorgestel word, word as opsioneel geklassifiseer. Hierdie benadering sal dit makliker maak om pasgemaakte implementerings te skep wat versoenbaar is met OpenCL 3.0, en sal die reeks toestelle uitbrei waarop OpenCL 3.0 gebruik kan word. Vervaardigers kan byvoorbeeld OpenCL 3.0-ondersteuning implementeer sonder om spesifieke OpenCL 2.x-kenmerke te implementeer. Om toegang tot opsionele taalkenmerke te verkry, het OpenCL 3.0 'n stelsel van toetsnavrae bygevoeg wat jou toelaat om die ondersteuning van individuele API-elemente, sowel as spesiale makro's, te evalueer.
  • Eenwording met voorheen vrygestelde spesifikasies maak dit makliker om toepassings na OpenCL 3.0 te migreer. OpenCL 1.2-toepassings sal sonder verandering op toestelle kan loop wat OpenCL 3.0 ondersteun. OpenCL 2.x-toepassings sal ook nie kodeveranderings vereis nie, solank die OpenCL 3.0-omgewing die vereiste funksionaliteit verskaf (om toekomstige oordraagbaarheid te verseker, word OpenCL 2.x-toepassings aanbeveel om toetsnavrae by te voeg om ondersteuning vir die OpenCL 2.x-kenmerke te evalueer word gebruik). Bestuurderontwikkelaars met OpenCL-implementerings kan maklik hul produkte na OpenCL 3.0 opgradeer, deur slegs navraagverwerking vir sekere API-oproepe by te voeg, en funksionaliteit geleidelik mettertyd verhoog.
  • Die OpenCL 3.0-spesifikasie is in lyn met die omgewing, uitbreidings en spesifikasies van die SPIR-V generiese intermediêre voorstelling, wat ook deur die Vulkan API gebruik word. Ondersteuning vir die SPIR-V 1.3-spesifikasie is ingesluit in die kern OpenCL 3.0 as 'n opsionele kenmerk. Deur die gebruik van 'n tussenvoorstelling SPIR-V ondersteuning vir bedrywighede met subgroepe is bygevoeg vir rekenaarkerne.
    Finale OpenCL 3.0 spesifikasies gepubliseer

  • Bygevoeg ondersteuning vir 'n uitbreiding vir die uitvoering van asynchrone DMA-bewerkings (Asynchronous DMA), ondersteun in DSP-agtige skyfies met direkte geheue toegang. Asynchrone DMA maak dit moontlik om DMA-transaksies te gebruik om data asinchronies tussen globale en plaaslike geheue oor te dra, parallel met berekeninge of ander data-oordragbewerkings.
  • Die C Parallel Programming Extensions spesifikasie is opgedateer na weergawe 3.0, en die ontwikkeling van OpenCL-taaluitbreidings vir C++ is gestaak ten gunste van die “C++ for OpenCL”-projek. C++ vir OpenCL is 'n samesteller gebaseer op Clang/LLVM en uitsaai C++ en OpenCL C pitte in SPIR-V intermediêre voorstelling of laevlak masjienkode. Deur uitsaai, organiseer SPIR-V ook die samestelling van C++-toepassings deur die SYCL-sjabloonbiblioteek te gebruik, wat die skepping van parallelle toepassings vergemaklik.

    Finale OpenCL 3.0 spesifikasies gepubliseer

  • 'n Samesteller is voorgestel vir die uitsaai van OpenCL via die Vulkan API clspv, wat OpenCL-pitte omskakel na 'n Vulkan SPIR-V-voorstelling, en 'n laag clvk om die OpenCL API in staat te stel om bo-op Vulkan te werk.

    Finale OpenCL 3.0 spesifikasies gepubliseer

Bron: opennet.ru

Voeg 'n opmerking