OpenCL 3.0-spesifikasjonen introdusert

Khronos-konsernet, ansvarlig for å utvikle OpenGL-, Vulkan- og OpenCL-familiespesifikasjonene, kunngjort på fullføringen av utviklingen av OpenCL 3.0-spesifikasjoner som definerer APIer og utvidelser av C-språket for å organisere parallelldatabehandling på tvers av plattformer ved bruk av flerkjerne-CPUer, GPUer, FPGA-er, DSP-er og andre spesialiserte brikker, fra de som brukes i superdatamaskiner og skyservere til brikker som finnes i mobile enheter og innebygd teknologi. OpenCL-standarden er helt åpen og krever ingen lisensavgift. Selskaper som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba deltok i arbeidet med standarden.

På nåværende stadium er spesifikasjonen tildelt provisorisk status, noe som innebærer mulighet for foredling basert på tilbakemelding sendt via GitHub. Når kommentarene er tatt i betraktning, vil spesifikasjonen bli ferdigstilt og en endelig testpakke vil bli publisert for å teste kompatibiliteten til eksisterende implementeringer.

OpenCL 3.0-spesifikasjonen introdusert

Mest bemerkelsesverdig Spesifikasjoner OpenCL 3.0:

  • OpenCL 3.0 API dekker nå alle versjoner av OpenCL (1.2, 2.x), uten å gi separate spesifikasjoner for hver versjon. OpenCL 3.0 gir muligheten til å utvide kjernefunksjonaliteten gjennom integrering av tilleggsspesifikasjoner som vil bli lagdelt i form av alternativer uten å blokkere den monolittiske naturen til OpenCL 1.2/2.X.
  • Kun funksjonalitet som samsvarer med OpenCL 1.2 er erklært obligatorisk, og alle funksjoner som foreslås i OpenCL 2.x-spesifikasjonene er klassifisert som valgfrie. Denne tilnærmingen vil gjøre det enklere å lage tilpassede implementeringer som er kompatible med OpenCL 3.0, og vil utvide utvalget av enheter som OpenCL 3.0 kan brukes på. For eksempel kan produsenter implementere OpenCL 3.0-støtte uten å implementere spesifikke OpenCL 2.x-funksjoner. For å få tilgang til valgfrie språkfunksjoner har OpenCL 3.0 lagt til et system med testspørringer som lar deg evaluere støtten til individuelle API-elementer, samt spesielle makroer.
  • Sammenslåing med tidligere utgitte spesifikasjoner gjør det enklere å migrere applikasjoner til OpenCL 3.0. OpenCL 1.2-applikasjoner vil kunne kjøres på enheter som støtter OpenCL 3.0 uten endringer. OpenCL 2.x-applikasjoner vil heller ikke kreve kodeendringer, så lenge OpenCL 3.0-miljøet gir den nødvendige funksjonaliteten (for å sikre fremtidig portabilitet, anbefales OpenCL 2.x-applikasjoner å legge til testspørringer for å evaluere støtte for OpenCL 2.x-funksjonene blir brukt). Driverutviklere med OpenCL-implementeringer kan enkelt oppgradere produktene sine til OpenCL 3.0, bare legge til spørringsbehandling for visse API-kall, og gradvis øke funksjonaliteten over tid.
  • OpenCL 3.0-spesifikasjonen er på linje med miljøet, utvidelsene og spesifikasjonene til SPIR-V generiske mellomrepresentasjon, som også brukes av Vulkan API. Støtte for SPIR-V 1.3-spesifikasjonen er inkludert i kjernen OpenCL 3.0 som en valgfri funksjon. Gjennom bruk av en mellomrepresentasjon SPIR-V støtte for operasjoner med undergrupper er lagt til for datakjerner.
    OpenCL 3.0-spesifikasjonen introdusert

  • Lagt til støtte for en utvidelse for å utføre asynkrone DMA-operasjoner (Asynchronous DMA), støttet i DSP-lignende brikker med direkte minnetilgang. Asynkron DMA gjør det mulig å bruke DMA-transaksjoner til å overføre data mellom globalt og lokalt minne asynkront, parallelt med beregninger eller andre dataoverføringsoperasjoner.
  • C Parallel Programming Extensions-spesifikasjonen er oppdatert til versjon 3.0, og utviklingen av OpenCL-språkutvidelser for C++ ble avviklet til fordel for «C++ for OpenCL»-prosjektet. C++ for OpenCL er en kompilator basert på Clang/LLVM og kringkasting C++ og OpenCL C-kjerner til SPIR-V mellomrepresentasjon eller maskinkode på lavt nivå. Gjennom kringkasting organiserer SPIR-V også sammenstillingen av C++-applikasjoner ved å bruke SYCL-malbiblioteket, noe som forenkler opprettelsen av parallelle applikasjoner.

    OpenCL 3.0-spesifikasjonen introdusert

  • En kompilator er foreslått for kringkasting av OpenCL via Vulkan API clspv, som konverterer OpenCL-kjerner til en Vulkan SPIR-V-representasjon, og et lag clvk for å aktivere OpenCL API til å fungere på toppen av Vulkan.

    OpenCL 3.0-spesifikasjonen introdusert

Kilde: opennet.ru

Legg til en kommentar