Valtaosa perus läppärin käyttäjistä ei tuosta AVX-512:sta hyödy oikeen yhtikäsmitään. Eiköhän tuo ole Intelillä mietitty sen suhteen, että ne jotka sitten oikeasti AVX-512:sta kaipaa ostaa laitteen erilaisella prossulla. Perusläppäriin hyvällä akkukestolla nuo liene on ihan ok kiviä.
En sano pahalla, mutta mulla on jotenkin sellainen kutina, että käytät / tarvitset AVX-512:sta kovasti ja on nyt sellainen kokemusharha/filterbubble sen "välttämättömyydestä" kun tuot sitä kovin usein esille. Eikä siinä se on ihan normaalia jos esim työkseen pulaa ongelmien kanssa jotka kannatta implementoida AVX-512:sta.
Ei tässä ole kyse "kokemusharhasta" vaan siitä että mietin asioita pitkällä tähtäimellä ja MAHDOLLISEN/POTENTIAALISEN suorituskyvyn näkökulmasta, enkä siitä näkökulmasta miten JUURI TÄLLÄ HETKELLÄ eniten käytössä olevat softat pyörii.
Eli, itse en käytä AVX-512aa ollenkaan, mutta suunnittelen työkseni erikoistuneita prosessoreita signaalinkäsittelyjuttuihin, ja niissä (järeä) SIMD on aivan elinehto järkevään suorituskykyyn ja hyvään energiatehokkuuteen.
Olen suunnitellut prosessoreita joissa on vielä AVX-512aakin leveämpi SIMD-datapolku. (toki kellot paljon pienempiä ja rinnakkaisten laskentayksiköiden määrät paljon pienempiä, kun kuitenkin kyse hyvin pienistä vähävirtaisista ytimistä)
Kun halutaan oikeasti sitä suorituskyvyn kannata parasta mahdollista lopputulosta
numeronmurskaukseen,
ja ollaan valmiita näkemään se vaiva sen käyttämisestä, järeä SIMD on aivan ehdoton.
PC-puolella vaan ongelma on se, että softa laahaa vuosia jäljessä, peleihin alkaa vasta nyt tulla optimointeja edes AVXlle, ja yhteensopivuussyyt estää kätevästi ottamasta uusia käskykantoja käyttöön.
Paljon suorituskykyä tarvitsevia workloadeja joissa AVX-512lla ei tee mitään on esim joku selaimen javascript-tulkki, tai kääntäjä, jolla käännetään koodia, tai joku palvelinsofta joka palvelee todella suurta määrää käyttäjiä. Tai sitten tosiaan tuollaiset massiivisten XMLien parsetukset tms.
Muuten suuri osa paljon suorituskykyä tarvitsevasta koodista on kuitenkin jossain määrin signaalinkäsittelytyylistä multimediakoodia, jossa kyllä löytyisi leveälle ja ominaisuusrikkaalle SIMD-käskykannalle vähintään
paikoitellen käyttöä.
Eli ongelma on se, että kun mahdollinen tulevaisuuden kapasiteetti ja
hyöty tämän hetken softilla on ihan eri tasolla, niin tavallinen pulliainen tuijottaa vaan niitä tämän hetken benchmarkkeja vanhoilla softilla, minä taas ajattelen potentiaalia optimoiduilla softilla (sekä sitä, koska ne optimoinnit niihin softiin viimein saataisiin, niitä optimointeja ei myöskään tule suuressa mittakaavassa ennen kuin rauta yleistyy, muna vs kana-ongelma)
Itsellä taas on toki toiseen suuntaan oleva kokemusharha kun täällä kirjoitellaan geneerista weppi tunkkia ja mitä liene datan muunnosajoja melko geneerisesti.. jos käytetyt kirjastot / vm:t / x SSE/AVX/himmeliä tukee niin kiva, mutta ei näitä käsin aleta optimoimaan tietyille käskylaajennokksille ollenkaan. Eria asia sitten kannattaisiko, mutta siihen ei aikaa/rahaa anneta niin se sitten siitä.
AVX-512 rikkaampien ominaisuuksiensa (mm. scatter) takia nimeomaan mahdollistaa sen, että kääntäjän on teoriassa helpompi automaattisesti (jos sille vaan annetaan lupa) vektoroida se koodi, että koodarin ei tarvitse tehdä mitään että ne SIMD-käskyt tulee joissain tilanteissa käyttöön
Tässä tulee kuitenkin ongelmaksi yhteensopivuus; Normaalit softankehitysmekanismit eivät tue sitä, että kääntäjä voisi helposti ja automaattisesti tehdä koodista monta eri versiota eri käskykantalaajennoksille ja ajonaikaisesti valittaisiin oikea, vaan koodaaja joutuu näkemään huomattavasti ylimääräistä vaivaa jos haluaa koodista monta eri polkua eri käskykantalaajennoksille. Tämän takia kääntäjälle tyypillisesti vaan sanotaan että "targetoi geneeristä x86-64sta" (eli SIMDn osalta joku SSE2) tai sitten "saat käyttää AVXää", mutta käytännössä mitään binäärimuodossa toimitettavaa softaa yhteensopivuussyistä voida kääntää vain AVX512-tuki päällä, koska se binääri ei toimisi suurimmalla osalla käyttäjistä.
Ja Intelin sähläys sen suhteen ettei ole tuonut AVX-512sta työpöytämalleihinsa eikä edes AVXää pikkuytimiinsä on vaan pahentanut tilannetta, ja taas tämä AVX-512n kytkeminen oletuksena pois päältä Adler Lakesta on samaa sähläystä. Joskus vuonna 2028 softankehittäjät eivät vieläkään voi kääntäjistään kytkeä oletuksena AVX-512aa päälle kun ihmisillä on silloin käytössään vielä edelleen liikaa Adler Lakeja jotka eivät sitä tue (zen4 todnäk tuo sille tuen ensi vuonna).
(Juuri taisi uusi joku peli saada jonkun patchin jossa siitä disabloitiin AVX-tuki kun peli ei toiminut Atomeilla, Nehalemeilla tai Phenomeilla jotka ei tue AVXää, tosin ilmeisesti se peli kuitenkin käytti sitä AVXää vain hyvin vähän, oli aiottu olla käyttämättä yhteensopivuussyistä mutta vahingossa jäänyt päälle johonkin kirjastoon jolloin yhteensopivuutta ei aluksi ollutkaan)
Mutta tosiaan, itse en pidä AVX-512sta mitenkään täydellisenä, ARMin SVE/SVE2 on mielestäni paljon parempi, mutta AVX-512 on se kehittynein SIMD mikä meillä x86lla on, eikä ole mitään realistisia mahdollisuuksia että lähitulevaisuudessa tulisi x86lle mitään parempaa; jos halutaan vektoroida mahdollisimman suuri osa koodin loopeista niin sitten AVX-512 on siihen paras optio. Eli monessa koodissa parasta suorituskykyä halutessa joko aletaan ottaa x86lle AVX-512sta käyttöön tai hypätään kokonaan ARM-maailmaan
Jos Intel ei olisi alkanut aikoiaan puuhastelemaan Larrabeen kanssa niin meillä olisi ehkä AVX-512 tilalla joku hiukan puhtaampi mutta ei kuitenkaan merkittävästi erilainen AVX2sta kehittyneempi SIMD-laajennos. Mahdollisesti ehkä joku "AVX3" scatter-storella mutta edelleen 256-bittisillä vektoreilla.