Endelige OpenCL 3.0-spesifikasjoner publisert

Khronos-konsernet, ansvarlig for å utvikle OpenGL-, Vulkan- og OpenCL-familiespesifikasjonene, kunngjort om offentliggjøring av endelige spesifikasjoner OpenCL 3.0, definere APIer og utvidelser av C-språket for organisering av parallelldatabehandling på tvers av plattformer ved bruk av flerkjernede CPUer, GPUer, FPGAer, DSPer 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.

Samtidig publisert åpne OpenCL SDK med verktøy, eksempler, dokumentasjon, header-filer, C++-bindinger og C-biblioteker for utvikling av applikasjoner som er kompatible med OpenCL 3.0. Også representert av innledende implementering av OpenCL 3.0 basert på Clang-kompilatoren, som er på stadiet med å vurdere patcher for inkludering i hovedstrukturen til LLVM. Selskaper som IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments og Toshiba deltok i arbeidet med standarden.

Endelige OpenCL 3.0-spesifikasjoner publisert

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.
    Endelige OpenCL 3.0-spesifikasjoner publisert

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

    Endelige OpenCL 3.0-spesifikasjoner publisert

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

    Endelige OpenCL 3.0-spesifikasjoner publisert

Kilde: opennet.ru

Legg til en kommentar