Kasutusele võetud OpenCL 3.0 spetsifikatsioon

Khronose kontsern, mis vastutab OpenGL-i, Vulkani ja OpenCL-i perekonna spetsifikatsioonide väljatöötamise eest, teatas OpenCL 3.0 spetsifikatsioonide väljatöötamise lõpuleviimise kohta, mis määratlevad API-d ja C-keele laiendused platvormideülese paralleelandmetöötluse korraldamiseks, kasutades superarvutites ja pilvserverites kasutatavaid mitmetuumalisi protsessoreid, GPU-sid, FPGA-sid, DSP-sid ja muid spetsiaalseid kiipe kiipidele, mida võib leida mobiilseadmetest ja manustatud tehnoloogiast. OpenCL-i standard on täiesti avatud ega nõua litsentsitasusid. Standardi väljatöötamisel osalesid sellised ettevõtted nagu IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ja Toshiba.

Praeguses staadiumis on spetsifikatsioonile antud ajutine staatus, mis viitab sellele, et on võimalik täpsustada, lähtudes saadetud tagasisidest. GitHub. Kui kommentaarid on arvesse võetud, vormistatakse spetsifikatsioon ja avaldatakse lõplik testkomplekt, et testida olemasolevate rakenduste ühilduvust.

Kasutusele võetud OpenCL 3.0 spetsifikatsioon

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.
    Kasutusele võetud OpenCL 3.0 spetsifikatsioon

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

    Kasutusele võetud OpenCL 3.0 spetsifikatsioon

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

    Kasutusele võetud OpenCL 3.0 spetsifikatsioon

Allikas: opennet.ru

Lisa kommentaar