OpenCL 3.0 se začne z ogromnim korakom nazaj

OpenCL, nekoč hvaljen kot prihodnost računalništva GPGPU, je nedavno izginil iz središča pozornosti. Večina osebnih računalnikov, ki so ga podpirala, je našla razloge za zasledovanje drugih ciljev: Apple ima svoj Metal API, Nvidia ima izjemno uspešno in samo ustvarjeno CUDA, AMD pa je bil osredotočen na Linux in njegovo rešitev RoCm. Zdi se, da je Intel edino podjetje, ki stalno uporablja gonilnike in podporo za OpenCL.



Kljub temu standard OpenCL 2.2, ki je bil objavljen leta 2017, še ne podpira kaj prodajalec v celotni računalniški industriji. To ni dober znak, ko tri leta po objavi ne najdete niti enega podjetja, ki bi podprlo vaš standard, in skupina Khronos ima radikalen pristop k razvoju OpenCL 3.0. Natančneje, podvajajo OpenCL 2.0 in se vračajo na razcep razvoja OCL 1.2.







Da bi bilo jasno, koda in zmogljivost OCL 2.x ne bosta odstranjeni iz standarda, temveč bosta preprosto postala neobvezen način za podporo strojne opreme OCL. Vse funkcije, predstavljene do OpenCL 2.2, bodo ostale na voljo vsem ponudnikom, ki želijo napisati gonilnik za njihovo podporo. Razlog za to, da novi standard temelji na OpenCL 1.2, je ta, da gre za zadnjo različico, za katero se vsi strinjajo, da vsebuje nujno potrebne funkcije, ki podpirajo popolno uporabo primerov za ta standard. V tem primeru je dogovor pomemben, ker je Khronos konzorcij, ki ga sestavljajo različne organizacije članice, vendar nima nobene lastne moči.

Razen osnovnih zmogljivosti OCL 1.2 bo vse, kar je standard uvedeno v OCL 2.x in 3.0, neobvezno. Vsak prodajalec bo lahko podpiral posebne zmogljivosti, ki so smiselne za njegovo strojno opremo, vendar ni nobenih omejitev, ki bi ustrezale vsem, zaradi katerih so prodajalci sploh odšli od standarda. Ta novi pristop je zasnovan na načinu, kako je Khronos uvedel Vulkan, in razvijalci bodo lahko podprli OCL 3.0. Vse aplikacije OpenCL 1.2 se bodo popolnoma izvajale v napravi OpenCL 3.0, aplikacije OpenCL 2.x pa bodo popolnoma delovale v napravah OCL 3.0, če te naprave podpirajo funkcije, ki jih aplikacija uporablja. Če imate aplikacijo OCL 1.2 ali 2.x, vam ni treba skrbeti, ali bo OCL 3.0 vplival na vašo povratno združljivost.





Tisti, ki ste upali, da se bo OpenCL C ++ ujel, pa ... imamo slabe novice. Jezik je v celoti ponižen. Nadomestil ga bo 'C ++ za OpenCL', ki je podoben OpenCL C ++, vendar se razlikuje od njega in se izvaja pod okriljem drugega projekta.

Velika novost standarda je asinhrona podpora DMA, ki omogoča, da se transakcije DMA izvajajo hkrati z računskimi jedri ali sinhrono z drugimi transakcijami DMA.



Anandtech je Več podrobnosti o funkcijah in zmogljivostih na nizki ravni, ki so dodane standardu, če želite prebrati temo. Ni jasno, da bo ta nova različica OpenCL resnično vplivala na industrijo osebnih računalnikov, zlasti za uporabnike sistema Windows. Kljub temu, da aplikacije, kot sta Folding @ Home in Blender, uporabljajo OpenCL za različne namene (Blender ga na primer uporablja za upodabljanje ciklov na grafičnih procesorjih AMD), se zdi, da nobeden od večjih prodajalcev ne postavlja jezika v središče svojih prihodnjih načrtov, čeprav bi se to lahko spremenilo, ko Intel zažene različico podatkovnega središča Xe.