Radeon HD 6970 ja 6950: Onko Kaimaani alligaattori vai krokotiili?
Artikkelin kirjoittaja: Teemu Laitila | 0 kommenttia
Caymanin suunnittelu Cypressiä parantelemalla
AMD:n mukaan sillä oli neljä päätavoitetta Caymanin suunnittelussa: enemmän tehoa, parempi geometriasuorituskyky, uudet kuvanlaadun ominaisuudet ja parempi virranhallinta.
Ensimmäiseksi AMD halusi rakentaa tehokkaamman grafiikka- ja laskenta-arkkitehtuurin. Syy tähän on kohtuullisen selvä. AMD oli havainnut peleissä WLIV-nopeudeksi noin 3.4, joten erillisien transsendenttilukujen käsittelyyn rakennettujen yksiköiden poistaminen ja niiden toiminnallisuuden hajauttaminen muille komponenteille oli itse asiassa hyvä keino optimoida suorituskykyä pinta-alaa kohti. Tietyissä tilanteissa suorituskyky saattaa kärsiä tästä muutoksesta (silloin kun VLIW-käyttö nousee yli neljään), mutta se on AMD:n mukaan epätodennäköistä.
Kaikkein tärkeintä on kuitenkin, että AMD:n oli pakko kehittää tehokkaampi arkkitehtuuri. Yhtiö oli jäänyt jumiin TSMC:n 40 nm:n valmistusprosessiin ja sen piti kehittää keino, jolla saadaan enemmän suorituskykyä neliömillimetriltä sen sijaan, että voitaisiin vain keskittyä lisäämään suorituskykyä. AMD:n mukaan VLIW5-arkkitehtuurista VLIW4-arkkitehtuuriin siirtyminen paransi neliömillimetriltä saatua suorituskykyä noin 10 prosenttia, sillä samaan tilaan saadaan mahtumaan enemmän SIMD-yksiköitä.
Arkkitehtuurin virtaviivaistaminen ei tee siitä yhtään tehokkaampaa. Käytössä on nyt neljä identtistä stream-prosessoria, jotka hoitavat myös aiemmat erityisyksiköiden tehtävät. VLIW4-asetuksilla jokainen stream-prosessori kykenee seuraaviin asioihin:
- Neljään 32-bittiseen FM FMA -, MAD-, MUL- tai ADD-operaatioon kellojaksoa kohti.
- Kahteen 64-bittiseen FP ADD –operaatioon kellojaksoa kohti
- Yhteen 64-bittiseen FP FMA – tai MUL-operaatioon kellojaksoa kohti
- Yhteen FP Special Function –operaatioon kellojaksoa kohti
- Neljään 24-bittiseen Int MAD, MUL tai ADD –operaatioon kellojaksoa kohti
- Neljään 32-bitiseen Int ADD –operaatioon tai binäärilaskentaoperaation kellojaksoa kohti
- Yhteen 32-bittiseen Int MAD-tai MUL-operaatioon kellojaksoa kohti
- Yhteen 64-bittiseen ADD-operaatioon kellojaksoa kohti
GPU:n varjostinyksiköiden lisäksi sen renderöintiosat kykenevät 16-bittisiin kokonaislukuoperaatioihin 2x nopeammin, kun 32-bittiset liukulukuoperaatiot ovat 2x – 4x nopeampia. AMD:n mukaan muutoksella on suurin vaikutus reunojenpehmennyksen nopeuteen.
Laskentakyvyn parannus
Vaikka AMD:n laskentaan liittyviä suunnitelmia ei yleensä oteta yhtä vakavasti kuin Nvidian vastaavia, vaikuttaisi siltä, että Caymanin tapauksessa siihen on yritetty panostaa. Esimerkiksi Radeon HD 5800 –sarja suorittaa double-precision-matematiikkaa viidesosalla single-precision-laskujen nopeudesta, kun Cayman laskee double-precision-laskuja neljäsosalla single-precision-laskujen vauhdista. Vaikka Radeon HD 6970 –mallin suurin mahdollinen single-precision-nopeus on hieman Radeon HD 5870 –mallia hitaampi (2,7 TFLOPS vs. 2,72 TFLOPS), se kykenee enimmillään 675 GFLOPSiin double-precision-numeroilla verrattuna HD 5870 –mallin 544 GFLOPSiin.
Kannattaa huomata, että Barts-piirillä double-precision on hylätty kokonaan ja keskitytty pelkästään pelitehoon laskentatehon kustannuksella.
Cayman pitää sisällään myös parin kaksisuuntaisia DMA-yksiköitä, jotka parhaimmillaan parantavat PCI Express –väylän yli järjestelmän muistiin tapahtuvia luku- ja kirjoitusoperaatioita.
Viimeisimpänä AMD on antanut Caymanille myös mahdollisuuden käsitellä erillisiä sovelluksia GPU:n sisällä. Fermi kykenee myös käsittelemään usempia kerneleitä, mutta niiden täytyy olla peräisin samasta prosessointisäikeestä. Mielenkiintoista kyllä AMD:n toteutus ei ole osa DirectX 11 –määrittelyä, joten se on otettava myöhemmin käyttööön OpenCL-tekniikan avulla joskus tulevaisuudessa.
Nyt mainittujen toiminnallisuuden muutosten lisäksi Cayman säilyttää jo Cypress-piirin aikana nähdyn rakenteen. 16 KB L1-tekstuurimuistin ja 32 KB jaetun välimuistin lisäksi jokaisella SIMD-yksiköllä on 8 KB L1-välimuisti laskentatyötä varten. Neljä 128 KB L2-välimuistia syöttää SIMD-yksiköille tietoa ja kaikille SIMD-yksiöille on vielä 64 KB jaettu varasto.
Kommentoi artikkelia
Kirjaudu sisään