Virallinen: AMD vs Intel keskustelu- ja väittelyketju

  • Keskustelun aloittaja Keskustelun aloittaja Sampsa
  • Aloitettu Aloitettu
Se mikä on liikaa kilpailua AMD:lle ei ole välttämättä intelille.

Onko amd sinusta liian iso? AMD:n ja Intelin kokoero on varmaan 10 kertainen. Joten sinun logiikalla pelkästään Intelin pilkkominen pitäisi riittää.
Pitäisi olla oikeaa kilpailua ja siihen ei oikein vielä kymmenen yritystä riitä. Pari kymmentä kun tulisi markkinoille voisi olla jotain motiivia innovoidakin sen sijaan, että keskityttäsiin vain oman aseman säilyttämiseen viallisen patenttijärjestelmän turvin.
 
En pistänyt tästä uutista, koska ei ole muita lähteitä eikä noudata itselle tuttuja Intelin roadmappityylejä, mutta pistetään nyt väittelyketjuun ihmeteltäväksi

VideoCardzin mukaan Rocket Lakesta on tulossa 6C/12T i5, 8C/12T i7 ja 8C/16T i9. Rocket Laken rajoittuminen 8 ytimeen on ollut vuodoissa jo ajat sitten. Konfiguraatiot ovat teknisesti helposti toteutettavissa, Intelhän antaa jo Comet Lakeillakin pistää HT:n päälle/pois ydinkohtaisesti.
Tämä lienee taas Intelin taitavaa tuotesegmentointia. Aina pitää olla jokin porkkana, jonka avulla kuluttaja saadaan kiinnostumaan kalleimmasta mallista. AMD ei ole tässä perinteisesti onnistunut yhtä hyvin, esim. 8-ytimisissä 3700X on ollut se kannattavin hankinta ja uusi 3800XT ei ole juuri kerännyt kehuja hinta/suorituskyky-suhteestaan.
 
En pistänyt tästä uutista, koska ei ole muita lähteitä eikä noudata itselle tuttuja Intelin roadmappityylejä, mutta pistetään nyt väittelyketjuun ihmeteltäväksi

VideoCardzin mukaan Rocket Lakesta on tulossa 6C/12T i5, 8C/12T i7 ja 8C/16T i9. Rocket Laken rajoittuminen 8 ytimeen on ollut vuodoissa jo ajat sitten. Konfiguraatiot ovat teknisesti helposti toteutettavissa, Intelhän antaa jo Comet Lakeillakin pistää HT:n päälle/pois ydinkohtaisesti.

Melko varmasti virhe; että pitäisi olla joko 8 tai 16. Liikaa copy-pastea, copy-pastettu yhdistelmä alemmasta ja ylemmästä rivistä.
 
Melko varmasti virhe; että pitäisi olla joko 8 tai 16. Liikaa copy-pastea, copy-pastettu yhdistelmä alemmasta ja ylemmästä rivistä.
Pidän hyvin epätodennäköisenä, että tuo olisi virhe, koska ilman tuota eroa i7:n ja i9:n välillä ei olisi mitään merkittävää eroa, jolloin i9 ei oikein olisi nimensä veroinen. Itse näkisin, että joko tuo säiemäärä pitää paikkansa tai sitten se koko vuoto on huuhaata.
 
Pidän hyvin epätodennäköisenä, että tuo olisi virhe, koska ilman tuota eroa i7:n ja i9:n välillä ei olisi mitään merkittävää eroa, jolloin i9 ei oikein olisi nimensä veroinen. Itse näkisin, että joko tuo säiemäärä pitää paikkansa tai sitten se koko vuoto on huuhaata.

Jos siinä i7ssa on 8 säiettä, niiden välillä on hyvin selvä ero.

Copypastettu ylin rivi, (jossa mm. ydinmäärä) ja sen jälkeen editoitu säiemäärää alas, ja tapahtunut vahingossa aivopieru ja siihen on kirjoitettu sama kuin halvemmalla mallilla(12), vaikka olisi pitänyt kirjoittaa 8.
 
Jos siinä i7ssa on 8 säiettä, niiden välillä on hyvin selvä ero.
Se taas ei menisi enää läpi AMD:n aiheuttaman säiekilpailun takia, ja pidän vielä epätodennäköisempänä, että oikeassa vuodossa olisi tuollainen typo, varsinkin kun tuo näyttää Intelin perinteiseltä roadmap-slideltä.
 
Se taas ei menisi enää läpi AMD:n aiheuttaman säiekilpailun takia, ja pidän vielä epätodennäköisempänä, että oikeassa vuodossa olisi tuollainen typo, varsinkin kun tuo näyttää Intelin perinteiseltä roadmap-slideltä.

Ei se ole säiekilpailu vaan ydinkilpailu. Moar cores, ei moar threads.
 
Ei se ole säiekilpailu vaan ydinkilpailu. Moar cores, ei moar threads.
Kyllä se on myös thread-kilpailua - AMD aloitti laittamalla HT:n kaikkiin malleihin ja nyt se on myös Intelillä Core i3- ja core i5-malleissa myös desktopilla.

Sinulla on välillä aika ylimielinen asenne muiden mielipiteitä kohtaan. Lukitset omasi ja sen jälkeen jätät huomiotta mitä muut sanovat tai vähintään kädenheilautuksella esität, että omasi on vaan jotenkin automaattisesti parempi.
 
Ei se ole säiekilpailu vaan ydinkilpailu. Moar cores, ei moar threads.

Kyllä ne threadit ovat mukana AMD:n strategiassa. Nopein ilman SMT:tä julkaistu Ryzen on rajoitetusti OEM markkinoille julkaistu nineämisensä ja hintansa puolesta hieman low endiin kääntyvä 6c/6t 2500X ja "yleisille markkinoille" on julkaistu vain yksi malli per mallisarja aivan alimpaan päähän eli 1200, 2200G ja 3200G (toki 3100 nimellisesti alitti tämän myöhemmin). Intelin 9000 sarjan aikaan AMD myös muisti markkinoinnissa mainita, että heiltä saa enemmän threadeja samaan rahaan, kun vertasi esim 3600X vs 9400F

Eikö samaan arkkitehtuuriin perustuva 6c/12t prossu olisi pahimillaan jopa nopeampi hyvin säikeistyvissä sovelluksissa kuin 8c/8t malli ja keskimäärinkin melko lähellä, jos molemmilla samat välimuistimäärät? Olisi aika katastrofaalinen itseään vastaan kilpailu julkaista nämä eri mallisarjoihin ja melko hämmentävä ratkaisu saman i-sarjan sisäänkin.
 
Kyllä ne threadit ovat mukana AMD:n strategiassa.

Mutta ei ne "myy" samalla tavalla kuin ytimet. Idiootit osaa tuijottaa ydinmärtää muttei säiemäärää.

Nopein ilman SMT:tä julkaistu Ryzen on rajoitetusti OEM markkinoille julkaistu nineämisensä ja hintansa puolesta hieman low endiin kääntyvä 6c/6t 2500X ja "yleisille markkinoille" on julkaistu vain yksi malli per mallisarja aivan alimpaan päähän eli 1200, 2200G ja 3200G (toki 3100 nimellisesti alitti tämän myöhemmin). Intelin 9000 sarjan aikaan AMD myös muisti markkinoinnissa mainita, että heiltä saa enemmän threadeja samaan rahaan, kun vertasi esim 3600X vs 9400F

AMDn strategia ei ole Intelin strategia. Intelillä ei ole mitään tarvetta eikä halua matkia AMDtä.

Intelin pitää jollain erotella i9 ja i7 toisistaan ja tuossa sukupolvessa SMTn disabloiminen i7sta on ihan järkevä tapa tähän.

Se segmentoi tuotteet juuri siten, että i7 on jo se "todella hyvä peliprossu" mikä se on aina ollut ja i9 on sitten niille jotka haluaa vielä enemmän rinnakkaista vääntöä lähinnä muuhun kuin pelaamiseen.

Eikö samaan arkkitehtuuriin perustuva 6c/12t prossu olisi pahimillaan jopa nopeampi hyvin säikeistyvissä sovelluksissa kuin 8c/8t malli ja keskimäärinkin melko lähellä, jos molemmilla samat välimuistimäärät? Olisi aika katastrofaalinen itseään vastaan kilpailu julkaista nämä eri mallisarjoihin ja melko hämmentävä ratkaisu saman i-sarjan sisäänkin.

Ensinnäkin: Kun niillä ei olisi samat välimuistimäärät.

Intelillä, vaikka L3-välimuisti on jaettu kaikkien ydinten välillä, sen määrä piirillä on sidottu ydinten määrään.

Ilman SMTtä intelillä on 2 megaa/säie, SMTn kanssa 1 mega/säie. Tällä on vaikutus kakun osumatarkkuuteen, SMTn kanssa missailee enemmän, kun efektiivinen working set on isompi. (ja L1- ja L2-kakkujen kanssa tämä on pahempi kuin L3-kakun kanssa)

(ja tämä kakkujen huonompi efektiivinen osumatarkkuus on oleellinen asia huonontamaan SMTn energiatehokkuutta)


Toisekseen: Olisi nopeampi vain hyvin harvinaisissa tilanteissa. "normaaleilla hyvin säikeistyvillä softilla" i7 olisi edelleen nopeampi; SMTstä ei saada yleensä yli 33% hyötyä; Ja vaikka joskus saataiisin vaikka 40% hyöty, virrankulutus kasvaa silloin helposti enemmän kuin 40%, mikä tarkoittaa sitä että se SMTtön 8-ydin-prossu voi samalla virrankulutuksella/lämmöntuotolla tällöin pyöriä vaikka 6% suuremmalla kellolla ja olla silti edelleen nopeampi).

Ne tilanteet missä se 6/12 i5 olisi nopeampi kuin8/i i7 olisi siis hyvin harvinaisia.

Ja se, että i7 olisi ilman SMTtä tekisi siitä nopeamman nimenomaan peleissä, joista juuri mikään ei kuitenkaan hyödynnä yli 8 säiettä, ja SMTn puuttumisella vaan varmistetaan se, että siellä ei tule kuormanjako-ongelmia (ja niistä johtuvia satunnaisia hidastumisia) siitä, että sinne eksyy pelin raskaimman (ja FPSn kannalta kriittisen) säikeen kanssa samalle ytimelle joku muu säie jolla ei olisi mitään kiirettä.
 
Toisekseen: Olisi nopeampi vain hyvin harvinaisissa tilanteissa. "normaaleilla hyvin säikeistyvillä softilla" i7 olisi edelleen nopeampi; SMTstä ei saada yleensä yli 33% hyötyä; Ja vaikka joskus saataiisin vaikka 40% hyöty, virrankulutus kasvaa silloin helposti enemmän kuin 40%, mikä tarkoittaa sitä että se SMTtön 8-ydin-prossu voi samalla virrankulutuksella/lämmöntuotolla tällöin pyöriä vaikka 6% suuremmalla kellolla ja olla silti edelleen nopeampi).
Tästä on ennakkotapaus, eli i7-8700K vs i7-9700K. Kaikkien lempparitestissä Cinebenchissä identtiset tulokset, vaikka i7-8700K:lla on hiukan alemmat kellot. Se nyt vaan ei käy, että kaikkia säikeitä käyttävässä testissä halvempi malli saa yhtä hyvän tuloksen, joten tuotesegmentoinnin kannalta 6C/12T ja 8C/8T samassa mallisarjassa olisi järjetöntä.
 
Tästä on ennakkotapaus, eli i7-8700K vs i7-9700K. Kaikkien lempparitestissä Cinebenchissä identtiset tulokset, vaikka i7-8700K:lla on hiukan alemmat kellot.

Mites tämä sinun ennakkotapauksesi menikään?

9gen-bench-cine.png

7% ero ei ole "identtiset tulokset".

Toisekseen, peruskello on muuten 8700k:lla korkeampi kuin 9700k:lla (3.7 GHz vs 3.6 GHz).

Että kerrotko lisää mihin perustuu väitteesi siitä että 8700k:lla on "alemmat kellot" ? Onko sinulla jotain faktatietoa siitä, mikä se kellotaajuus testiä ajaessa on ollut?

Se, paljon maksimiturbokello on, on irrelevanttia hyvin monisäikeistyvällä softalla.

(Ja Cinebench ei ole "kaikkien" lempparitesti vaan vain AMD-fanien lempparitesti koska se on sen verran ryzen-ystävällinen, AVXää tukeva versiokin tuli juuri ennen zen2en(jossa täysinopea AVX) julkaisua että ehti zen2-testeihin ja onnistui niissä antamaan hyviä "zen2 on näin paljon zen1stä nopeampi-lukuja)


Blender-testissä tosiaan 8700k oli sitten huiman yhden prosentin verran nopeampi, mutta vray-testissä taas 9700k vei n. 4%lla, handbrakessa ero oli kymmenisen prosenttia 9700k:N hyväksi, premieressä 9% 9700k:N hyväksi

Se nyt vaan ei käy, että kaikkia säikeitä käyttävässä testissä halvempi malli saa yhtä hyvän tuloksen, joten tuotesegmentoinnin kannalta 6C/12T ja 8C/8T samassa mallisarjassa olisi järjetöntä.

Jos ajatusmalli on sellainen, että "se nyt vaan ei käy että yhdessä testissä halvempi prossu on prosentin nopeampi vaikka se kalliimpi on kaikessa muussa selvästi nopeampi, niin kannattaa ehkä laittaa prioriteetteja hiukan uusiksi. Menee minkään tuotteiden hinnoittelu täysin mahdottomaksi jos kalliimman pitää aina olla kaikessa kaikella tavalla parempi
 
Riippuu testaajasta, löytyy myös eri testituloksia, itse katsoin täältä:
Lisäksi Cinebench R20:ssa i7-8700K jopa menee hiukan ohi.
Jotain rajaa siihen että mistä noita testituloksia katsoo. Toi on joku mysteerisivusto joka vissiin kopioi satunnaisia tuloksia omaan tietokantaansa muualta internetistä. Mitkään vertailut ei tuolla pidä paikkaansa, kun testiolosuhteiden ei voi olettaa olevan keskenään vastaavat.
 
Riippuu testaajasta, löytyy myös eri testituloksia, itse katsoin täältä:
Lisäksi Cinebench R20:ssa i7-8700K jopa menee hiukan ohi.

Tuo sivusto ei kerro yhtään mitään testimetodologiastaan. Millaisia muisteja ja emolevyjä käytetty, koska testit on ajettu jne, kuinka samanlaisia systeemit muuten olleet.

Ei kerrota edes että onko testit niiden itse ajamia vai vaan jostain internetista löydettyjä tuloksia.

Tuolla 8700k-testit todennäköisesti pääosin ajettu ennen hidastavia suojauspäivityksiä, i9700k-testit niiden jälkeen
 
Jotain rajaa siihen että mistä noita testituloksia katsoo. Toi on joku mysteerisivusto joka vissiin kopioi satunnaisia tuloksia omaan tietokantaansa muualta internetistä. Mitkään vertailut ei tuolla pidä paikkaansa, kun testiolosuhteiden ei voi olettaa olevan keskenään vastaavat.
No kelpaako tämä?
 
No kelpaako tämä?
Ihan samoja ongelmia tuossa näyttäisi olevan, eli ei mitään tietoa millä kokoonpanoilla noi on ajettu ja milloin (mikä herättää heti kysymyksen onko ne edes niiden itsensä ajamia).
 
Esim io-techin 10600kf testistä näkee, että 9700k vie ja 10600kf vikisee, vaikka 10600kf on merkittävästi kovemmilla kelloilla ja tehorajoilla kuin 8700k.
 
Techpowerup varmaan kelpaa?

Suurinpiirtein tasoissa R20:ssä:

cinebench-multi.png



8700K hieman nopeampi Blenderissä, Coronassa ja Keyshotissa:

blender.png


corona.png


keyshot.png



Ja onhan se 8700K myös nopeampi, purkamisessä, pakkaamisessa ja salauksessa...
 
Techpowerup varmaan kelpaa?

Suurinpiirtein tasoissa R20:ssä:

cinebench-multi.png



8700K hieman nopeampi Blenderissä, Coronassa ja Keyshotissa:

blender.png


corona.png


keyshot.png



Ja onhan se 8700K myös nopeampi, purkamisessä, pakkaamisessa ja salauksessa...
TPU ei ainakaan yhdessä vaiheessa ajanut uudestaan testituloksia esim. tietoturvakorjausten jälkeen.

edit: mutta joo, käytännössähän noi on tasoissa hyvin säikeistyvissä softissa jotka ei ole muistikaistarajotteisia. En silti näe mitään ongelmaa siinä että intel julkaisisi i7 prossun joka on jossain testeissä vain yhtä nopea kuin i5,tälläisiä tapauksia kun on jo nykyisessä ja edellisessä sukupolvessa (kaikki yhden säikeen testit). Lisäksi monen säikeen kelloja tai virtarajoja voi laskea/nostaa segmentoinnin vahvistamiseksi perinteiseen intel-tyyliin.
 
Viimeksi muokattu:
Jotenkin vain olisi erikoista jos osasta 11gen prossuista HT postetaan kun Intel juuri 10gen prossuihin lisäsi HT:n kaikkiin i3 prossuja myöten...
 
Jotenkin vain olisi erikoista jos osasta 11gen prossuista HT postetaan kun Intel juuri 10gen prossuihin lisäsi HT:n kaikkiin i3 prossuja myöten...
Toinen vaihtoehto olisi tiputtaa i5 prossut takaisin neljään ytimeen. Ei noille muuten saada järkevää segmentaatiota, etenkään K sarjan tuotteisiin.

Sinänsä toi 'puolikas' HT 12 säikeellä ei ole ihan maailman typerin idea. Windowsin scheduler osaa kyllä priorisoida niitä ytimiä joilla HT on asetettu pois päältä kunhan vaan bios antaa sopivat luvut ulos. Näin voitaisiin saada selkeämpi segmentaatio tuotteiden välille ilman että tarvii sitä i5 prossua tiputtaa neljään ytimeen tai jättää i5:n K malli pois katalogista.
 
Viimeksi muokattu:
TPU ei ainakaan yhdessä vaiheessa ajanut uudestaan testituloksia esim. tietoturvakorjausten jälkeen.

edit: mutta joo, käytännössähän noi on tasoissa hyvin säikeistyvissä softissa jotka ei ole muistikaistarajotteisia. En silti näe mitään ongelmaa siinä että intel julkaisisi i7 prossun joka on jossain testeissä vain yhtä nopea kuin i5,tälläisiä tapauksia kun on jo nykyisessä ja edellisessä sukupolvessa (kaikki yhden säikeen testit). Lisäksi monen säikeen kelloja tai virtarajoja voi laskea/nostaa segmentoinnin vahvistamiseksi perinteiseen intel-tyyliin.

Missäs vaiheessa intel muutti turbotus aikaa? Oliko 9000 sarjan myötä? Ajattelin vaan että noi monet testithän on niin lyhyitä että se 9700K voi vedellä turbot päällä sen koko testin kun taas 8700K saattaa tiputtaa jo kelloja. Että olikos se 8700K TAU 8sec ja 9700K TAU 28sec vai mitenkäs se menikään?
 
Ja niin, 4 megan L3-kakun huti myös huomataan selvästi aiemmin kuin 16 megan l3-kakun huti (TAG-ramit voi olla 4 kertaa pienemmät ja lähempänä ytimiä) jolloin muistiaccess voidaan aloittaa aiemmin ja CPUlle näkyvä viive on tämänkin takia pienempi.

Osoiteet on jaettu raudalla joten assosiatiivisuuden pysyessä samana sama määrä tageja on tarkistettavana cachen koosta riippumatta. AMD:n L3 on viipaloitu neljän ytimen kesken joten lähtökohtaisesti tagien ei kannata olla lähellä ytimiä vaan L3:n keskellä. Tagien tarkistuksen latenssit lienevät samat L3:n koosta riippumatta, niiden muuttaminen ei ole dokumentoitu osa CCX:n konfiguroitavuutta. Dozereissa itse data-arrayn puolittaminen laski itse L2:n latenssia mutta Zenissä tätäkään ei taida tapahtua.

-> arrayn kasvaessa signaaliviive tosiaan kasvaa jolloin latensseja joudutaan nostamaan, mites sitten jos ko. design bäckportataan vanhemmalle prosessille :D
 
4) varautuminen siihen, että haluttu data löytyykin jonkun toisen chipletin L3-kakuista, kun systeemi tukee montaa chiplettiä. (tosin silti pitää varautua siihen, että data löytyy saman piilastun toiselta chipletiltä, mutta se on lähempänä, sen tarkastaminen on nopeampaa)

Muistiohjain tekee coherenssitarkistuksen aivan samoin oli kyse sitten toisesta chipletistä tai saman chipletin toisesta CCX:stä. Datakin saman chipletin CCX:ien välillä kulkee muistiohjaimen kautta joten eroja ei juuri synny. Ja itse coherenssitarkastus voidaan tehdä rinnan muistihaun kanssa eikä se hidasta muistihakua ellei coheressitarkastus kestä kauemmin kuin itse muistihaku. Data pitää hakea toisen CCX:n cachesta(kaikista, ei vain L3:sta) vain siinä tapauksessa että se on siellä eksklusiivisenä modifioidussa tilassa.
 
Intelin vastikaan ilmestyneet ominaisuuslistaukset kertovat että TigerLaken jälkeen tulevassa AlderLakessa ei olisi AVX512-tukea. Johtuneeko big.Little konfiguraatiosta jossa pikkuytimet tukevat vain AVX2:ta ja rajoittavat käskykantaa vai onko Intel viimein nähnyt järjen valon ja luopunut ytimien turvottamisesta ylileveillä vektorilaajennuksilla - aika näyttää.
 
Intelin vastikaan ilmestyneet ominaisuuslistaukset kertovat että TigerLaken jälkeen tulevassa AlderLakessa ei olisi AVX512-tukea. Johtuneeko big.Little konfiguraatiosta jossa pikkuytimet tukevat vain AVX2:ta ja rajoittavat käskykantaa vai onko Intel viimein nähnyt järjen valon ja luopunut ytimien turvottamisesta ylileveillä vektorilaajennuksilla - aika näyttää.

Järjen valon? Syökö se AVX-512-laajennos muka niin paljon pinta-alaa, että se olisi järkeä pudottaa? Suorituskykyähän tuo tuonee jälleen isosti lisää, kuten nuo edellisetkin leveyden tuplaukset. Muistan edelleen hyvin, kuinka silloisessa alle kilon kannettavassani oleva 15 W U-sarjan kaksiydin-Haswell oli sopivassa lyhytkestoisessa kuormassa yhtä nopea kuin sukupolvea vanhempi työaseman neliydin-Xeon. (Toki, ideaalisempi lähestymistapa olisi se modernien ARM-ytimien skaalautuva vektorointi. x86-64 -puolella kun leveämmän vektorikäskykannan suorituskykyhyödyn saa vasta uudelleenkääntämisen jälkeen.)

Tuo Alder Lake on erittäin todennäköisesti Intelin “big–little” -yhdistelmän syytä. Tuo ensimmäinen sukupolvi noista, Lakefield, kun ei tue mitään AVX-laajennoksia, koska ne sen pienemmät ytimet eivät tue edes sitä vanhinta osajoukkoa.
 
Järjen valon? Syökö se AVX-512-laajennos muka niin paljon pinta-alaa, että se olisi järkeä pudottaa? Suorituskykyähän tuo tuonee jälleen isosti lisää, kuten nuo edellisetkin leveyden tuplaukset. Muistan edelleen hyvin, kuinka silloisessa alle kilon kannettavassani oleva 15 W U-sarjan kaksiydin-Haswell oli sopivassa lyhytkestoisessa kuormassa yhtä nopea kuin sukupolvea vanhempi työaseman neliydin-Xeon. (Toki, ideaalisempi lähestymistapa olisi se modernien ARM-ytimien skaalautuva vektorointi. x86-64 -puolella kun leveämmän vektorikäskykannan suorituskykyhyödyn saa vasta uudelleenkääntämisen jälkeen.)

Syö. Prossun dataväylät pitää olla 2 kertaa järeämmät kuin 256-bittisessä versiossa ja 4 kertaiset 128-bittiseen versioon nähden. Signalointi on nimenomaan se ongelma viivanleveyksiä pienennettäessä ja Intel maksimoi ongelmansa leveillä datapoluilla.

Ja kun käskykantalaajennukset on sillisalaattia niin AVX-512 ei tuo nopeutusta yhtään mihinkään kun ei sitä missään käytetä kun kaikki prosessorit ei sitä tue. Ja silloinkin kun ko. käskykantaa tuetaan se räjäyttää prosessorin tehonkulutuksen taivaisiin ja tiputtaa saavutettua kellotaajuutta jolloin sekin pieni nopeuslisä joka olisi saavutettavissa menetetään.
 
Muistiohjain tekee coherenssitarkistuksen aivan samoin oli kyse sitten toisesta chipletistä tai saman chipletin toisesta CCX:stä.

DRAM-ohjain ei tee yhtään mitään koherenssitarkastuksia. Se koherenssitarkastus tehdään system agentin puolella.

Datakin saman chipletin CCX:ien välillä kulkee muistiohjaimen kautta joten eroja ei juuri synny.

Ei kulje DRAM-ohjaimen kautta, vaan system agentin

Ja itse coherenssitarkastus voidaan tehdä rinnan muistihaun kanssa eikä se hidasta muistihakua ellei coheressitarkastus kestä kauemmin kuin itse muistihaku.

Voidaan tehdä mutta haaskaa kaistaa (ja tuhlaa virtaa) huomattavasti jos tehdään niin.

Itse en ole löytänyt mistään dokumentaatiota siitä, kuinka tämä todellisuudessa tehdään.

Data pitää hakea toisen CCX:n cachesta(kaikista, ei vain L3:sta) vain siinä tapauksessa että se on siellä eksklusiivisenä modifioidussa tilassa.

Oletko löytänyt jostain jotain oikeaa faktatietoa siitä, miten zenissä nämä on toteutettu?

Sen datan siirtäminen toiselta välimuistilta on selvästi nopeampaa ja energiatehokkaampaa kuin sen datan hakeminen DRAMista, joten se kannattaa hakea sieltä aina kuin mahdollista, vaikka siellä ei olisi dataa likaisena.

Lisäksi siinä, että se haetaan sieltä aina kuin mahdollista, ratkeaa hyvin ongelma L1n tarkastusten suheen:

Zen-arkkitehtuurissa L1-välimuistit on inklusiivisia L2een nähden joten tarkastamalla L2-tagit tiedetään, löytyykö data sen saman ytimen L1stä, mutta ei tiedetä, onko se siellä missä tilassa.

Ja L3n yhteydessä on zen2ssa L2n varjo-tagit, joista se tagitieto lähtee ytimeltä ulos paljon nopeammin kuin että katsottaisiin itse L2n yhteydessä olevista varsinaisista tageista


Tieto siitä, että "dataa ei ole täällä, data pitää ladata DRAMilta" saadaan siis tarkastamatta L1sta.

Mutta, jos data löytyy sieltä L2sta ja sitä aletaan siirtää sieltä, sitten vasta pitää tarkastaa että löytyykö L1stä tuoreempi likainen kopio.
 
Osoiteet on jaettu raudalla joten assosiatiivisuuden pysyessä samana sama määrä tageja on tarkistettavana cachen koosta riippumatta.
AMD:n L3 on viipaloitu neljän ytimen kesken joten lähtökohtaisesti tagien ei kannata olla lähellä ytimiä vaan L3:n keskellä.

Ei tarvi arvella missä ne tagit on kun se näkyy oikein hyvin kuvista:


1594572614073.png


tagit näkyy sinisempänä kuin itse data arrayt. Aika pitkä matka tuossa Matissassa tulee vasemman yläkulman L3-blokin TAGeilta oikean alakulman ytimelle.

Renoirissa matka on aika paljon vähemmän, kun välissä on aika paljon vähemmän niitä data-arrayitä:

TuZUQ5mFxQAwSDkh.jpg
Se matka sieltä

Tagien tarkistuksen latenssit lienevät samat L3:n koosta riippumatta, niiden muuttaminen ei ole dokumentoitu osa CCX:n konfiguroitavuutta.

Kerrotko lisää, mistä dokumenteista puhut?
 
@hkultala sivistätkö tyhmää
Sen datan siirtäminen toiselta välimuistilta on selvästi nopeampaa ja energiatehokkaampaa kuin sen datan hakeminen DRAMista, joten se kannattaa hakea sieltä aina kuin mahdollista, vaikka siellä ei olisi dataa likaisena.
Mitä tarkoitat että data on likaisena?
Zen-arkkitehtuurissa L1-välimuistit on inklusiivisia L2een nähden joten tarkastamalla L2-tagit tiedetään, löytyykö data sen saman ytimen L1stä, mutta ei tiedetä, onko se siellä missä tilassa.
Mitä tällä tarkoitat?
Onko possun välimuistissa dataa pakattuna vai mitä tarkoitat datan tilalla? Olen ymmärtänyt että joko se data on siellä tai sitten se ei ole siellä välimuistissa.
Ja L3n yhteydessä on zen2ssa L2n varjo-tagit, joista se tagitieto lähtee ytimeltä ulos paljon nopeammin kuin että katsottaisiin itse L2n yhteydessä olevista varsinaisista tageista
Mitä ovat varjo-tagit ja miten eroaa tavallisista tageista?
Mutta, jos data löytyy sieltä L2sta ja sitä aletaan siirtää sieltä, sitten vasta pitää tarkastaa että löytyykö L1stä tuoreempi likainen kopio.
Mitä tarkoitat tuoreempi kopio? Eikos se data ole silloin eri? Ja jos löytyi jo oikea data niin mitä merkitystä sillä on että se olisi tuoreempi kopio?
Mutta jos oikein ymmärsin niin se data kannattaa tarkistaa sieltä l1 muistista sen takia että sen saa sieltä nopeammin, mutta toisaalta olen joskus jostain lukenut että se data etsitään sisältä ulospäin (L1 -> L2 -> L3 -> DDR muisti) eikä toisinpäin
 
@hkultala sivistätkö tyhmää

Mitä tarkoitat että data on likaisena?

Että siihen on sen ytimen toimesta kirjoitettu, siitä on siellä uusin versio, ja tätä ei ole vielä tallennettu minnekään muualle.

Mitä tällä tarkoitat?
Onko possun välimuistissa dataa pakattuna vai mitä tarkoitat datan tilalla? Olen ymmärtänyt että joko se data on siellä tai sitten se ei ole siellä välimuistissa.

Ei ole pakattuna vaan tarkoitan noita välimuistikoherenttiusprotokollan tiloja. AMD käyttänee MOESI-protokollaa jossa on seuraavat tilat:

M = modified = likainen. Täällä on dataa, ja tätä dataa on muokattu eikä näitä muutoksia ole vielä kopioitu muualle.
E = exclusive. Täällä on dataa, tätä dataa ei ole muokattu, mutta sitä ei silti löydy mistään muusta välimuistista. Tätä saa muokata kertomatta muille.
O = owned. Täällä on dataa, tämä data löytyy monesta eri välimuistista, mutta tämä on merkattu omistajaksi, tämä saa muokata sitä, mutta tämän pitää sitten lähettää muutokset muille.
S = shared. Täällä on dataa, tämä data löytyy monesta eri välimuistista, tätä ei ole merkattu omistajaksi. Tämän pitää ensin neuvotella muiden välimuistien kanssa ja saada tilansa muutettua "owned"iksi tai "exclusiveksi" ennen kuin tämä saa kirjoittaa tänne.
I = invalid. Täällä ei ole mitään (oikeaa dataa (täällä voi olla vanhaa paikkaansapitämätöntä dataa jota ei saa käyttää))

Mitä ovat varjo-tagit ja miten eroaa tavallisista tageista?

Ne normaalit L2-tagit on siellä L2-välimuistin luona lähellä ydintä josta ytimen on nopea tarkastaa ne kun se tarkastaa L2n osumia.

Varjo-tageihin on kopioitu näiden sisältö, mutta ne ovat fyysisesti eri paikassa, L3n luona, josta niihin pääsee nopeasti käsiksi ytimen ulkopuolelta. NÄitä käytetään vain tuohon välimuistin koherenttiusjuttuun, että muualta voidaan tarakstaa, onko ytimen L2 (ja L1)-välimuistissa jotain.

Mitä tarkoitat tuoreempi kopio? Eikos se data ole silloin eri? Ja jos löytyi jo oikea data niin mitä merkitystä sillä on että se olisi tuoreempi kopio?

"kopio" oli tosiaan minulta vähän huono sanavalinta.

Kaikki data on aina jossain osoitteessa. Data on tosiaan eri, mutta osoite sama. Eli osoitteessa 12 on ensin vaikka luku 0. Sitten joku kirjoittaa sinne arvon 1.

Osoitteen 12 vanha arvo on 0, uusi arvo 1.

Mutta jos oikein ymmärsin niin se data kannattaa tarkistaa sieltä l1 muistista sen takia että sen saa sieltä nopeammin, mutta toisaalta olen joskus jostain lukenut että se data etsitään sisältä ulospäin (L1 -> L2 -> L3 -> DDR muisti) eikä toisinpäin

L1 on lähimpänä ydintä. Data on nopein hakea sille ytimelle sieltä L1stä.

Kun dataa tarvitaan sen ytimen ulkopuolella niin se on nopeampaa hakea sieltä uloimman tason välimuisteista.
 
Viimeksi muokattu:
DRAM-ohjain ei tee yhtään mitään koherenssitarkastuksia. Se koherenssitarkastus tehdään system agentin puolella.

No nykyään kutsun perinteistä Northbridgeä vain muistiohjaimeksi, tokihan muistiohjain on vain osa kokonaisuutta ja jos halutaan eritellä niin system agentiksi tuota osaa juu taidetaan kutsua.

Ei kulje DRAM-ohjaimen kautta, vaan system agentin

No en sanonutkaan että dram-ohjaimen vaan muistiohjaimen, northbridgeksi tätä kokonaisuutta aikaisemmin nimettiin mutta nykyään miksi milloinkin.

Voidaan tehdä mutta haaskaa kaistaa (ja tuhlaa virtaa) huomattavasti jos tehdään niin.

Näinhän AMD on ainakin K8-aikaan dokumentoinut asian tapahtuvan, siis rinnakkain dram-haun kanssa. Ja jotta moniprosessorisysteemissä nopeutta saadaan ulos enemmän kuin yhden prosessorin systeemissä näprätystä muistista suurimman osan pitää olla privaattia per threadi. Eli siis suurin osa muistihausta tulee jokataupauksessa muistiohjaimelta joten rinnakkain tapahtuva coherenssitarkastus ei tuhlaa yhtään mitään.

Snooppaus toiseen CCX:ään vastaa aina yhtä muistihakua ko. CCX:lle, tuhlaa virtaa ja kaistaa itse CCX:n toiminnasta. Siksi AMD:llä on nykyään directory-pohjainen filtteri muistiohjaimessa. Eli siellä on taulukko kokoa X johon voidaan varastoida tiedot muistisivuista tai suuremmistakin alueista ja todeta muistihaun yhteydessä ilman snooppia muihin CCX:iin että ko. muistialue on eksklusiivista käyttävälle CCX:lle, jaettua tai sisältää modifioituja alueita joiden mukaan voidaan välttää snooppaus muihin CCX:iin kokonaan useimmissa tilanteissa, directoryn koosta ja koodin järkevyyden asettamissa rajoissa, eli onko per threadi data varattu yhtenäisinä alueina, jaettu muisti pääosin vain lukukäytössä ja jaetun muistialueen kirjoitukset jollain tavalla järkevästi hallittu kuten varattu sivuttain yms.

Vähän on dokumentaatiota AMD:n puolelta, Intel on vähän paremmin directoryjään valuissut, kuten esimerkiksi sen että Sandy-Bridge E:stä lähtien noissa serveriversioissa on ECC-datasta nipistetty pari bittiä per cachelinja kertomaan onko ko. cachelinja varaamaton, varattu ko. prosessorinodeen vai broadcastattu muuallekin jonka mukaan tarvittavia snooppeja voidaan rajoittaa tarpeen mukaan.



Sen datan siirtäminen toiselta välimuistilta on selvästi nopeampaa ja energiatehokkaampaa kuin sen datan hakeminen DRAMista, joten se kannattaa hakea sieltä aina kuin mahdollista, vaikka siellä ei olisi dataa likaisena.

Näin sitä äkkiseltään voisi luulla mutta snooppaus on sen verran raskas että nimenomaan sitä koitetaan välttää. Intelin moniprosessoriversioissa on vaihtoehtoisia snooppausprotokollia ja early-snoop moodissa data haetaan ensisijaisesti muista cacheista, mutta sehän on vaatinut uuden protokollan kehittämistä eli MESIF- jossa F on Forward, meinaa että yhdelle jaetun datan haltijalle annetaan mahdollisuus forwardoida se eteenpäin puhtaassa tilassakin.
 
Ei ole pakattuna vaan tarkoitan noita välimuistikoherenttiusprotokollan tiloja. AMD käyttänee MOESI-protokollaa jossa on seuraavat tilat:

M = modified = likainen. Täällä on dataa, ja tätä dataa on muokattu eikä näitä muutoksia ole vielä kopioitu muualle.
E = exclusive. Täällä on dataa, tätä dataa ei ole muokattu, mutta sitä ei silti löydy mistään muusta välimuistista. Tätä saa muokata kertomatta muille.
O = owned. Täällä on dataa, tämä data löytyy monesta eri välimuistista, mutta tämä on merkattu omistajaksi, tämä saa muokata sitä, mutta tämän pitää sitten lähettää muutokset muille.
S = shared. Täällä on dataa, tämä data löytyy monesta eri välimuistista, tätä ei ole merkattu omistajaksi. Tämän pitää ensin neuvotella muiden välimuistien kanssa ja saada tilansa muutettua "owned"iksi tai "exclusiveksi" ennen kuin tämä saa kirjoittaa tänne.
I = invalid. Täällä ei ole mitään (oikeaa dataa (täällä voi olla vanhaa paikkaansapitämätöntä dataa jota ei saa käyttää))

Katsos, olet jo tutustunut Mesi-protokollaankin. Eikös se ollut vaan joku vanhentunut protokolla :D

Eli siis ihan normaali coherenssiprotokolla sallii datan lukemisen moneen paikkaan ilman sen suurempaa hidastuvuutta, mutta kirjoittaa voi vain eksklusiivisesti omistettuun välimuistilinjaan eli ennen kirjoitusta jaetut välimuistilinjat invalidoidaan muista välimuisteista. Owned on tarkennus että ko. linja ei ole muistissa, O ei voi poistua välimuistista ilman sen takaisinkirjoitusta muistiin. O:n haltija ei voi siihen kirjoittaa ennenkuin se on invalidoitu muista välimuisteista aivan kuten S:n tapauksessakin, ja muutkin O:n jakavat välimuistit voivat pyytää ko. linjaa eksklusiiviseksi jolloin se invalidoituu alkuperäisellä omistajalla. MOESI on se alkuperäinen ehdotus mutta MESI on useimmiten käytetty eli data kirjoitetaan omistajan vaihdoksessa muistiinkin, en tiedä miten AMD nykyään tuon hanskaa mutta kerran kaikki kuitenkin kulkee IO:n hubin kautta niin vaikuttaisi luonnollisesta että se muistiinkin tuupataan tuossa välissä jolloin voidaan yhdestä välimuistitilasta luopua. Moesi oli K8:ssa käytössä, siihen se sopikin luonnostaan hyvin kun muistiin kirjoitus tapahtui per prosessori ei yhteisen muistiohjaimen kautta.
 
Saivartelu on toki taitolaji, mutta taisit varmaankin alunperin ymmärtää mistä oli kyse ? Ei nyt kumminkaan kukaan ole täällä täysin pää pusikossa sen suhteen, että AMD:llä ei nykyisessä tilanteessa ole ainuttakaan tietoturva-aukkoa omassa prosessori -arkkitehtuurissaa, toisin kuin intelillä.

:facepalm:

AMDn prosessorit on tasan yhtä alttiita Spectren 1. variantille kuin Intelinkin prossut.

Ja tosiaan, kaikki AMDn n. vuoden 1996 jälkeen julkaisemat CPUt (K5sta lähtien) tekevät spekulatiivista suoritusta eli ne ovat sille potentiaalisesti alttiita.

Intel on sentään tällä vuosituhannella tehnyt Itaniumin ja Bonnell-Atomin jotka ovat immuuneita sille.
 
Viimeksi muokattu:
:facepalm:

AMDn prosessorit on tasan yhtä alttiita Spectren 1. variantille kuin Intelinkin prossut.

Ja tosiaan, kaikki AMDn n. vuoden 1996 jälkeen julkaisemat CPUt tekevät spekulatiivista suoritusta eli ne ovat sille potentiaalisesti alttiita.

Intel on sentään tälläv uosituhannella tehnyt Itaniumin ja Bonnell-Atomin jotka on immuuneita sille.
Ei vain potentiaalisesti vaan olivat haavoittuvia Zeniä myöten Spectren ykkösvariantille.
 
Syö. Prossun dataväylät pitää olla 2 kertaa järeämmät kuin 256-bittisessä versiossa ja 4 kertaiset 128-bittiseen versioon nähden. Signalointi on nimenomaan se ongelma viivanleveyksiä pienennettäessä ja Intel maksimoi ongelmansa leveillä datapoluilla.

Ja kun käskykantalaajennukset on sillisalaattia niin AVX-512 ei tuo nopeutusta yhtään mihinkään kun ei sitä missään käytetä kun kaikki prosessorit ei sitä tue. Ja silloinkin kun ko. käskykantaa tuetaan se räjäyttää prosessorin tehonkulutuksen taivaisiin ja tiputtaa saavutettua kellotaajuutta jolloin sekin pieni nopeuslisä joka olisi saavutettavissa menetetään.
Sami Riitaoja oli voinut mainita lähteen näille jutuille, eli Linus Torvalds juuri sanoi että AVX-512 on persiistä. :)
 
Vanhempi prosessorisukupolvi sen sijaan taas kärsii ongelmasta edelleen.

...

Intel Will Not Patch Spectre in Some CPUs | SecurityWeek.Com

Kaikki tuolla listassa olevat mikroarkkitehtuurit on yli kymmenen vuotta vanhoja, ja suurimman osan niistä myynti on lopetettu jo yli 9 vuotta sitten.

Kaskun et samantien valita sitä, että kuusnepan tai amigan kaikkia bugeja ei korjata.


Kaikki AMDn vuoden 1996 jälkeen markkinoille tuomat CPUt ovat myös alttiita spectren 1. variantille, eikä mitään rautakorjausta ole näköpiirissä millekään.

Koska yleispätevä rautakorjaus spectreen on mahdoton ilman että koko spekulatiivinen suoritus kytketään pois päältä mikä tarkoittaisi suorituskyvyn putoamista alle puoleen.

ps. Oman käsityksen mukaan suunnitteluvirhe on bugi. Oli se sitten arkkitehtuurissa tai koodissa. Haavoittuvuus on vain seuraus siitä.

Edelleenkään, siinä ole mitään suunnitteluvirhettä.

Tässä on kyse samanlaisesta asiasta, kuin että tehdään ja myydään vahva ja luja panssariovi joka kestää kaiken millä varas sitä yrittää ulkopuolelta murtaa, mutta varas onnistuukin (hyvin pitkän yrittämisen jälkeen) jonkun raollaan olevan ikkunan kautta pitkällä kepilliä osumaan sisäpuolella olevaan ovenkahvaan (joka on täysin speksin mukainen) ja avaamaan sen sillä.

Ja sitten kilpailevan firman tekemässä ovessa sattuu olemaan kahva, jonka ympärillä on joku ylimääräinen härpäke, joka estää ettei samanlaisella kepillä saa sen kahvaa sorkittua. (mutta vähän erilaisella kepillä varmaan onnistuu, vielä vähän hankalammin)
 
Viimeksi muokattu:
Edelleenkään, siinä ole mitään suunnitteluvirhettä.
Jos speksi tuottaa järjestelmän jossa on merkittäviä haavoittuvuuksia, niin voidaan ihan hyvin ajatella että speksissä on puutteita, toisin sanoen virheitä. Jos joku asiakas olisi tilannut prossuja omilla spekseillään ja intel olisi vain niiden pohjalta prossut suunnitellut ja valmistanut, niin voitaisiin hyvin sanoa että eivät ole mitään bugia/virhettä tehneet. Valitettavasti intel on aivan itse määrittänyt(=suunnitellut) nämä speksinsä ja siten on vastuussa virheestään.
 
  • Tykkää
Reactions: VmH
Syö. Prossun dataväylät pitää olla 2 kertaa järeämmät kuin 256-bittisessä versiossa ja 4 kertaiset 128-bittiseen versioon nähden.

Ensinnäkin, ei vaikuta skalaaripuolen dataväyliin yhtään.

Toisekseen, mikään ei estä tekemästä AVX-512sta toteutusta, jossa 512-bittiset vektorit pilkotaan pienempiin osiin ja suoritetaan monessa palassa.
Samalla tavalla kuin mitä zen1 teki 256-bittisille AVX-vektoreille ja K8 128-bittisille SSE-vektoreille.

Ja kun käskykantalaajennukset on sillisalaattia niin AVX-512 ei tuo nopeutusta yhtään mihinkään kun ei sitä missään käytetä kun kaikki prosessorit ei sitä tue.

TÄMÄ on se oikea ongelma. Intelin markkinointiosasto sählää tuotesegmentoinnin kanssa ja on keksinyt, että käskykantalaajennoksilla erotellaan halvempia tuotteita kalliimmista, mikä on täysin idioottimaista.

Kun joku uusi käskykantalaajennos tuodaan, se pitäisi heti tuoda kaikkiin tuotteisiin jotta softankehittäjät voivat luottaa siihen että se on kaikissa uudehkoissa prosessoreissa.

Ja silloinkin kun ko. käskykantaa tuetaan se räjäyttää prosessorin tehonkulutuksen taivaisiin ja tiputtaa saavutettua kellotaajuutta jolloin sekin pieni nopeuslisä joka olisi saavutettavissa menetetään.

Höpöhöpö.

SIMD-käskyillä saavutetaan aina paljon parempi energiatehokkuus.

Se tehonkulutus "hyppää pilviin" eli esim. vektoroimattomaan suoritukseen verrattuna samalla kellolla esim. 2-kertaiseksi silloin kun sillä lasketaan jotain 8 kertaa nopeammin. Lopputuloksena edelleen ~4 kertaa parempi energiatehokkuus.

Tai käytännössä, koska sitä kelloa lasketaan sen tehonkulutuksen takia, esim. 80%iin, niin sitten saadaankin vaan esim. 6.4-kertainen nopeutus ja tehonkulutus kasvaa vaan n 1.5-kertaisesti => yli 4 kertaa parempi energiatehokkuus.

Tai AVX2een verrattuna se tehonkulutus nousee esim. 1.5-kertaiseksi kun lasketaan jotain 2 kertaa nopeammin, lopputuloksena 1.33 kertaa parempi energiatehokkuus. (tai no, 10% matalamman kellon takia tehonkulutus onkin 1.3-kertainen ja suorituskyky 1.8-kertainen => energiatehokkuus n. 1.4-kertainen.



Ja AVX-512ssa ei ole kyse vaan leveämmistä vektoreista, vaan siitä, että siellä on mm. paljon paremmat maskausominaisuudet ja scatter, joiden avulla voidaan vektoroida sellaisia looppeja, joita AVX2lle ei voi vektoroida.
 
SIMD-käskyillä saavutetaan aina paljon parempi energiatehokkuus.

Energiatehokkuuteen en ota kantaa mutta tässä on hyvä esimerkki miksi AVX-512 on huono


Eli tuollaisessa käytössä siitä AVX-512 käytöstä on vain harmia. Se voi olla ehkä hieno juttu jos ajetaan PELKÄSTÄÄN jotain koodia mikä käyttää sitä AVX-512 mutta jos on sekakäyttöä niin suorituskyky droppaa.
 
Ensinnäkin, ei vaikuta skalaaripuolen dataväyliin yhtään.

Vaikuttaa koko piirin designiin jos siellä pitää olla 512-bittiset väylät jokapuolelle. Intelillä ehkä on varaa suunnitella piirit tämän ympärille säilyttäen kellotaajuudet, kellään muulla varmaan ei ole. Ja intelkin tarvitsee tähän toteutukseen ytimestä riittävän suuren.

Toisekseen, mikään ei estä tekemästä AVX-512sta toteutusta, jossa 512-bittiset vektorit pilkotaan pienempiin osiin ja suoritetaan monessa palassa.
Samalla tavalla kuin mitä zen1 teki 256-bittisille AVX-vektoreille ja K8 128-bittisille SSE-vektoreille.

No ei varsinaisesti estä mutta AVX512:ssa on käteviä shuffle-käskyjä eri SIMD kaistojen välillä joiden suorituskyky sakkaa tolkuttomasti jaettaessa vektori useampaan osaan. Eli tekee em. pilkotun version toteuttamisen järjettömäksi.
 
Vaikuttaa koko piirin designiin jos siellä pitää olla 512-bittiset väylät jokapuolelle.
Intelillä ehkä on varaa suunnitella piirit tämän ympärille säilyttäen kellotaajuudet, kellään muulla varmaan ei ole. Ja intelkin tarvitsee tähän toteutukseen ytimestä riittävän suuren.

Ei siellä tarvi olla 512-bittisiä väyliä joka puolelle.

Siellä ei missään tilanteessa tarvi olla mitään 512-bittistä skalaaripuolella.

Siellä ei missään tilanteessa tarvi olla mitään 512-bittisiä väyliä haarautumisenennustusyksikölle. Siihen, kuinka leveitä väyliä I-kakun, käskynhakuyksikön ja dekooderin välillä on, AVX512 ei myöskään vaikuta yhtään.

Ja vaikka siellä olis täysileveä SIMD-datapolku täysleveillä LSUilla, sen tarvisi ulottua vain L1D-välimuisteille asti, L1D<->L2-välinen väylä voisi aivan hyvin olla kapeampi.


No ei varsinaisesti estä mutta AVX512:ssa on käteviä shuffle-käskyjä eri SIMD kaistojen välillä joiden suorituskyky sakkaa tolkuttomasti jaettaessa vektori useampaan osaan. Eli tekee em. pilkotun version toteuttamisen järjettömäksi.

Nyt siellä yllättäen onkin käteviä käskyjä kun äsken vielä pidit sitä vielä vaan turhana ja haitallisena?

Ymmärrätkö yhtään, mitä niillä shuffleilla tehdään, ja missä tilanteessa ne on hyödyllisiä? Miten voisit nämä asiat tehdä millään muulla kuin sillä AVX-512lla nopeasti samassa tilanteessa?
 
Ei siellä tarvi olla 512-bittisiä väyliä joka puolelle.

Siellä ei missään tilanteessa tarvi olla mitään 512-bittistä skalaaripuolella.

Siellä ei missään tilanteessa tarvi olla mitään 512-bittisiä väyliä haarautumisenennustusyksikölle. Siihen, kuinka leveitä väyliä I-kakun, käskynhakuyksikön ja dekooderin välillä on, AVX512 ei myöskään vaikuta yhtään.

Ja vaikka siellä olis täysileveä SIMD-datapolku täysleveillä LSUilla, sen tarvisi ulottua vain L1D-välimuisteille asti, L1D<->L2-välinen väylä voisi aivan hyvin olla kapeampi.

Perinteistä tikusta asiaa. Totta toki kaikki mitä kirjoitit, mutta mikäli prosessoriin ympätään SIMD-FPU jossa 512-bittiset väylät rekisterifileen, LSU:hun, L1D:hen koko piiri on suunniteltava sen mukaan että em. reititykset pystytään ko. coreen tekemään. Vähentämällä ko. reititystarve 256:een tai 128:aan bittiin koko ydin voitaisiin rakentaa aivan eritavalla - mutta ytimien kompaktius ei tunnu olevan Intelille mikään prioriteetti.
 
Perinteistä tikusta asiaa. Totta toki kaikki mitä kirjoitit, mutta mikäli prosessoriin ympätään SIMD-FPU jossa 512-bittiset väylät rekisterifileen, LSU:hun, L1D:hen koko piiri on suunniteltava sen mukaan että em. reititykset pystytään ko. coreen tekemään. Vähentämällä ko. reititystarve 256:een tai 128:aan bittiin koko ydin voitaisiin rakentaa aivan eritavalla - mutta ytimien kompaktius ei tunnu olevan Intelille mikään prioriteetti.
Eipä se YDIN silti taida olla merkittävän iso.
 
Ja kun käskykantalaajennukset on sillisalaattia niin AVX-512 ei tuo nopeutusta yhtään mihinkään kun ei sitä missään käytetä kun kaikki prosessorit ei sitä tue. Ja silloinkin kun ko. käskykantaa tuetaan se räjäyttää prosessorin tehonkulutuksen taivaisiin ja tiputtaa saavutettua kellotaajuutta jolloin sekin pieni nopeuslisä joka olisi saavutettavissa menetetään.

Linus Torvalds haukkui Intelin AVX-512 käskykanta tuen kutsuen sitä " harvinaisiin erikoistilanteisiin suunnatuksi taika käskykannaksi, jonka ainoa tehtävä on saada intel näyttämään hyvältä synteettisissä testeissä". Torvals kutsuu AVX-512 käskykanta tukea roskaksi, joka hukkaa pinta-alaa piilastussa ja rikkoo kokonaisluku käskykantojen suorituskyvyn, koska AVX-512 käskykanta on sähköä kuluttava "virus", joka lämmittää sirua niin kellotaajuudet romahtavat prosessorissa, joka romahduttaa kokonaisluku laskenta suorituskyvyn.

 
Linus Torvalds haukkui Intelin AVX-512 käskykanta tuen kutsuen sitä " harvinaisiin erikoistilanteisiin suunnatuksi taika käskykannaksi, jonka ainoa tehtävä on saada intel näyttämään hyvältä synteettisissä testeissä". Torvals kutsuu AVX-512 käskykanta tukea roskaksi, joka hukkaa pinta-alaa piilastussa ja rikkoo kokonaisluku käskykantojen suorituskyvyn, koska AVX-512 käskykanta on sähköä kuluttava "virus", joka lämmittää sirua niin kellotaajuudet romahtavat prosessorissa, joka romahduttaa kokonaisluku laskenta suorituskyvyn.


AVX512 kaikkine eri variantteineen on kyllä kaukana täydellisestä, mutta on silti aika typerää päästää tuon tason roskaa suustaan.
 
TÄMÄ on se oikea ongelma. Intelin markkinointiosasto sählää tuotesegmentoinnin kanssa ja on keksinyt, että käskykantalaajennoksilla erotellaan halvempia tuotteita kalliimmista, mikä on täysin idioottimaista.

Kun joku uusi käskykantalaajennos tuodaan, se pitäisi heti tuoda kaikkiin tuotteisiin jotta softankehittäjät voivat luottaa siihen että se on kaikissa uudehkoissa prosessoreissa.

Tämä on todellakin Intelin isoin moka. Käskykantalaajennuksiin tarvittavat investoinnit olemassaolevassa softassa ovat tuntuvia ja uusien käyttöönottoon voi kulua joissain softatuotteissa vuosia (jopa kymmenen+). Jokainen "julkaistaanpa prosessori ilman avx-512:ta, kun se ei kuulu tähän segmenttiin" käytännössä lykkää ominaisuuden käyttöönottoa, koska kun sitä softaa tehdään vuosien tukihorisontilla, sitä ei vaan pelleillä jonkun epävarman laajennuksen kanssa.

Laajennukset voi käytännössä toki tehdä valinnaisiksi koodissa, mutta käytännössä tämä sitten ainakin tuplaa työmäärän ja binäärikoon.
Ja pelkällä kääntäjävivulla noista avx:istä ei saa käytännössä kyllä mitään irti, looppeja pitää muokata käsin ja reilusti, että tulee mitattavia hyötyjä.
 
AVX512 kaikkine eri variantteineen on kyllä kaukana täydellisestä, mutta on silti aika typerää päästää tuon tason roskaa suustaan.

Eihän se mitään roskaa ole. Koko koneen suorituskyky sakkaa heti kun havaitaan AVX-512 kuormaa kuten tuosta aiemmin postaamastani blogin linkistä käy hyvin selväksi.
Jos se Intel saisi tuon AVX-512 toimimaan niin että mixed kuormilla ne muut kuormat ei kärsi heti kun pikkasen pyöräytetään AVX-512 niin toi olisi kova juttu. Tuollaisenaan se soveltuu ainoastaan joihinkin hyvin spesiaaleihin keisseihin joissa jauhetaan pelkkää AVX-512 ja muu kuorma on lähes olematonta.
Se ei vaan taita olla mahdollista koska AVX-512 kun aletaan vääntää niin prossun virrankulutus hyppää rajusti.
 

Statistiikka

Viestiketjuista
259 368
Viestejä
4 510 437
Jäsenet
74 357
Uusin jäsen
villl

Hinta.fi

Back
Ylös Bottom