OpenCL 3.0 specifikationen er præsenteret

Khronos-koncernerne, der står for udviklingen af specifikationerne for OpenGL, Vulkan og OpenCL, har annonceret har annonceret afslutningen af udviklingen af OpenCL 3.0 specifikationerne, der definerer API og udvidelser af C-sproget til organisering af tværplatform-parallelle beregninger ved hjælp af multicore CPU'er, GPU'er, FPGA'er, DSP'er og andre specialiserede chips, fra dem der anvendes i supercomputere og cloud-servere til chips, der findes i mobile enheder og indlejrede systemer. OpenCL-standarden er helt åben og kræver ikke licensafgifter. Arbejdet på standarden har involveret selskaber som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba.

På nuværende tidspunkt har specifikationen status som foreløbig (provisional), hvilket indebærer muligheden for forbedringer baseret på feedback sendt via GitHub. Når bemærkningerne er blevet taget i betragtning, vil specifikationen få status som endelig, og det endelige testsæt til kompatibilitetstests af eksisterende implementeringer vil blive offentliggjort.

OpenCL 3.0 specifikationen er præsenteret

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.
    OpenCL 3.0 specifikationen er præsenteret
  • 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.

    OpenCL 3.0 specifikationen er præsenteret
  • 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.

    OpenCL 3.0 specifikationen er præsenteret

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