Tarkoitatko nyt siis niin että nappaamalla globaalisti SMT pois päältä ja ajettaisiin samat kuormat, niin sähköä kuluisi vähemmän?
Ei, vaan vaihtamalla nykyiset SMTtä tukevat 6-ydinprosessorit vastaavalla arkkitehtuurilla oleviin 8-ydinprosessoreihin joissa ei SMTtä tai 8-ydin-prosessorit 10-ydin-prosessoreihin joissa ei ole SMTtä.
SMT auttaa saavuttamaan paremman throughput-suorituskyvyn/piipinta-ala, ei per watti.
Pointtini olikin juuri tuo että hyvin pienillä valmistuskustannuksilla saadaan merkittävästi lisää kokonaissuorituskykyä.
.. ja kun valmistuskustannuksien merkitys vähenee, tämä etu pienenee jatkuvasti. Optio "laitetaan vaan enemmän ytimiä" tulee entistä halvemmaksi.
Silti eikös SMT:n ajatus nyt koko ajan ole ollut niiden käyttämättömien laskentayksiköiden hyödyntäminen tai enemmänkin sen hyödyn parempi esilletuominen käyttikselle?
Aina kun mietitään, että "hyödynnetään jotain paremmin" pitää miettiä, mitä se hyödyntäminen maksaa. Se ei maksa vain sitä paria prosenttia mitä ne SMTn suorat tukeminen maksaa, vaan se maksaa myös sen välimuistien huonomman osumatarkkuuden(joka syö ihan selvää sähköä).
Joskus selvästi paras ratkaisu ja järkevämmäksi tulee vaan laittaa enemmän rautaa kuin yrittää käyttää olemeassaoleva rauta "tehokkaammin".
Samoin jos nyt olisi vaikka tarve lämpötilan säätöön alemmilla kellotuksilla, niin tuottaako tuo SMT niin paljon lisälämpöä ettei sitä kannattaisi silti käyttää? Kyllä noissa AMD isoimmissakin EPYCeissä SMT edelleen on tarjolla ja Intelkin sitä yrittää pitää mukana.
Se, mitä "kannattaa käyttää" riippuu täysin tilanteesta.
Ja sinä oletat, että meillä on jo prosessori josta oltaisiin kytkemässä SMTtä pois päältä. Minä puhun siitä, millaisia prosessoripiirejä kannattaa suunnitella otettavaksi käyttöön
tulevaisuudessa.
ja silloin se sama monen säikeen suorituskyky saadaan pienemmällä virrankulutuksella siten, että sen sijaan, että ajettaisiin softaa yhden ison ytimen kahdella virtuaalisäikeellä, sitä kannattaakin ajaa kahdella erillisellä pienemmällä ytimellä, joilla saadaan sama säiekohtainen suorituskyky selvästi pienemmällä virrankulutuksella.
SMT on kuitenkin erinomainen siinä, että se antaa myös erinomaisen yhden säikeen suorituskyvyn. Ja yhden säikeen suorituskyvyllä tulee aina olemaan väliä. Jotta monella ytimellä saadaan sekä hyvä yhden että monen säikeen suorituskyky, tarvitaan sinne erilaisia ytimiä(eli vielä suurempi kokonaismäärä ytimiä), ja pinta-ala-vaatimusket kasvaa entisestään.
SMT optimoi throughput-suorituskykyä/pinta-ala, big.LITTLE optimoi throughput-suorituskykyä/sähkönkulutus.
Näistä ollaan koko ajan menossa siihen suuntaan, että pinta-alan merkitys vähenee(se halpenee) mutta sähkönkulutus on yhä useammin rajoittava tekijä.
No silti tähän astisista löydöistä vain osa sivukanavahyökkäyksistä on koskettanut muita kuin Intelin prossuja eli jonkun verran siellä olisi kuitenkin petrattavaa. Muuten samaa mieltä että hankala on kokonaan tilkitä varsinkin kun noille ennustamisalgoritmeille syötetään koko ajan isompia määriä tulevaa dataa pureskeltavaksi.
Zen/Zen2 o(lisi)vat
tasan yhtä alttiita Portsmashille kuin Intelinkin prossut, jos vaan Portsmashistä tehtäisiin Zeniä vastaan targetoitu versio.
Mutta Portsmash pitää targetoida hyvin tarkkaa tiettyä mikroarkkitehtuuria vastaan ja intelin prosessoriarkkitehtuurit nyt sattuvat olemaan sen verran yleisempiä(ja esim. TTYn kaikissa oletuskokoonpanoissa eli siis sen kehittäneiden tutkijoiden koneissa on vain intelin prosessoreita), että se esimerkkikoodi millä tuota exploittia demottiin targetoitiin (tiettyjä) intelin prossuja vastaan. (ja muut, erilaiset intelin proissut ovat sitä esimerkkikoodia vastaan tasan yhtä immuuneja kuin AMDn prossut).
Onko käyttiksen ja prossuraudan välillä nykyään mitään rajapintaa joka kertoisi mikä ydin on virtuaalinen SMT-ydin ja mikä "aito" vai onko tällainen jaottelu edes mahdollista tällä hetkellä?
Käsittääkseni ei virallista, mutta siihen ytimien numerointiin yms. on sellaiset vakiintuneet toimintatavat, että kaikilla tunnetuilla (joko ei SMTtä, bulldozer-moduuli tai SMT2) prosessoreilla se onnistutaan tunnistamaan täydellä varmuudella, eikä AMD eikä intel tule tätä numerointitapaa muuttamaaan kuin pakolla(eli jos tuodaan esim SMT4). Nykyinen tunnistuskoodia hajoaa käytännössä siis vasta siinä vaiheessa kun joku tekee SMT4-x86-prosessorin, ja sitten pitää tätä tunnistuskoodia hiukan korjata.
Tuo CCX-välimuistien optimointikin tuntuu olevan melkoisen haastavaa ja kuorman pitäminen tietyillä ytimillä. Samoin softalla kikkailu kuulostaa pahasti siltä että se SMT:n nopeusetu on pian syöty sillä pois. Onneksi näiden hyödyntäminen on suhteellisen vaikeaa.
Se, että prosessorin rakenne tunnistetaan, ja se että säikeitä skeduloidaan optimaalisesti on aivan eri ongelmat. Se, mikä on optimaalista säikeiden skedulointia ytimille on äärimmäisen vaikea ongelma, koska skeduleri ei voi varmuudella tietää esim. 1) paljonko säikeet kommunikoivat keskenään/mitä muistia ne käyttävät, 2) mikä säie on nyt suorituskyvyn kannalta kriittinen, mutta molemmilla on hyvin suuri vaikutus siihen, minne ne kannattaa skeduloida.