OpenCL 3.0-specifikation introduceret

Khronos-koncernen, der er ansvarlig for udviklingen af ​​OpenGL-, Vulkan- og OpenCL-familiespecifikationerne, объявил på færdiggørelsen af ​​udviklingen af ​​OpenCL 3.0-specifikationer, der definerer API'er og udvidelser af C-sproget til at organisere parallel computing på tværs af platforme ved hjælp af multi-core CPU'er, GPU'er, FPGA'er, DSP'er og andre specialiserede chips, fra dem, der bruges i supercomputere og cloud-servere til chips, der kan findes i mobile enheder og indlejret teknologi. OpenCL-standarden er helt åben og kræver ikke licensgebyrer. Virksomheder som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba deltog i arbejdet med standarden.

På nuværende tidspunkt er specifikationen blevet tildelt foreløbig status, hvilket indebærer mulighed for forfining baseret på feedback sendt via GitHub. Når kommentarerne er taget i betragtning, vil specifikationen blive færdiggjort, og en endelig testpakke vil blive offentliggjort for at teste kompatibiliteten af ​​eksisterende implementeringer.

OpenCL 3.0-specifikation introduceret

Mest bemærkelsesværdigt Egenskaber OpenCL 3.0:

  • OpenCL 3.0 API'en dækker nu alle versioner af OpenCL (1.2, 2.x), uden at give separate specifikationer for hver version. OpenCL 3.0 giver mulighed for at udvide kernefunktionaliteten gennem integration af yderligere specifikationer, der vil blive lagdelt i form af muligheder uden at blokere den monolitiske karakter af OpenCL 1.2/2.X.
  • Kun funktionalitet, der overholder OpenCL 1.2, er erklæret obligatorisk, og alle funktioner, der foreslås i OpenCL 2.x-specifikationerne, er klassificeret som valgfrie. Denne tilgang vil gøre det lettere at skabe brugerdefinerede implementeringer, der er kompatible med OpenCL 3.0, og vil udvide rækken af ​​enheder, som OpenCL 3.0 kan bruges på. For eksempel kan producenter implementere OpenCL 3.0-understøttelse uden at implementere specifikke OpenCL 2.x-funktioner. For at få adgang til valgfri sprogfunktioner har OpenCL 3.0 tilføjet et system af testforespørgsler, der giver dig mulighed for at evaluere understøttelsen af ​​individuelle API-elementer såvel som specielle makroer.
  • Sammenlægning med tidligere udgivne specifikationer gør det nemmere at migrere applikationer til OpenCL 3.0. OpenCL 1.2-applikationer vil være i stand til at køre på enheder, der understøtter OpenCL 3.0 uden ændringer. OpenCL 2.x-applikationer vil heller ikke kræve kodeændringer, så længe OpenCL 3.0-miljøet leverer den nødvendige funktionalitet (for at sikre fremtidig portabilitet anbefales OpenCL 2.x-applikationer at tilføje testforespørgsler for at evaluere understøttelse af OpenCL 2.x-funktionerne bliver brugt). Driverudviklere med OpenCL-implementeringer kan nemt opgradere deres produkter til OpenCL 3.0 ved kun at tilføje forespørgselsbehandling for visse API-kald og gradvist øge funktionaliteten over tid.
  • OpenCL 3.0-specifikationen er tilpasset miljøet, udvidelserne og specifikationerne for SPIR-V generiske mellemrepræsentation, som også bruges af Vulkan API. Understøttelse af SPIR-V 1.3-specifikationen er inkluderet i kerne OpenCL 3.0 som en valgfri funktion. Gennem brug af en mellemrepræsentation SPIR-V understøttelse af operationer med undergrupper er blevet tilføjet til computerkerner.
    OpenCL 3.0-specifikation introduceret

  • Tilføjet understøttelse af en udvidelse til udførelse af asynkrone DMA-operationer (Asynchronous DMA), understøttet i DSP-lignende chips med direkte hukommelsesadgang. Asynkron DMA gør det muligt at bruge DMA-transaktioner til at overføre data mellem global og lokal hukommelse asynkront, parallelt med beregninger eller andre dataoverførselsoperationer.
  • C Parallel Programming Extensions-specifikationen er blevet opdateret til version 3.0, og udviklingen af ​​OpenCL-sprogudvidelser til C++ blev afbrudt til fordel for "C++ for OpenCL"-projektet. C++ for OpenCL er en compiler baseret på Clang/LLVM og udsendelse C++ og OpenCL C kerner til SPIR-V mellemrepræsentation eller lavt niveau maskinkode. Gennem broadcasting organiserer SPIR-V også samlingen af ​​C++-applikationer ved hjælp af SYCL-skabelonbiblioteket, hvilket forenkler oprettelsen af ​​parallelle applikationer.

    OpenCL 3.0-specifikation introduceret

  • En compiler er blevet foreslået til at udsende OpenCL via Vulkan API clspv, som konverterer OpenCL-kerner til en Vulkan SPIR-V-repræsentation og et lag clvk for at aktivere OpenCL API til at arbejde oven på Vulkan.

    OpenCL 3.0-specifikation introduceret

Kilde: opennet.ru

Tilføj en kommentar