TheMaister Skrevet 21. oktober 2010 Del Skrevet 21. oktober 2010 Holder på å kode for PS3 nå, og jeg oppdager at å porte emulatorer ikke er helt trivielt. Først og fremst går ting møkkatreigt. Kode som kjører på single thread Core i7 i 200++ fps, ender opp på ~42 fps på PPU-enheten til PS3 (litt dårligere enn det 1. gen Atomen min dytter ut). Etter det jeg har skjønt er det klare arkitekturbarrierer som gjør at kode som kjører bra på en PC ikke nødvendigvis trenger å kjøre bra på den veldig simple PPU-enheten til Cell. Noen som har erfaring med å optimisere kode spesifikt for PPUen? Er det noen generelle tips jeg burde følge? SPUene tror jeg ikke er aktuelt siden de 3 trådene som kjøres må synkroniseres med hverandre opp mot 10000 ganger per sekund (tenk coroutines kodet i rein assembly, isteden for threading). Lenke til kommentar
Gjest Slettet+9871234 Skrevet 21. oktober 2010 Del Skrevet 21. oktober 2010 Google conditional compilation Lenke til kommentar
NevroMance Skrevet 21. oktober 2010 Del Skrevet 21. oktober 2010 PPUen i CELL prosessoren er ikke spesielt kjapp i forhold til nyere CPUer fra AMD/Intel. Kraften i en CELL kan utnyttes når problemet er parallelliserbart, men den er ikke veldig effektiv ellers. Som regel vil PPUen bruker som en kontrollenhet, men SPEene er de som gjør jobben. Om du ikke får brukt SPEene vil nok programmet gå relativt sakte i forhold til en vanlig CPU, men husk at bussen mellom SPEene er utrolig rask, så litt avhengig av hva som skal synkroniseres kan det hende de kan brukes. Ellers støtter PPUen SIMD instruksjoner, så kan jo også se på om det kan brukes på problemet. Det vil i så fall også gjøre at koden kjører fortere på en tradisjonell CPU. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå