Offentlige finale specifikationer for OpenCL 3.0

Khronos-koncernerne, der står for udviklingen af specifikationerne for OpenGL, Vulkan og OpenCL, har annonceret om offentliggørelsen af de endelige specifikationer OpenCL 3.0, der definerer API'et og udvidelser af C-sprog til at organisere tvær-platforms parallelle beregninger ved hjælp af flerkerne CPU'er, GPU'er, FPGA'er, DSP'er og andre specialiserede chips, fra dem, der anvendes i supercomputere og cloud-servere, til chips, man kan finde i mobile enheder og indlejrede systemer. OpenCL-standarden er helt åben og kræver ikke licensbetalinger.

Samtidig udgivet åben OpenCL SDK med værktøjer, eksempler, dokumentation, headerfiler, C++-bindings og C-biblioteker til udvikling af programmer, der er kompatible med OpenCL 3.0. Derudover præsenteret den indledende implementering af OpenCL 3.0 baseret på Clang-kompilatoren, som er under revision af patches for integration i den primære samling af LLVM. I arbejdet med standarden deltager virksomheder som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba.

Offentlige finale specifikationer for OpenCL 3.0

De mest bemærkelsesværdige funktioner OpenCL 3.0:

  • API'en for OpenCL 3.0 dækker nu alle versioner af OpenCL (1.2, 2.x) uden at give separate specifikationer for hver version. OpenCL 3.0 muliggør udvidelse af kernefunktionaliteten gennem integration af yderligere specifikationer, der vil blive lagdelt i form af muligheder, uden at det blokerer den monolitiske karakter af OpenCL 1.2/2.x.
  • Kun funktionaliteten, der svarer til OpenCL 1.2, er blevet erklæret obligatorisk, mens alle muligheder, der foreslås i OpenCL 2.x specifikationerne, betragtes som fakultative. Denne tilgang vil forenkle oprettelsen af specialiserede implementationer, der er kompatible med OpenCL 3.0, og udvide spektret af enheder, hvor OpenCL 3.0 kan anvendes. For eksempel kan producenter implementere support for OpenCL 3.0 uden at implementere separate funktioner fra OpenCL 2.x. For at få adgang til de fakultative sprogfunktioner er der i OpenCL 3.0 tilføjet et system for kontrolanmodninger, som muliggør vurdering af understøttelsen af enkelte API-elementer samt særlige makroer.
  • Standardiseringen med tidligere udgivne specifikationer forenkler oversættelsen af applikationer til OpenCL 3.0. Applikationer lavet med OpenCL 1.2 vil kunne køre på enheder, der understøtter OpenCL 3.0 uden ændringer. Applikationer skrevet i OpenCL 2.x kræver heller ikke kodeændringer, men hvis OpenCL 3.0-miljøet tilbyder den nødvendige funktionalitet (for at sikre fremtidig bærbarhed anbefales det, at OpenCL 2.x-applikationer tilføjer kontrolanmodninger for at vurdere understøttelsen af de anvendte OpenCL 2.x-funktioner). Drivere med OpenCL-implementeringer vil let kunne opdatere deres produkter til OpenCL 3.0 ved blot at tilføje håndtering af forespørgsler om specifikke API-kald og gradvist udvide funktionaliteten over tid.
  • OpenCL 3.0-specifikationen er tilpasset miljøet, udvidelserne og specifikationerne for det universelle intermediate representation SPIR-V, som også anvendes i Vulkan API’en. Understøttelse af SPIR-V 1.3-specifikationen er integreret i OpenCL 3.0 som en valgfri funktion. Gennem brug af det intermediate representation SPIR-V til beregningskerner er der tilføjet understøttelse af operationer med undergrupper.
    Offentlige finale specifikationer for OpenCL 3.0
  • Understøttelse er tilføjet for udvidelsen til udførelse af asynkrone DMA-operationer (Asynchronous DMA), som understøttes i DSP-lignende chips med direkte adgang til hukommelse. Asynchronous DMA muliggør brugen af DMA-transaktioner til dataoverførsel mellem global og lokal hukommelse i asynkrone tilstande, parallelt med de udførte beregninger eller andre dataoverførselsoperationer.
  • Specifikationen af udvidelser til parallel programmering for C-sproget er blevet opdateret til version 3.0, mens udviklingen af sprogudvidelser for OpenCL i C++ er stoppet til fordel for projektet "C++ for OpenCL". C++ for OpenCL er en compiler, der er baseret på Clang/LLVM og omdanner kerner til C++ og OpenCL C til det intermediate representation SPIR-V eller lavniveau maskinkode. Gennem omdannelsen til SPIR-V muliggøres også kompileringen af C++-applikationer, der bruger SYCL-skabelonbiblioteket, hvilket forenkler oprettelsen af parallelle applikationer.

    Offentlige finale specifikationer for OpenCL 3.0
  • Til omdannelse af OpenCL gennem Vulkan API’en foreslås compiler clspv, som konverterer OpenCL-kerner til Vulkan SPIR-V-repræsentationen, og et lag clvk , der muliggør brugen af OpenCL API oven på Vulkan.

    Offentlige finale specifikationer for OpenCL 3.0

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster