Khronosi kontsern, mis vastutab OpenGL, Vulkan ja OpenCL spetsifikatsioonide arendamise eest, OpenCL 3.0 spetsifikatsioonide arendamise lÔpetamisest, mis mÀÀratlevad API ja C keele laiendused ristplatvormsete paralleelsete arvutuste korraldamiseks, kasutades multi-CPU, GPU, FPGA, DSP ja muid spetsialiseeritud kiipe, alates nendest, mida kasutatakse superarvutites ja pilveserverites, kuni kiipideni, mida vÔib leida mobiilseadmetes ja sisseehitatud tehnikas. OpenCL standard on tÀiesti avatud ja ei nÔua litsentsitasusid. Standardi vÀljatöötamises osalesid sellised ettevÔtted nagu IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments ja Toshiba.
Praegusel etapil on spetsifikatsioonile omistatud esialgne (provisional) staatus, mis tĂ€hendab, et on vĂ”imalik teha parandusi saadud tagasiside pĂ”hjal, mida saab saata lĂ€bi . PĂ€rast tagasiside arvestamist saab spetsifikatsioon lĂ”pliku staatuse ja avaldatakse lĂ”plik testkomplekt olemasolevate rakenduste ĂŒhilduvuse kontrollimiseks.
KÔige mÀrgatavamad :
- OpenCL 3.0 API katab nĂŒĂŒd kĂ”ik OpenCL versioonid (1.2, 2.x) ilma iga versiooniga eraldi spetsifikatsioonide pakkumiseta. OpenCL 3.0 vĂ”imaldab pĂ”hifunktsionaalsuse laiendamist tĂ€iendavate spetsifikatsioonide integreerimise kaudu, mis lisanduvad valikutena, mitte takistades OpenCL 1.2/2.X monoliitsust.
- Kohustuslikuks on nimelt mÀÀratud ainult funktsionaalsus, mis vastab OpenCL 1.2-le, samas kui kĂ”ik OpenCL 2.x spetsifikatsioonides pakutavad vĂ”imalused on klassifitseeritud valikulisteks. Selline lĂ€henemine lihtsustab spetsialiseeritud rakenduste loomist, mis on ĂŒhilduvad OpenCL 3.0-ga, ja laiendab seadetega valikut, kus OpenCL 3.0-d saab kasutada. NĂ€iteks vĂ”ivad tootjad rakendada OpenCL 3.0 toetust, ilma et nad peaksid rakendama eraldi OpenCL 2.x vĂ”imalusi. OpenCL 3.0-s on lisatud kontrollipĂ€ringute sĂŒsteem, mis vĂ”imaldab hinnata individuaalsete API elementide toetust ning samuti spetsiaalsed makrod.
- A varemine varasemate spetsifikatsioonide lihtsustab rakenduste tĂ”lkimist OpenCL 3.0-le. OpenCL 1.2 rakendused saavad töötada seadmetes, mis toetavad OpenCL 3.0, ilma muudatusteta. OpenCL 2.x rakendused ei vaja samuti koodi muutmist, kuid kui OpenCL 3.0 keskkond pakub vajalikku funktsionaalsust (et tagada tulevaste OpenCL 2.x rakenduste ĂŒhilduvus, on soovitatav lisada kontrollpĂ€ringud kasutatavate OpenCL 2.x vĂ”imaluste toetuse hindamiseks). Draiverite arendajad, kellel on OpenCL teostused, saavad oma tooteid hĂ”lpsasti ajakohastada OpenCL 3.0-le, lisades vaid API kutsungite olemasolu kontrollimise ning ajaga jĂ€rk-jĂ€rgult suurendades funktsionaalsust.
- OpenCL 3.0 spetsifikatsioon on kooskÔlas SPIR-V universaalse vaheformatiga, mis on samuti rakendatav Vulkan API-s. SPIR-V 1.3 spetsifikatsiooni toetamine on lisatud OpenCL 3.0 pÔhikoostisele valikulisena. Vaheformaadi kasutamise kaudu on lisatud toetamine alagruppidega teostamiseks.
- On lisatud laienduse tugi asĂŒnkroonsete DMA-operatsioonide (Asynchronous DMA) teostamiseks, mida toetatakse DSP-sarnastes kiipides, millel on otsepÀÀs mĂ€lu juurde. Asynchronous DMA vĂ”imaldab kasutada DMA tehinguid andmete edastamiseks globaalsete ja kohalike mĂ€lude vahel asĂŒnkroonses reĆŸiimis, paralleelselt arvutuste vĂ”i muude andmeedastusoperatsioonidega.
- C keele paralleelse programmeerimise laienduse spetsifikatsioon on uuendatud , samas kui OpenCL keelelaiendite arendamine C++ jaoks on lĂ”petatud projekti "C++ for OpenCL" kasuks. C++ for OpenCL on Clang/LLVM baasil loodud kompilaator ja tuumade tĂ”lkimine C++ ja OpenCL C vaheformaat SPIR-V vĂ”i madala taseme masinkoodiks. SPIR-V-sse tĂ”lkimise kaudu on ka suuremate C++ rakenduste, mis kasutavad SYCL malliraamatukogu, koostamine ĂŒles ehitatud, muutes paralleelsete rakenduste loomise lihtsamaks.
- OpenCL tÔlkimiseks Vulkan API kaudu on pakutud kompilaatorit , mis muundab OpenCL tuumad Vulkan SPIR-V esitusse, ja kihi , et tagada OpenCL API toimimine Vulkan'i kohal.
Allikas: opennet.ru
