De definitieve specificaties van OpenCL 3.0 zijn al vrijgegeven

Een paar maanden geleden hebben we gedeeld hier op de blog het nieuws van de release van de ontwikkeling van OpenCL 3.0 door Chronos zorgen (Verantwoordelijk voor de ontwikkeling van specificaties voor de OpenGL-, Vulkan- en OpenCL-familie).

En dat was het tot voor kort release van definitieve OpenCL 3.0-specificaties aangekondigd, het definiëren van API's en uitbreidingen van de C-taal om multiplatform parallel computing te organiseren met behulp van multi-core CPU's, GPU's, FPGA's, DSP's en andere gespecialiseerde chips, van chips die worden gebruikt in supercomputers en cloudservers tot chips die kunnen worden gevonden in mobiele apparaten en geïntegreerde technologie.

Tegelijkertijd werd een open source OpenCL SDK uitgebracht met tools, voorbeelden, documentatie, header-bestanden, links voor C ++ - en C-bibliotheken voor het ontwikkelen van OpenCL 3.0-compatibele applicaties.

De eerste implementatie van OpenCL 3.0 op basis van de Clang-compiler wordt ook gepresenteerd, die zich in de peer review-fase bevindt voor opname in het hoofdpakket van LLVM. Bedrijven als IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments en Toshiba hebben bijgedragen aan de standaard.

Vandaag kondigt de Khronos® OpenCL ™ -werkgroep met genoegen de release aan van de voltooide OpenCL 3.0-specificaties, inclusief een nieuwe uniforme OpenCL C 3.0-taalspecificatie, samen met een vroege eerste release van een Khronos OpenCL SDK waarmee ontwikkelaars snel aan de slag kunnen. versnellen met OpenCL.

OpenCL 3.0 belangrijkste kenmerken

OpenCL 3.0 API nu omvat alle versies van OpenCL (1.2, 2.x), zonder aparte specificaties te verstrekken voor elke versie.

OpenCL 3.0 biedt de mogelijkheid om kernfunctionaliteit uit te breiden door aanvullende specificaties te integreren die elkaar zullen overlappen in de vorm van opties zonder de monolithische aard van OpenCL 1.2 / 2.X te blokkeren.

Alleen functionaliteit die voldoet OpenCL 1.2 is verplicht verklaard, en alle functies die worden voorgesteld in het OpenCL 2.x-specificaties worden optioneel genoemd.

Deze benadering vereenvoudigt het maken van gespecialiseerde implementaties die compatibel zijn met OpenCL 3.0 en vergroot het aantal apparaten waarop OpenCL 3.0 kan worden gebruikt.

Bv Fabrikanten kunnen ondersteuning voor OpenCL 3.0 implementeren zonder specifieke OpenCL 2.x-functies te implementeren. Om toegang te krijgen tot optionele taalfuncties, is een testverzoeksysteem toegevoegd aan OpenCL 3.0 om de ondersteuning voor individuele API-elementen en speciale macro's te evalueren.

Unificatie met eerder uitgebrachte specificaties maakt het gemakkelijk om applicaties te vertalen naar OpenCL 3.0. OpenCL 1.2-applicaties kunnen zonder aanpassingen worden uitgevoerd op apparaten die OpenCL 3.0 ondersteunen.

toepassingen OpenCL 2.x vereist ook geen codewijzigingen, maar als de OpenCL 3.0-omgeving de nodige functionaliteit biedt (voor toekomstige draagbaarheid worden OpenCL 2.x-applicaties aangemoedigd om testquery's toe te voegen om de compatibiliteit met de gebruikte OpenCL 2.x-functies te evalueren).

Ontwikkelaars van stuurprogramma's met OpenCL-implementaties kunnen hun producten eenvoudig upgraden naar OpenCL 3.0 door alleen aanvraagverwerking toe te voegen voor bepaalde API-aanroepen en geleidelijk de functionaliteit in de loop van de tijd te vergroten.

De OpenCL 3.0-specificatie is afgestemd op de omgeving, uitbreidingen en specificaties van het generieke tussenproduct SPIR-V, die ook wordt gebruikt in de Vulkan API. Ondersteuning voor de SPIR-V 1.3-specificatie is als een optionele functie opgenomen in de hoofd OpenCL 3.0. Ondersteuning voor bewerkingen met subgroepen is toegevoegd door de SPIR-V-tussenweergave voor rekenkernen te gebruiken.

Daarnaast ondersteuning toegevoegd voor een extensie om DMA-bewerkingen uit te voeren Asynchroon ondersteund op DSP-achtige DMA-chips.

Asynchrone DMA maakt het mogelijk om DMA-transacties te gebruiken om gegevens asynchroon tussen globaal en lokaal geheugen over te dragen, parallel met lopende berekeningen of andere gegevensoverdrachten.

De specificatie van extensies voor parallel programmeren voor taal C is bijgewerkt naar versie 3.0 en de ontwikkeling van de OpenCL-taalextensies voor C ++ wordt stopgezet ten gunste van het "C ++ for OpenCL" -project.

Om OpenCL te vertalen via de Vulkan API, wordt de clspv-compiler voorgesteld, die OpenCL-kernels converteert naar de Vulkan SPIR-V-representatie, en de clvk-laag om ervoor te zorgen dat de OpenCL API bovenop Vulkan werkt.

bron: https://www.khronos.org/


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.