OpenCL 3.0-specifikationen introducerad

Khronos-koncernen, ansvarig för utvecklingen av OpenGL-, Vulkan- och OpenCL-familjens specifikationer, meddelat på slutförandet av utvecklingen av OpenCL 3.0-specifikationer som definierar API:er och förlängningar av C-språket för att organisera plattformsoberoende parallellberäkningar med flerkärniga CPU:er, GPU:er, FPGA:er, DSP:er och andra specialiserade chips, från de som används i superdatorer och molnservrar till chips som finns i mobila enheter och inbyggd teknik. OpenCL-standarden är helt öppen och kräver inga licensavgifter. Företag som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments och Toshiba deltog i arbetet med standarden.

I nuvarande skede har specifikationen tilldelats provisorisk status, vilket innebär möjlighet till förfining baserat på feedback skickad via GitHub. När kommentarerna har beaktats kommer specifikationen att slutföras och en slutlig testsvit kommer att publiceras för att testa kompatibiliteten hos befintliga implementeringar.

OpenCL 3.0-specifikationen introducerad

Mest anmärkningsvärt särdrag OpenCL 3.0:

  • OpenCL 3.0 API täcker nu alla versioner av OpenCL (1.2, 2.x), utan att tillhandahålla separata specifikationer för varje version. OpenCL 3.0 ger möjligheten att utöka kärnfunktionaliteten genom integrering av ytterligare specifikationer som kommer att lagras i form av alternativ utan att blockera den monolitiska karaktären hos OpenCL 1.2/2.X.
  • Endast funktionalitet som överensstämmer med OpenCL 1.2 förklaras obligatorisk, och alla funktioner som föreslås i OpenCL 2.x-specifikationerna klassificeras som valfria. Detta tillvägagångssätt kommer att göra det lättare att skapa anpassade implementeringar som är kompatibla med OpenCL 3.0, och kommer att utöka utbudet av enheter som OpenCL 3.0 kan användas på. Till exempel kan tillverkare implementera OpenCL 3.0-stöd utan att implementera specifika OpenCL 2.x-funktioner. För att komma åt valfria språkfunktioner har OpenCL 3.0 lagt till ett system med testfrågor som låter dig utvärdera stödet för individuella API-element, såväl som speciella makron.
  • Enhet med tidigare släppta specifikationer gör det lättare att migrera applikationer till OpenCL 3.0. OpenCL 1.2-applikationer kommer att kunna köras på enheter som stöder OpenCL 3.0 utan ändringar. OpenCL 2.x-applikationer kommer inte heller att kräva kodändringar, så länge som OpenCL 3.0-miljön tillhandahåller den funktionalitet som krävs (för att säkerställa framtida portabilitet rekommenderas OpenCL 2.x-applikationer för att lägga till testfrågor för att utvärdera stödet för OpenCL 2.x-funktionerna används). Drivrututvecklare med OpenCL-implementationer kan enkelt uppgradera sina produkter till OpenCL 3.0, lägga till endast frågebehandling för vissa API-anrop och gradvis öka funktionaliteten över tiden.
  • OpenCL 3.0-specifikationen är anpassad till miljön, tilläggen och specifikationerna för SPIR-V generiska mellanrepresentation, som också används av Vulkan API. Stöd för SPIR-V 1.3-specifikationen ingår i kärnan OpenCL 3.0 som en tillvalsfunktion. Genom att använda en mellanrepresentation SPIR-V stöd för operationer med undergrupper har lagts till för beräkningskärnor.
    OpenCL 3.0-specifikationen introducerad

  • Tillagt stöd för en tillägg för att utföra asynkrona DMA-operationer (Asynchronous DMA), stöds i DSP-liknande chips med direkt minnesåtkomst. Asynkron DMA gör det möjligt att använda DMA-transaktioner för att överföra data mellan globalt och lokalt minne asynkront, parallellt med beräkningar eller andra dataöverföringsoperationer.
  • Specifikationen för C Parallel Programming Extensions har uppdaterats till version 3.0, och utvecklingen av OpenCL-språktillägg för C++ avbröts till förmån för "C++ for OpenCL"-projektet. C++ för OpenCL är en kompilator baserad på Clang/LLVM och sändning C++- och OpenCL C-kärnor till SPIR-V-mellanrepresentation eller maskinkod på låg nivå. Genom sändning organiserar SPIR-V även sammansättningen av C++-applikationer med hjälp av SYCL-mallbiblioteket, vilket förenklar skapandet av parallella applikationer.

    OpenCL 3.0-specifikationen introducerad

  • En kompilator har föreslagits för att sända OpenCL via Vulkan API clspv, som konverterar OpenCL-kärnor till en Vulkan SPIR-V-representation och ett lager clvk för att möjliggöra för OpenCL API att fungera ovanpå Vulkan.

    OpenCL 3.0-specifikationen introducerad

Källa: opennet.ru

Lägg en kommentar