Khronoksen uusi OpenCL 3.0 -rajapinta on raju suunnanmuutos

Kaotik

Banhammer
Ylläpidon jäsen
Liittynyt
14.10.2016
Viestejä
22 620
khronos-opencl-30-20200427.jpg


Kaotik kirjoitti uutisen/artikkelin:
Khronos Group hallinnoi muun muassa useita merkittäviä avoimen lähdekoodin rajapintoja sekä grafiikkaan että laskentaan. Nyt yhtiö on saanut valmiiksi alustavat ominaisuudet uuden sukupolven laskentarajapinnalleen.

OpenCL 3.0 on todella merkittävän tason muutos ja omalla tavallaan myös askel taakse. Uusi rajapinta tekee OpenCL 1.2:sta oletustason, mitä kaikkien on tuettava, ja kaikesta siitä ylöspäin valinnaista. OpenCL 2.X -versioiden ominaisuudet löytyvät myös uudesta 3.0-versiosta, mutta ne on muutettu valinnaisiksi optioiksi, joiden mahdollisen tuen sovellus voi tarkistaa nopeasti. Myös itse 3.0:n omat uudet ominaisuudet ovat nyt valinnaisia. Aiemmin tiettyä OpenCL-versiota tukevien laitteiden oli tuettava kaikkia sen version ominaisuuksia riippumatta siitä, olisiko sen tyyppisellä laitteella mitään käyttöä niille.

Rajapinnan uudet linjat nähdään parhaana ratkaisuna saada ala hyödyntämään uusia ominaisuuksia. Aiemmin valmistajat ovat saattaneet rajoittaa tuen esimerkiksi 1.2-tasolle, vaikka 2.X sisältäisi hyödyllisiä uudistuksia, koska kyseisen laitteen kannalta täysin hyödyttömien muiden 2.X-ominaisuuksien sisällyttäminen tulisi liian kalliiksi. Toisaalta taas uusi ratkaisu saattaa rajoittaa uudempien ominaisuuksien tukea sovelluspuolella, mikäli sovelluksen halutaan toimivan useilla eri laitteilla. OpenCL 3.0 -kehittäjät voivat luottaa kaikkien tukevan vain 1.2-tasoa ja siten punnitsemaan onko uudempien ominaisuuksien tukemisesta saatava hyöty vaivan arvoista.

Nyt julkaistu OpenCL 3.0 on vielä virallisesti alustava julkaisu, eli sen ominaisuuksia saatetaan palautteen vuoksi hienosäätää ennen lopullista lukkoon lyömistä. Rajapinnasta syvemmin kiinnostuneille suosittelemme Khronoksen tiedotteen ja AnandTechin artikkelin lukua.

Läheet: Khronos, AnandTech

Linkki alkuperäiseen juttuun
 
Niin no, haluatteko maksaa että USB 3- nopeutetuun sertfitioutuun akkupankkiin saa myös HDMI:n kiinni?
Mielestäni tämä pikemminkin selkeyttää, vaikken mitään OpenCLstä tiedä.
 
Niin no, haluatteko maksaa että USB 3- nopeutetuun sertfitioutuun akkupankkiin saa myös HDMI:n kiinni?
Mielestäni tämä pikemminkin selkeyttää, vaikken mitään OpenCLstä tiedä.
En nyt ymmärrä, miten liittyy USB 3:een tai HDMI hin?

Enkä myöskään sitä, miten selkeyttää tilannetta...
Kyllähän se olisi mielestäni ollut paljon selkeämpää, että
V 1.2: Tietyt ominaisuudet.
V2 : tietyt ominaisuudet.
V3 Tietyt ominaisuudet.

Nyt V3=V1,2 + ehkä mahdollisesti yksi tai useampi ominaisuus.
V2 Taas on määritelty, mitä kaikkea sisältää.

Voi siis olla V1.2 ja V3 yhteensopiva, mutta ei V2.
 
Jos jokaisesta ominaisuudesta täytyy maksaa ekstraa, niin kyllähän se varmasti lisää niiden tukea kun voi valikoida vain ne mitä tarvitsee.
 
Jos jokaisesta ominaisuudesta täytyy maksaa ekstraa, niin kyllähän se varmasti lisää niiden tukea kun voi valikoida vain ne mitä tarvitsee.
Maksaa extraa siinä mielessä, että pitää rakentaa siru joka osaa tehdä ne hommat ja ajurit sille.
 
Jos jokaisesta ominaisuudesta täytyy maksaa ekstraa, niin kyllähän se varmasti lisää niiden tukea kun voi valikoida vain ne mitä tarvitsee.
jaa..
Tuo tukee V3:sta.. Tukeekos se tätä, tuota ja sitä ominasuutta, ne tarvitsisin.. Katsotaampa tästä listasta, joka löytyy, kun lataa laitteen datsheetin, sivulta 75 näköjään... juu, eipä tue tuot kolmatta ominaisuutta... No katsompa sitten toista laitetta.. mistäs löydän sen tukemat ominaisuudet....

Ei minusta mitenkään helpolta ja yksinkertaiselta kuulosta..

Tietysti voidaan mennä siihen, että ohjelman tekijä ilmoittaa, että ohjelma toimii tietyillä korteilla ja muiden toimivuutta ei taata, milääntavoin..

VS:
Ohjelma vaatii V2 tuen..
Näyttis tukee V2:sta
-> Toimii.
 
Onhan tuota samaa directx:nki suhteen, on kaikenlaisia feature leveleitä yms. Harva näyttis tukee ihan kaikkia DX12 ominaisuuksia. Peleissä on sitten vaan fallbackit siltä varalta jos joku tietty feature ei olekaan tuettuna.
 
jaa..
Tuo tukee V3:sta.. Tukeekos se tätä, tuota ja sitä ominasuutta, ne tarvitsisin.. Katsotaampa tästä listasta, joka löytyy, kun lataa laitteen datsheetin, sivulta 75 näköjään... juu, eipä tue tuot kolmatta ominaisuutta... No katsompa sitten toista laitetta.. mistäs löydän sen tukemat ominaisuudet....

Ei minusta mitenkään helpolta ja yksinkertaiselta kuulosta..

Tietysti voidaan mennä siihen, että ohjelman tekijä ilmoittaa, että ohjelma toimii tietyillä korteilla ja muiden toimivuutta ei taata, milääntavoin..

VS:
Ohjelma vaatii V2 tuen..
Näyttis tukee V2:sta
-> Toimii.
Enitenhän tässä hyötyy piirivalmistajat, koska jotkut OpenCL-ominaisuudet ovat sellaisia ettei niitä yksinkertaisesti ikinä tulla tarvitsemaan sen piirin kohdemarkkinoilla, mutta samaan speksiin voi sisältyä oikeinkin hyödyllisiä ominaisuuksia. Tällöin siruvalmistajalle riittää, että tuetaan niitä itselle tarpeellisia ominaisuuksia.
Sovellusten kannalta voidaan rakentaa 1.2-perustaso ja siihen päälle sitten laajennosmaisesti uusia ominaisuuksia tarpeiden mukaan, softa pyörii sitten laitteen ominaisuuksien mukaan 1.2 tai 1.2 + laajennoksia tasolla. Jos sovellus vaatii tiettyjä ominaisuuksia, se sitten ilmoittaa vaativansa ne ja yksinkertaisesti ei toimi muilla.
Ehkä tällä saadaan samalla poistettua jarruja, missä rauta pidättelee softaa (esimerkiksi NVIDIAhan ei tue virallisesti kuin OpenCL 1.2:ta, OpenCL 2.0 -tuki on kokeellinen ja sisältää joitain rajoituksia minkä vuoksi eivät voi mainostaa tukevansa 2.0:aa)
 
Tässä mennään aika helposti siihen että kaikki tukevat vaan tuota perustasoa ja joku harva saattaa jotain yksittäistä lisäominaisuutta, mutta suurin osa jää käyttämättä koska menee liian työlääksi tehdä eri codepatheja eri ominaisuuksia tukeville laitteille tuon perusversion päälle. Paljon fiksumpaa olisi ollut laittaa yleisimmät ominaisuudet 3.0 tasoon ja irrottaa ne vähiten käytetyt ja hankalimmat raudalla implementoida ominaisuudet erillisille feature leveleille.
 
Tässä mennään aika helposti siihen että kaikki tukevat vaan tuota perustasoa ja joku harva saattaa jotain yksittäistä lisäominaisuutta, mutta suurin osa jää käyttämättä koska menee liian työlääksi tehdä eri codepatheja eri ominaisuuksia tukeville laitteille tuon perusversion päälle. Paljon fiksumpaa olisi ollut laittaa yleisimmät ominaisuudet 3.0 tasoon ja irrottaa ne vähiten käytetyt ja hankalimmat raudalla implementoida ominaisuudet erillisille feature leveleille.
Perustaso tulee päivittymään tulevaisuudessa sen perusteella mitä koetaan tarpeellisiksi liitettäväksi osaksi perusspeksiä, kuten Vulkanilla jne
 
Tietysti sinällään, kun tuota OGL:ää ei juuri missään käytetä, niin eipä sillä ole väliä, miten se ei toimi.

Tosin JOS sitä käytettäisiin, niin ilmeisesti kolmannen osapuolen pitäisi sitten määritellä esim
OGL3 basic game, OGL3 advanced game jne setit, joissa olisi tarkkaan määritelty vaaditut ominaisuudet. Sitten riittäisi esim pelissä maininta: Vaatii OGL3ag tuen, jolloin voisi katsoa, tukeeko oma rauta sitä. Voisi esim julkaista testit, jotka käyttävät noita kaikkia ominaisuuksia, valinnan mukaan ja visuaalisen jäljen lisäksi ilmoittaisivat "pass" /"fail", jos toimii / ei toimi.
Tuollaisenaan tuo on naurettava sotku, johon ei kannata kenenkään puuttua.
 
Tietysti sinällään, kun tuota OGL:ää ei juuri missään käytetä, niin eipä sillä ole väliä, miten se ei toimi.

Tosin JOS sitä käytettäisiin, niin ilmeisesti kolmannen osapuolen pitäisi sitten määritellä esim
OGL3 basic game, OGL3 advanced game jne setit, joissa olisi tarkkaan määritelty vaaditut ominaisuudet. Sitten riittäisi esim pelissä maininta: Vaatii OGL3ag tuen, jolloin voisi katsoa, tukeeko oma rauta sitä. Voisi esim julkaista testit, jotka käyttävät noita kaikkia ominaisuuksia, valinnan mukaan ja visuaalisen jäljen lisäksi ilmoittaisivat "pass" /"fail", jos toimii / ei toimi.
Tuollaisenaan tuo on naurettava sotku, johon ei kannata kenenkään puuttua.
OpenCL, ei OpenGL, ja kyllä sitä käytetään laajasti.
 
Kokoajan on harvinaisemmaksi tuntunut tuo ocl käyvän, peleissä varsinkin..
 
Kokoajan on harvinaisemmaksi tuntunut tuo ocl käyvän, peleissä varsinkin..

Miten joku jota ei ennen ole käytetty peleissä juuri yhtään voi käydä "harvinaisemmaksi" peleissä?

OpenCLää käytetään laajalti rinnakkaislaskennan GPU-kiihdytykseen muualla kuin peleissä, eikä se ole käymässä harvinaisemmeksi

OpenCL EI ole grafiikkarajapinta.
 
GPU on vain yksi laitetyyppi OpenCL ytimille. OpenCL ei ole todellakaan rajoittunut vain GPU-kiihdytykseen.
 
GPU on vain yksi laitetyyppi OpenCL ytimille. OpenCL ei ole todellakaan rajoittunut vain GPU-kiihdytykseen.

Juu, itsekin olen suunnitellut pari signaalinkäsittely-ydintä jotka on tarkoitettu OpenCLllä ohjelmoitaviksi.


Ja tosiaan joissain tilanteissa OpenCL voi olla ihan kätevä tapa saada myös monta ydintä ja SIMD-käskykannat (SSE/AVX/AVX-512) melko optimaalisesti käyttöön vaikka koodia ajaisi CPUlla.
 

Statistiikka

Viestiketjuista
261 360
Viestejä
4 536 020
Jäsenet
74 793
Uusin jäsen
Sasu Heikkilä

Hinta.fi

Back
Ylös Bottom