Mitä DirectCompute tarkoittaa pelaajien kannalta?

Artikkelin kirjoittaja: Teemu Laitila | 1 kommentti

Lisää Ambient Occlusionista


Ambient Occlusion voidaan toteuttaa myös pikselivarjostimien avulla. Kehittäjät voivat valita käytetyn tekniikan, mutta ennen tämän artikkelin kirjoittamista meille oli epäselvää, miksi joissain tapauksissa haluttaisiin käyttää DirectCompute-pohjaista toteutusta. Aiempien testien perusteella olimme nimittäin todenneet, että DirectComputen avulla lasketut efektit vaikuttavat suorituskykyyn merkittävästi, eikä ollenkaan positiivisella tavalla. Ymmärrämme tietysti tilanteen, jossa laskentatehoa uhraamalla voidaan saavuttaa jotain mitä muilla tekniikoilla ei pystytä toteuttamaan, mutta miksi käyttää DirectCompute-tekniikkaa tilanteissa, joissa pikselivarjostimet hoitavat homman yhtä hyvin? Kun asiaa tutkittiin, kävi selväksi, että DirectCompute ei itse asiassa ole sen raskaampi kuin pikselivarjostimetkaan.

"Jokaista varjostettua pikseliä kohti vaaditaan useampia syvyyspuskuriin kohdistuvia lukuoperaatioita", kertoo Codemastersin Thomas. "Pikselivarjostimessa jokaisella tekstuurien lukuoperaatiolla on hintansa kulutettuina sykleinä. Laskentaan perustuvassa tekniikassa LDS-muisti (local data share) sisältää jo tiedon läheisten alueiden syvyysinformaatiosta ja sen vuoksi peräkkäiset lukuoperaatiot ovat resurssien kannalta halvempia verrattuna tekstuurien noutamiseen muistista".



Tässä artikkelissa pyrimme käsittelemään nimenomaan heterogeenistä laskentaa ja tämän päivän raudan sopivuutta sen suorittamiseen. Onko APU:sta jotain etua verrattuna tilanteeseen, jossa prosessori ja erillinen näytönohjain hoitavat samoja tehtäviä kommunikoiden PCI Express -väylän läpi? Jos tekstuurit pitää hakea muistista ja APU:t perustuvat jaettuun järjestelmämuistiin, vaikeuttaako tämä rakenteellinen ratkaisu APU:n kykyä suoriutua kaikista tehtävistä tehokkaasti vai onko tiukka integraatio prosessorin kanssa sittenkin hyvä asia?





"HDAO vaatii syötteenä vain näkymän syvyystiedot", Thomas kertoo. "Se on siis renderöitävä ensiksi, mutta käytännössä useimmissa peleissä tieto on jo tarjolla joko g-puskurin tai depth pre-pass -operaation ansiosta. Syvyyspuskuri kuuluu videomuistiin ja HDAO:n toteutustapa ei olisi erilainen APU:lla verrattuna perinteiseen GPU:n. Tämä tekniikka on erittäin tehokas muistinkäytön kannalta, sillä ainut lisää muistia vaativa tehtävä on ulostulevan tekstuurin säilöminen. Tehokkuus on toinen syy, miksi tämä tekniikka kasvattaa suosiotaan koko ajan."

Ennen varsinaisiin tuloksiin hyppäämistä haluamme huomauttaa eräästä tärkeästä näkökulmasta, joka helpottaa tulosten tulkintaa. Seuraavilla sivuilla Battlefield 3 -pelin tuloksissa on nähtävissä, että testin APU saavuttaa vain vaivaiset 14 FPS nopeuden, kun käytössä on Horizon-based Ambien Occlusion -tekniikka (HBAO). Radeon HD 7970 taas puolestaan pyörittää peliä 8,5 kertaisella nopeudella ja sen perusteella voisi olettaa APU:n olevan heikko DirectCompute-laskennassa. Mutta tuloksia lukiessa kannattaa huomioida, että ilmankin ambient occlusion -asetusta APU jää keskimäärin 16,6 ruudun tasolle.

Battlefield 3 on yksinkertaisesti niin raskas, että APU:n graafinen suorituskyky ei riitä sen pyörittämiseen. Syynä heikkoon tulokseen ei siis ole piirin heterogeeninen arkkitehtuuri. Parempiin vertailuihin tarvittaisiin siis yksinkertaisesti enemmän tehoja.

kommentti 1

hannibal_pjv

Mielenkiitoinen artikkeli. Mutta noita ei dx11 kortteja on vielä aika tavalla markkinoilla, joten ei liene vielä useampaan vuoteen isoja uudistuksia tulossa?

Kommentoi artikkelia