Endelige OpenCL 3.0 specifikationer offentliggjort

Khronos-koncernen, der er ansvarlig for udviklingen af ​​OpenGL-, Vulkan- og OpenCL-familiespecifikationerne, объявил om offentliggørelse af endelige specifikationer OpenCL 3.0, definere 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 indbygget teknologi. OpenCL-standarden er helt åben og kræver ikke licensgebyrer.

Samtidigt offentliggjort åben OpenCL SDK med værktøjer, eksempler, dokumentation, header-filer, C++-bindinger og C-biblioteker til udvikling af applikationer, der er kompatible med OpenCL 3.0. Også fremlagde indledende implementering af OpenCL 3.0 baseret på Clang-kompileren, som er på stadiet med at gennemgå patches til inklusion i hovedstrukturen af ​​LLVM. Virksomheder som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba deltog i arbejdet med standarden.

Endelige OpenCL 3.0 specifikationer offentliggjort

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.
    Endelige OpenCL 3.0 specifikationer offentliggjort

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

    Endelige OpenCL 3.0 specifikationer offentliggjort

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

    Endelige OpenCL 3.0 specifikationer offentliggjort

Kilde: opennet.ru

Tilføj en kommentar