Slutliga OpenCL 3.0-specifikationer publicerade

Khronos-koncernen, ansvarig för utvecklingen av OpenGL-, Vulkan- och OpenCL-familjens specifikationer, meddelat om offentliggörande av slutliga specifikationer OpenCL 3.0, som definierar API:er och tillägg 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 kretsar, från de som används i superdatorer och molnservrar till chip som kan hittas i mobila enheter och inbyggd teknik. OpenCL-standarden är helt öppen och kräver inga licensavgifter.

Samtidigt publicerad öppna OpenCL SDK med verktyg, exempel, dokumentation, header-filer, C++-bindningar och C-bibliotek för att utveckla applikationer som är kompatibla med OpenCL 3.0. Också presenteras initial implementering av OpenCL 3.0 baserat på Clang-kompilatorn, som befinner sig i stadiet för att granska patchar för inkludering i huvudstrukturen för LLVM. Företag som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments och Toshiba deltog i arbetet med standarden.

Slutliga OpenCL 3.0-specifikationer publicerade

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.
    Slutliga OpenCL 3.0-specifikationer publicerade

  • 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.

    Slutliga OpenCL 3.0-specifikationer publicerade

  • 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.

    Slutliga OpenCL 3.0-specifikationer publicerade

Källa: opennet.ru

Lägg en kommentar