Katsaus AMD:n Vega-grafiikka-arkkitehtuurin ominaisuuksiin ja uudistuksiin.

AMD julkisti Radeon RX Vega -näytönohjaimet viime kuun loppumetreillä SIGGRAPH-tapahtumassa. Vega-arkkitehtuuri on 5. sukupolven GCN-arkkitehtuuri ja suurin muutos arkkitehtuurissa koko sen historiassa. Kaikki nyt julkistetut näytönohjaimet perustuvat Vega 10 -grafiikkapiiriin, mutta luvassa on myöhemmin vielä Vega 11-, 12- ja 20 -grafiikkapiirit sekä Raven Ridge -APU-piiriin integroitu Raven1x-grafiikkaohjain.

Vega-arkkitehtuurin ensimmäinen edustaja, Vega 10, rakentuu yhteensä 12,5 miljardista transistorista ja se valmistetaan GlobalFoundriesin (ja tarvittaessa Samsungin) 14 nanometrin FinFET LPP -prosessilla. Grafiikkapiiriltä löytyy yhteensä neljä Compute Engine -kokonaisuutta, jotka sisältävät yhteensä neljä uusittua geometriayksikköä, 64 Next-Gen Compute Unit -yksikköä (NCU) ja 64 ROP-yksikköä (Render Output Unit). 64 NCU-yksikköä puolestaan sisältävät yhteensä 4096 stream-prosessoria ja 256 teksturointiyksikköä. L2-tason välimuistia on 4 megatavua ja yhteensä SRAM-tyyppistä muistia piiriltä löytyy peräti 45 Mt. L2-välimuistin määrää voidaan pitää merkittävänä muutoksena, sillä sitä on peräti kaksinkertaisesti Fijiin nähden. Grafiikkapiirillä on kaksi 1024-bittistä HBM2-muistiohjainta (High Bandwidth Memory). Vega hyödyntää myös AMD:n Zen-prosessoreista tuttua Infinity Fabric -yhdysväylää.

Vegan muistijärjestelmä perustuu uuteen High Bandwidth Cache Controller -muistiohjaimeen. Siinä missä perinteisesti näytönohjaimen omaa muistia käytetään pääasiallisena säilönä tarvittavalle datalle, HBCC käsittelee sitä käytännössä vain viimeisenä välimuistitasona, johon ladataan ensisijaisesti vain tarvittavat osat datasta. HBCC tukee maksimissaan 512 teratavun muistiavaruutta, mutta tällä hetkellä esimerkiksi OpenGL-puolella maksimi reaaliaikaisessa renderöinnissä on 27 gigatavua.

AMD:n antamassa esimerkissä perinteinen muistijärjestelmä ei kykene sisällyttämään suurikokoisia datapaketteja kokonaisuudessaan, jolloin pois jäävä osuus joudutaan lataamaan kiintolevyltä tai järjestelmän päämuistista. HBCC toimii sivupohjaisena muistijärjestelmänä ja se kykenee sen sijasta lataamaan suurikokoisista datapaketeista vain tarvittavat sivut, jolloin näytönohjaimen ei tarvitse hakea mitään hitaiden väylien takaa. HBCC tukee 4 – 128 kilotavun kokoisia muistisivuja.

Vegan laskentayksiköt eli stream-prosessorit on jaettu NCU-yksiköihin. Vegan uusi ISA (Instruction Set Architecture, näytönohjaimen käskykanta) tukee yhteensä 40 uutta käskyä ja stream-prosessorit kykenevät FP32:een verrattuna kaksinkertaiseen nopeuteen FP16- ja INT16-luvuilla ja täysin uutena ominaisuutena neuroverkkokäytössä hyödyllisiä INT8-tarkkuuden laskuja voidaan laskea nelinkertaisella nopeudella FP32:een nähden.

FP16-tarkkuus on monelle tuttu DirectX 9 -rajapinnan syntyhetkien tienoilta. Nyt tarkkuus on tekemässä paluun, sillä sen on todettu olevan riittävä tarkkuus moneen tehtävään ja sen käyttäminen on energiatehokkaampaa ja nopeampaa kuin FP32-tarkkuuden. Futuremarkin tulevassa 3DMark Serra -testissä FP16-tarkkuuden kerrotaan nopeuttavan Vegaa tietyissä tehtävissä 20 – 26 %. FP16-tarkkuutta tullaan hyödyntämään myös tulevissa Wolfenstein II: The New Colossus ja FarCry 5 -peleissä.

NCU-yksiköiden uudistuksessa on hyödynnetty myös AMD:n Zen-arkkitehtuurin suunnitelleiden insinöörien taitoja. NCU:n GPR-rekisterit (General Purpose Register, dioissa myös Vector Register) hyödyntävät Zenistä tuttua, kustomoitua SRAMia, jonka kerrotaan toimivan 8 % pienemmin viivein, olevan 18 % pienempiä ja kuluttavan 43 % vähemmän energiaa verrattuna aiemmin käytettyihin geneerisiin SRAM-ratkaisuihin.

Vegan myötä AMD on päivittänyt myös tukeaan rajapinnoille ja kehuu Vegan ominaisuuksien venyvän vielä nykyisiä rajapintoja pidemmälle. Vega tukee DirectX 12 -rajapinnan D3D Feature Level 12_1:tä maksimitasoilla, johon vain Intel on kyennyt aiemmin. Se kykenee allokoimaan kullekin resurssille ja prosessille 44-bittisen muistiavaruuden, mikä on resurssia kohden korkein nykyarkkitehtuureista ja prosessia kohden jää jälkeen vain Intelin 48-bittisestä muistiavaruudesta.

Geometriapuolen uudistuksia ovat muun muassa uudet primitiivivarjostimet (primitive shaders), jotka yhdistävät verteksi- ja geometriavarjostimien tehtävät yhteen, nopeampaan varjostinvaiheeseen. Toistaiseksi on vielä epäselvää, onko niiden hyödyntäminen mahdollista ilman laajennoksia rajapintoihin, mutta AMD epäilemättä tuo ominaisuuden käyttöön rajapinnasta riippumatta GPUOpen-ohjelmansa kautta. Geometriapuolta on nopeutettu myös primitiivien hylkäysnopeuden suhteen. Natiivitilassa Vegan nopeus Fijiin nähden on jo kaksinkertainen ja uudessa NGG Fast Path -tilassa nopeus nousee yli viisinkertaiseksi. NGG Fast Pathin käytön mahdollisuuksista ei ole vielä tarkempaa tietoa.

Vegan kenties eniten keskustelua herättänyt uusi ominaisuus on Draw-Stream Binning Rasterizer, eli ns. tiled rasterizer. DSBR jakaa ruudun osiin ja rasteroi ne ruutu kerrallaan, mikä säästää etenkin muistikaistaa. Ominaisuus ei ole toistaiseksi käytössä Vega Frontier Editionin ajureissa, mutta AMD uskoo saavansa ominaisuuden käyttöön Radeon RX -perheen 14. päivä tapahtuvan myyntiin tuloon mennessä. AMD:n sisäisten testien mukaan DSBR nopeuttaa Vegan suorituskykyä yli kaksinkertaisesti SPECviewperf 12:n energy-01-testissä ja pelikäytössä se säästää muistikaistaa pelistä riippuen parista prosentista yli 30 prosenttiin per ruutu.

Myös näyttöohjaimet ovat saaneet osakseen joukon uudistuksia. Siinä missä Polaris 10:n näyttöohjain tuki maksimissaan yhtä 4K 120 Hz -näyttöä, tukee Vega kahta. Yhdellä kaapelilla kytkettäviä 5K 60 Hz -näyttöjä on tuettuna kolme, kun Polaris jäi yhteen ja 8K 30 Hz -näyttöjä voidaan kytkeä Vegaan niin ikään kolme, kun Polaris rajoittui yhteen. HDR-näyttöjen (High Dynamic Range) puolella Polaris tuki maksimissaan yhtä 4K 60 Hz -näyttöä, kun Vega tukee kolmea 4K 60 Hz -näyttöä, yhtä 4K 120 Hz -näyttöä ja yhtä 5K 60 Hz -näyttöä.

AMD on parantanut Vegassa myös turvallisuus- ja virtualisointiominaisuuksia. Vega 10 -grafiikkapiiriltä löytyy AMD:n prosessoreista tuttu AMD Secure Processor -ARM-ydin, tuki Trusted Memory Zonelle ja Single-root I/O -virtualisoinnille. Vega 10 tukee maksimissaan 16 virtuaalikonetta / vierasta kerrallaan ja aiemmasta poiketen myös UVD- ja VCE-yksiköt (Unified Video Decoder, Video Coding Engine) ovat nyt virtuaalikoneiden käytössä.

AMD on nähnyt myös paljon vaivaa saadakseen Vegan toimimaan korkeammilla kellotaajuuksilla AMD:n mukaan yhteensä 3,9 miljardia transistoria liittyy tavalla tai toisella korkeampien kellotaajuuksien saavuttamiseen. Yhtiön mukaan Vega 10:n maksimikellotaajuus olisi noin 1,7 GHz, kun Fijillä se oli noin 1 ja Polariksella noin 1,3 GHz. Verrokkiluvuista selviää, että kyse on maksimeista vakiokellotaajuuksiksi eikä se tarkoita ylikellottuvuuden rajoittumista samoihin lukuihin.

AMD on lisännyt Vegaan myös uuden mikrokontrollerin vain virranhallintaa varten. Se mahdollistaa täysin oman kellotaajuusalueen Infinity Fabric -yhdysväylälle ja tehonsäästöjä etenkin lepotilassa. Vega 10:n grafiikkaytimelle on nyt tarjolla uusi, staattinen matalampi kellotaajuus, joka on käytössä deep-sleep-tilassa ja myös HBM2-muistit ovat saaneet uuden erittäin matalan kellotaajuuden tilan virransäästön merkeissä.

Mitä energiatehokkuuteen tulee, AMD on käyttänyt esimerkkinä 3DMarkin ikivanhaa Perlin Noise -testiä. Sen mukaan RX Vega tarjoaa 220 watin konfiguraatiossa liki 2,5 kertaista suorituskykyä per watti Tahiti-grafiikkapiiriin verrattuna ja 150 wattiin rajoitettuna energiatehokkuus nousee jo kolminkertaiseksi Tahitiin nähden ja samalla lähes tasoihin GeForce GTX 1080 FE:n kanssa. 150 watin arvo vastaa tulevan Radeon RX Vega Nano -näytönohjaimen ja 220 watin arvo RX Vega 64 -näytönohjaimen TGP- eli Total Graphics Power -arvoja (Grafiikkapiirin ja HBM-muistien yhteenslaskettu kulutus).

Alta löydät vielä koko AMD:n Vega-arkkitehtuuridiapaketin

This site uses XenWord.