Avaldatud OpenCL 3.0 lõplikud spetsifikatsioonid

Khronose kontsern, mis vastutab OpenGL-i, Vulkani ja OpenCL-i perekonna spetsifikatsioonide väljatöötamise eest, teatas lõplike spetsifikatsioonide avaldamise kohta OpenCL 3.0, määratledes C-keele API-liidesed ja laiendused platvormidevahelise paralleelse andmetöötluse korraldamiseks, kasutades mitmetuumalisi protsessoreid, GPU-sid, FPGA-sid, DSP-sid ja muid spetsiaalseid kiipe, alates superarvutites ja pilvserverites kasutatavatest kiipidest kuni mobiilseadmetes ja sisseehitatud tehnoloogia. OpenCL-i standard on täiesti avatud ega nõua litsentsitasusid.

Samaaegselt avaldatud avage OpenCL SDK koos tööriistade, näidete, dokumentatsiooni, päisefailide, C++ sidumiste ja C-teekidega OpenCL 3.0-ga ühilduvate rakenduste arendamiseks. Samuti on esitatud Clangi kompilaatoril põhineva OpenCL 3.0 esialgne juurutamine, mis on LLVM-i põhistruktuuri lisamiseks mõeldud paikade ülevaatamise etapis. Standardi väljatöötamisel osalesid sellised ettevõtted nagu IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ja Toshiba.

Avaldatud OpenCL 3.0 lõplikud spetsifikatsioonid

Kõige tähelepanuväärsem Omadused OpenCL 3.0:

  • OpenCL 3.0 API hõlmab nüüd kõiki OpenCL-i versioone (1.2, 2.x), ilma iga versiooni jaoks eraldi spetsifikatsioone esitamata. OpenCL 3.0 pakub võimalust laiendada põhifunktsioone, integreerides täiendavad spetsifikatsioonid, mis jaotatakse valikute kujul, ilma et see blokeeriks OpenCL 1.2/2.X monoliitsust.
  • Kohustuslikuks tunnistatakse ainult need funktsioonid, mis vastavad OpenCL 1.2-le, ja kõik OpenCL 2.x spetsifikatsioonides pakutud funktsioonid on klassifitseeritud valikulisteks. See lähenemine muudab OpenCL 3.0-ga ühilduvate kohandatud rakenduste loomise lihtsamaks ja laiendab seadmete valikut, milles OpenCL 3.0 saab kasutada. Näiteks saavad tootjad rakendada OpenCL 3.0 tuge ilma konkreetseid OpenCL 2.x funktsioone rakendamata. Valikulistele keelefunktsioonidele juurdepääsuks on OpenCL 3.0 lisanud testpäringute süsteemi, mis võimaldab hinnata üksikute API elementide ja ka spetsiaalsete makrode tuge.
  • Varem välja antud spetsifikatsioonidega ühendamine muudab rakenduste OpenCL 3.0-le üleviimise lihtsamaks. OpenCL 1.2 rakendused saavad ilma muudatusteta töötada seadmetes, mis toetavad OpenCL 3.0. OpenCL 2.x rakendused ei vaja ka koodi muutmist seni, kuni OpenCL 3.0 keskkond pakub vajalikke funktsioone (tuleviku teisaldatavuse tagamiseks on OpenCL 2.x rakendustel soovitatav lisada testpäringud, et hinnata OpenCL 2.x funktsioonide tuge kasutatakse). OpenCL-i rakendustega draiverite arendajad saavad hõlpsasti uuendada oma tooteid versioonile OpenCL 3.0, lisades teatud API-kutsete jaoks ainult päringutöötluse, ja aja jooksul järk-järgult suurendada funktsioone.
  • OpenCL 3.0 spetsifikatsioon on kooskõlas SPIR-V üldise vahepealse esituse keskkonna, laienduste ja spetsifikatsioonidega, mida kasutab ka Vulkan API. SPIR-V 1.3 spetsifikatsiooni tugi sisaldub OpenCL 3.0 põhifunktsioonis valikulise funktsioonina. Vaheesitusviisi kasutamise kaudu SPIR-V Tuumade arvutamiseks on lisatud alamrühmadega operatsioonide tugi.
    Avaldatud OpenCL 3.0 lõplikud spetsifikatsioonid

  • Lisatud on laienduse tugi asünkroonsete DMA toimingute tegemiseks (Asynchronous DMA), mida toetavad DSP-laadsed kiibid, millel on otsene juurdepääs mälule. Asünkroonne DMA võimaldab kasutada DMA tehinguid andmete ülekandmiseks globaalse ja kohaliku mälu vahel asünkroonselt, paralleelselt arvutuste või muude andmeedastustoimingutega.
  • C Parallel Programming Extensions spetsifikatsiooni on värskendatud versioon 3.0, ja OpenCL-i keelelaiendite arendamine C++ jaoks katkestati projekti “C++ for OpenCL” kasuks. C++ for OpenCL on kompilaator, mis põhineb Clang/LLVM ja ringhääling C++ ja OpenCL C tuumad SPIR-V vahepealseks esituseks või madala taseme masinakoodiks. Ringhäälingu kaudu korraldab SPIR-V ka C++ rakenduste kokkupanemist SYCL malliteegi abil, mis lihtsustab paralleelsete rakenduste loomist.

    Avaldatud OpenCL 3.0 lõplikud spetsifikatsioonid

  • OpenCL-i edastamiseks Vulkan API kaudu on pakutud kompilaatorit clspv, mis teisendab OpenCL-i tuumad Vulkan SPIR-V esituseks ja kihiks clvk et võimaldada OpenCL API-l töötada Vulkani peal.

    Avaldatud OpenCL 3.0 lõplikud spetsifikatsioonid

Allikas: opennet.ru

Lisa kommentaar