Hoofdcategorieën

Cpu's aan gpu-benchmarks onderworpen

Door Robin Vreuls, dinsdag 8 april 2008 18:28
Submitter: oeLangOetan, views: 24.465

Het Duitse magazine PC Games heeft twee processors aan grafische benchmarks onderworpen en de resultaten vergeleken met die van twee videokaarten. Een cpu met vier kernen aan boord blijkt moeite te hebben om een gpu bij te benen.

PC Games wilde graag te weten komen of de taken van een gpu door een cpu overgenomen kunnen worden. Om hier achter te komen, werden de prestaties van een Intel Core 2 Quad Yorkfield en een Core 2 Duo Conroe aan de hand van verschillende benchmarks vergeleken met de prestaties van een Geforce 8500GT en een Geforce 8800GTX. De cpu's en gpu's werden getest in onder meer 3dMark 2001 SE, 3dMark05 en Crysis, waarbij de processors met behulp van Swiftshader dezelfde berekeningen konden uitvoeren als de videokaarten.

Swiftshader wordt door Transgaming ontwikkeld, het bedrijf dat ook verantwoordelijk is voor de ontwikkeling van Cedega. Het programma is een zogenoemde 'software rasterizer', waarmee processors als het ware de taak van gpu kunnen overnemen. Swiftshader is voorzien van een Direct3d 8- en 9-api en biedt daardoor ondersteuning voor onder meer Shader Model 2.0. Verder is het programma van sse-optimalisaties voorzien en is er ondersteuning voor multicoreprocessors aanwezig.

De eerste benchmarks die PC Games heeft gedraaid, was 3dMark 2001 SE waar de Yorkfield-cpu op getest werd. Op een resolutie van 1024 bij 768 pixels zonder fsaa/af zette de processor een score van 2432 punten neer. De Geforce 8800GTX behaalde een score van maar liefst 66.803 punten, bijna 28 keer zo veel als de cpu in zijn eentje. Het verschil tussen een cpu en een gpu wordt in Crysis kleiner: zo wist de Yorkfield een gemiddelde van 5fps in Crysis te behalen, terwijl de Geforce 8500GT 30fps renderde. Daarentegen wist de Conroe-processor net iets meer dan 2fps in Crysis neer te zetten.

PC Games - cpu vs cpu - 3dMark 2001 SE PC Games - cpu vs cpu - 3dMark05 PC Games - cpu vs cpu - Crysis

Volgende 18:52
Vorige 17:40

Reacties

«  1  2  3  »

Waarom hebben ze geen AMD cpu's geprobeerd?

Ik denk dat het zo goed als niet uitgemaakt had, een GPU is voor dit soort berekening altijd sneller. Zowel Intel als AMD hebben buiten SSE geen enkele unit erin zitten die vector rekenen versneld.

Een Cell zou IMO wel interessant geweest zijn ivm de SPU's.

Is volgens mij ook niet helemaal een eerlijk vergelijking... GPU's worden via software toch anders aangesproken dan een CPU? En de optimalisatie van GPU's voor grafisch werk is natuulijk ook gewoon beter...

Wel een geinige test... :)

Idd wel grappig, en idd niet helemaal eerlijk.

De GPU hoeft alleen maar spul te renderen, terwijl die CPU, ten eerste een OS moet draaien, het programma zelf, en het spul moet renderen (om het simpel te zeggen, zal wel weer wat ingewikkelder inelkaar zitten).

Als ze nu bijv Windows en 3dmark (het programma zelf) en het renderen op een GPU deden zou die naar mijn idee ook niet meer zo hoog scoren.

De GPU hoeft alleen maar spul te renderen, terwijl die CPU, ten eerste een OS moet draaien, het programma zelf, en het spul moet renderen
Ik weet niet of je ooit naar de system load gegeken hebt ten gevolge van het OS ook bij een zwaarbelaste processor. Deze is minder dan 10%.
Voor redering draait op op de GPU een programma. Als je 10% verlies meenam voor de CPU zou deze 25-26 langzamer zijn ipv 28. Is nog steeds vele malen langzamer.

Een GPU is een specialistische unit, hier zal een CPU die veel meer moet kunnen nooit aan tippen.

Zo is een ASIC ook vele malen sneller voor netwerk verkeer dan een CPU. Ieder zijn vak!

Ten eerste is CPU load gedefinieerd als het aantal timeslices dat een proces moet wachten voor het aan de beurt is, en niet als het aantal procenten (dat maakt het erg onzuiver namelijk).

Ten tweede kun je onmogelijk zeggen hoeveel CPU een OS gebruikt, omdat in de CPU van het draaiende proces allemaal dingen meetellen die door het OS afgehandeld worden, en meestal worden zelfs dingen als IO latency meegenomen in de CPU, omdat de CPU in de tussentijd niks anders kan doen.

Verder heb je natuurlijk helemaal gelijk in je analyse, maar ik ben wel benieuwd in hoeverre het nou noodzakelijk is dat je voor iedere taak een andere processor moet hebben... (maarja, zolang iedereen nog vast zit aan windows en dus intel is er sowieso erg weinig ruimte om te experimenteren met architecturen).

draai het eens om.. laat een paar dikke programma's draaien op een gpu :D

Ja, daar zijn ze serieus mee bezig.
Gaat vooral goed voor eenvoudige massief parallelle programma's.
Koetjes draaien in een razend tempo, en ook voor bijvoorbeeld photoshop filters zie ik wel een toekomst.

GPU kan berekening maar in beperkte mate terug aan de cpu / het systeem doorspelen.

GPU kan dus alleen maar de display aansturen, en daarna zijn de gegevens meteen verloren.

Good luck met een CPU load in percenten uit te drukken. Het is niet omdat Windows je een cijfertje geeft dat daar enige fysische betekenis achter zit.

Het is niet omdat Windows je een cijfertje geeft dat daar enige fysische betekenis achter zit.
Ik heb het over Linux, hier kun je precies achterhalen hoe de systemload verdeeld is, welke processen, IO etc.
Ik weet niet hoe dit bij Windows werkt en of dit mogelijk is.

Yup:
1.) Hedendaagse GPUs hebben zeer veel shader units, vergelijkbaar met cores
2.) Hoe het met cache zit weet ik niet, maar ze hoeven niet van het relatief trage systeemgeheugen gebruik te maken
3.) Shader units beschikken over veel minder instructies dan voor x86 vereist is (en dan hebben we het nog niet eens over MMX en alle versies SSE)
4.) Ze beschikken dan wel weer over gespecialiseerde optimalisaties voor vectors
5.) GPUs werken alleen in floating point (integer is ook mogelijk maar dan via de floating point units, en met verlaagde precisie) terwijl CPUs over het algemeen sneller met integers om (moeten) kunnen gaan.

Beetje vage test dus..

[Reactie gewijzigd door Mitsuko]


Ja... als aanvulling, wellicht dat je GPU's ook onder RISC processors kan plaatsen en de Intel/AMD CPU's onder CISC processors.

Nou.. ik denk dat je niet meer helemaal up to date bent.. Het verschil tussen Risc en Cisc zijn is zeker in de x86 (en x86_64) ongeveer verdwenen... Er zijn SSE instructies die vele gigabytes aan data kunnen verwerken.. Het verschil is vaag en niet defineerbaar in huidige cpu's Daarnaast.. Risc en Cisc heeft eigenlijk geen invloed op de prestaties.. Het is een hele andere architecteur en dus niet te vergelijken..

Daarnaast kun je er over ruzieen of een GPU wel in te delen in CISC of RISC..

Een beetje offtopic, maar heb je een linkje van SSE instructies de vele gigabytes aan data kunnen verwerken?

Ik ben een beetje sceptisch, maar als dat bestaat ben ik er wel benieuwd naar :)

Een beetje offtopic, maar heb je een linkje van SSE instructies de vele gigabytes aan data kunnen verwerken?
Een Core 2 Quad aan 3 GHz kan per core per klokcyclus een vector van 4 elementen vermenigvuldigen en optellen. Da's dus 4 * 3.000.000.000 * 4 * 2 = 96 gigaflops. Een floating-point getal is 4 bytes dus da's gelijk aan 384 GB/s. Daarbij dient de data wel voornamelijk uit het cachegeheugen te komen (meestal het geval). De bandbreedte naar het hoofdgeheugen is 25.6 GB/s voor een 1600 MHz FSB.

Toekomstige processoren breiden de 128-bit registers van SSE uit naar 256-bit (AVX), en de bandbreedte zou tot 51 GB/s oplopen.

[Reactie gewijzigd door c0d1f1ed]


Ja, dat begrijp ik wel.

Als dit het enige is heeft martijnvanegdom z'n post niet zo goed geformuleerd volgens mij, want je hebt dus idd geen SSE instructies die direct gigabytes geheugen verwerken. De programmeur zal toch zelf nog dat geheugen naar de SSE registers moeten kopieren en weer terug.

Heeft dus eigenlijk niks met SSE te maken, op die manier kunnen normale instructies ook gigabytes verwerken, het duurt alleen langer.

Zo vaag is deze test niet. Is het niet dat Intel en AMD beiden werken aan een alles in 1 kunner chip? Soms wordt er zelfs geclaimd dat een beetje CPU het zonder GPU ook wel kan stellen.
Nu weten we tenminste dat het allemaal iets moeilijker is dan soms wordt voorgesteld door o.a. Intel. De GPU is er niet voor niets en zal voorlopig nog niet uiitgerangeerd zijn!

Het zou zelfs interessant zijn om een GPU eens te testen op CPU gebied. nVidia en ATi claimen immers ook dat een GPU steeds meer op een CPU gaat lijken en daar ook taken van kan overnemen.
Door ook dat te testen krijg je een veel beter idee van hoe alles er voor staat.

Stel dat en GPU wel een CPU kan vervangen maar niet andersom, dan is er ineens een enorme concurrent bij voor AMD en Intel namelijk nVidia. Wedden dat dat de markt enorm interessant gaat maken!

[Reactie gewijzigd door k1n8fisher]


Het zou zelfs interessant zijn om een GPU eens te testen op CPU gebied. nVidia en ATi claimen immers ook dat een GPU steeds meer op een CPU gaat lijken en daar ook taken van kan overnemen.
Je kan bepaalde werklasten door de GPU laten uitvoeren, maar niet een volledige applicatie op de GPU draaien, laat staan een besturingssysteem.

Om te beginnen is een GPU enkel geschikt voor code van beperkte lengte, terwijl een CPU met ettelijke megabytes aan code overweg kan. Verder is een GPU erg traag in het uitvoeren van een enkele thread. Het voert steeds dezelfde bewerking uit voor een 'batch' aan data. Zo duurt het dus ook tientallen klokcycli voor een spronginstructie genomen kan worden, iets waar een CPU zeer goed in is en wat ook verwacht wordt voor doorsnee applicaties. Danzij z'n caches bespaart een CPU ook zeer veel bandbreedte en latentie, terwijl een GPU voor bijna alles naar RAM-geheugen moet (wat enkel gericht is op texture sampling).

Bemerk ook dat een GPU nog steeds relatief vaak de driver nodig heeft om 'administratief' werk uit te voeren, en dat gebeurt dus op de CPU.

De zogezegde enorme rekenkracht van GPUs is dus erg relatief. Hij is zeer gespecialiseerd in 3D rendering maar voor zowat alle andere dingen is de CPU beter geschikt of kan hij goed zijn mannetje staan. Met steeds meer cores en instructies die op die van een GPU lijken is de CPU dus een grotere bedreiging voor de GPU dan omgekeerd.

Wie zij dat het een eerlijke vergelijking moest zijn... de resultaten vallen me eigenlijk nog wel mee. Maar ik vindt eigenlijk dat ze ook de ander kant op een keer moeten testen: windows op een GPU :). Ik denk alleen dat dit uberhaubt niet mogelijk is (geen ondersteuning van paging, threads, IPC, interupts e.d.)
De vergelijking tussen cores en shaders die veel tweakers hier maken is eigenlijk niet goed. Op elke core in een processor kan je andere code draaien terwijl alle shaders altijd tegelijkertijd dezelfde code draaien. De shaders kan je beter vergelijken met SSE of MMX maar dan op een veelvoud van registers.
(integer is ook mogelijk maar dan via de floating point units, en met verlaagde precisie)
Sorry maar wat is dit voor onzin, integer berekeningen met verlaagde precisie?!?!? Integer berekeningen hebben een inherent lage precisie(door dat je geen cijfers achter de komma hebt) als je die nog verder onprecies maakt dan heb je er niks meer aan want dan is het gewoon fout.
(en dan hebben we het nog niet eens over MMX en alle versies SSE)
Dit is waarschijnlijk het geen wat de CPU's nog een beetje gered heeft, dit kan al snel een aantal factoren schelen. De instucties op de GPU zullen meer weg hebben van de SSE en MMX instructies als van de rest van de x86 standaard.

@Sakete
Om de verwarring nog groter te maken: De niewste Intel CPU's kan je ook zien als RISC processors die een CISC processor emuleren... De meeste instructies worden omgezet in een aantal instructies uit een (redelijk kleine)basis set van instucties.

@k1n8fisher
Is het niet dat Intel en AMD beiden werken aan een alles in 1 kunner chip? Soms wordt er zelfs geclaimd dat een beetje CPU het zonder GPU ook wel kan stellen.
Beide bedrijven werken hier zoals je zegt nog aan, het gaat dan ook om een compleet GPU deel wat bij de processor in komt. De processor zal niet zijn reguliere hardware gebruiken om de GPU te emuleren zoals hier het geval was. Dus op dat gebied gaat je vergelijking mank.

@sangdrax
Wat betreft de term precisie heb je gelijk, even een oversimplificatie van mijn kant. Maar dat laat natuurlijk onverlet dat integer operaties met verlaagde precisie onzin zijn.

@Toontje_78
Integers zijn juist waarden met een gelijke interval tussen opeenvolgende bits, waar floats nu een veranderlijke interval hebben tussen opeenvolgende bits.
Ik denk wel dat ik weet wat je bedoelt maar wat je hier beweert is complete onzin. Er zitten geen gelijke intervallen tussen de waarden van bits niet bij integers en niet bij floats. Wat je waarschijnlijk bedoelt is dat een float een variabele komma heeft. Een float bestaat eigenlijk uit twee integers eentje die het getal weergeeft en eentje die aangeeft waar de komma moet staan.

[Reactie gewijzigd door jmzeeman]


Sorry maar wat is dit voor onzin, integer berekeningen met verlaagde precisie?!?!? Integer berekeningen hebben een inherent lage precisie(door dat je geen cijfers achter de komma hebt) als je die nog verder onprecies maakt dan heb je er niks meer aan want dan is het gewoon fout.
Met precisie bedoelen we niet cijfers achter de komma, maar significante cijfers. Met een integer unit kan je A+B-B doen en op A uitkomen. Bij floating point is dat niet het geval, omdat A+B eerst afgerond wordt. Een 'double' kan namelijk alleen de belangrijkste 53 bits onthouden en zegt "zoveel nullen ervoor of erachter". Dit in tegenstelling tot een 64-bit integer unit van en 64-bit CPU, waarin je getallen van 64 bit in z'n geheel exact kan opslaan.

(integer is ook mogelijk maar dan via de floating point units, en met verlaagde precisie)
Sorry maar wat is dit voor onzin, integer berekeningen met verlaagde precisie?!?!? Integer berekeningen hebben een inherent lage precisie(door dat je geen cijfers achter de komma hebt) als je die nog verder onprecies maakt dan heb je er niks meer aan want dan is het gewoon fout.
Ik ben het met deze bewering niet eens.
Integers zijn juist waarden met een gelijke interval tussen opeenvolgende bits, waar floats nu een veranderlijke interval hebben tussen opeenvolgende bits.

Als je hier mee optellen gaat, zal een integer een integer opleveren, waar een float de dichts bij de uitkomst zijnde float op zal leveren. Het voordeel van floats is wel dat het bereik tussen kleinste en grootste weergegeven getal vele malen groter is.

De vergelijking tussen cores en shaders die veel tweakers hier maken is eigenlijk niet goed. Op elke core in een processor kan je andere code draaien terwijl alle shaders altijd tegelijkertijd dezelfde code draaien. De shaders kan je beter vergelijken met SSE of MMX maar dan op een veelvoud van registers.
Het gaat eigenlijk al fout als je het hebt over shaders. Shaders zijn namelijk de programma's die door de GPU voor elke vertex, primitieve of pixel worden uitgevoerd. Stream processors, shaders of cores zijn allemaal verkeerde termen, terwijl we het over ALU's moeten hebben. Deze ALU's (128 bij G80, 320 bij R600) zijn vervolgens gegroepeerd in clusters (8 bij G80, 4 bij R600), en elk cluster kan onafhankelijk van de anderen een programma (shader) uitvoeren. Zo je wil kan je een cluster dus een processor noemen, hoewel dat misschien ook niet eerlijk is. Er is namelijk nog een apparte thread scheduler die bepaalt welk cluster aan welke thread gaat werken, en ook de geheugencontrollers zijn losgekoppeld van de clusters.

Stream processors en cores zijn leuke marketingtermen, maar ze staan helaas heel ver van de waarheid, en zorgen voor zowel verwarring als overschatting van de mogelijkheden van G80 en R600 (en afgeleiden). Zie bijvoorbeeld onderstaande post van DikkeDouwe.

[Reactie gewijzigd door Snoitkever]


112 shaders heeft de 8800GT (net opgezocht :) ) Dus om de berekening een beetje eerlijk te laten verlopen zou je een 112 core CPU moeten vergelijken. Dus voor de yorkfield zou dat betekenen 2432 / 4 * 112 = 68096 ter vergelijking met de 8800GT met 66.803 punten dan zou de yorkfield dus sneller zijn...

Dus om de berekening een beetje eerlijk te laten verlopen zou je een 112 core CPU moeten vergelijken.
Fout. Een 8800 GT heeft 112 scalaire shader units, gegroepeerd in clusters van 16. Da's dus eerder 7 cores uitegerust met vectoreenheden van 16 elementen. Vergeet ook niet de kloksnelheid mee te rekenen.

Berekenen we het aantal floating-point optellingen en vermenigvuldigingen per seconde dan komt een 8800 GT op 336 GFLOPS. Een 3 GHz Core 2 Quad haalt 96 GFLOPS. Da's nauwelijks een factor 3,5 verschil!

Toekomstige CPUs zullen AVX ondersteunen, wat de SSE-vectoren uitbreidt tot 8 elementen. Aan circa 4 GHz haalt het dan 256 GFLOPS voor een quad-core, 512 GFLOPS voor een octa-core, en potentieel nog eens een verdubbeling met 'fused multiply-add' eenheden. Een biljoen floating-point berekeningen per seconde dus...

Inderdaad. Het was wel leuk geweest om, als tegenhanger, WindowsXP op een 8800GTX te draaien, en daar dan weer een benchmark op. ... Kijken hoeveel MFlops er dan nog uitkomen!

Relatief traag geheugensysteem? Het geheugen op een videokaart bied bijna evenveel bandbreedte als de cache op een processor...

Maar wel met enorme latencies. Niet dat dat erg is, want een GPU heeft honderden threads tegelijk draaiend, maar het is niet eerlijk om GPU en CPU geheugen te gaan vergelijken.

Volgens mij halen deze CPU's ook zo'n slechte score tegenover een GPU omdat de gebruikte GPU chips 1 core hebben en die ten volle benutten. Dit tegenover de CPU's met multicores waarvan er maar ééntje wordt gebruikt in bijvoorbeeld crysis.

Of klopt deze redenatie niet?:)

GPU's zijn geoptimaliseerd voor zulke berekeningen, terwijl een CPU toch een soort all-round (generieke) eenheid is, die van alles moet kunnen.

Een GPU zou sommige pc taken ook niet kunnen runnen, of veel langzamer dan een cpu. Anders hadden we geen CPU's in onze computers gehad!

Nee. GPU's bestaan eigenlijk uit een veel groter aantal cores dan CPU's (vgl de 128 unified shaders van een G80 tov de vier cores van een Qxxx) . 3D rendering maakt veelvuldig gebruik van floating point berekeningen, waar CPU's niet zo sterk in zijn.

vgl de 128 unified shaders van een G80 tov de vier cores van een Qxxx
G80 heeft 8 cores met rekeneenheden van 16 elementen. Een Core 2 Quad heeft 4 cores met rekeneenheden van 4 elementen, en een hogere kloksnelheid. Met extra cores en AVX wordt het verschil in de toekomst nog kleiner.

Aan floating-point rekenkracht ontbreekt het een CPU nauwelijks, het is vooral het texture sampling waarin de GPU zeer veel sneller is. Waar een GPU even veel samples kan nemen in één klokcyclus als het texture units heeft, duurt het bij een CPU ruwweg een hondertal klokcycli per core om dezelfde functionaliteit te emuleren.

De situatie zou dus behoorlijk kunnen veranderen wanneer CPUs uitgebreid worden met instructies om texture sampling te versnellen. Eén zo'n instructies, die al door sommige andere CPU-architecturen ondersteund wordt, is de 'gather'- bewerking, die in parallel verschillende geheugenplaatsen kan uitlezen.

[Reactie gewijzigd door c0d1f1ed]


Nope,
Verder is het programma van sse-optimalisaties voorzien en is er ondersteuning voor multicoreprocessors aanwezig.
Dit gaat overigens ook niet over cpu prestaties tijdens een game, maar over het renderen van het beeld op een cpu in plaats van een gpu, dus in feite in een pc zonder 3d-kaart.

Dat in beschouwing genomen vind ik het zo slecht nog niet :)

Klopt. Het ondersteunt Shader Model 2.0, terwijl iedereen met nog een GeForce 4, een Radeon 8500 of een geďntegreerde chip van een klein aantal jaren geleden dat dus helemaal niet kunnen draaien in hardware.

SwiftShader is dan ook vooral bedoeld om ontwikkelaars van casual games gebruik te laten maken van Shader Model 2.0 zonder zich zorgen te maken of dat wel ondersteund wordt door de GPU. Indien wel is dat veelal de beste optie, maar indien niet draait het dus exact hetzelfde op de CPU. Het helpt dus ook QA- en supportkosten te verkleinen omdat minder hardware getest moet worden en ook falende hardwaredrivers opgelost kan worden door aan software rendering te doen.

Een 8800GTX heeft 128 stream processors wat je ongeveer kan vergelijken met een vorm van multicore.
De CPU's halen gewoon een slecht resultaat omdat ze er niet voor zijn gemaakt, zo simpel is het. Met een GPU moet je zelfs niet denken vele applicatie in emulatie op te starten.

Nee :)

GPU's zijn gewoon gebouwd om goed te presteren in games (DirectX wordt vb hardwarematig ondersteund) en afspelen van video (MPEG-decoding). That's it.

CPU's zijn allrounders die goed zijn in alles, maar niet perfect in 1 speciefieke taak (zoals bij GPU's het geval is).

Het was inderdaad interessant geweest om ook een office benchmark te runnen op een GPU, waarschijnlijk zou die dan ondermaats presteren tov CPU.

Eigenlijk hebben GPU's tegenwoordig honderden "cores" .. Maar die zijn compleet anders opgebouwd dan die van een CPU. Bij deze test zullen alle cores van de CPU ook wel volop gebruikt worden. Ze zijn gewoon gebouwd voor verschillende doeleinden, en presteren op hun eigen vakgebied dan ook veel beter.

CPU: jack of all trades, master of none.

Vrij logisch allemaal dit.

Inderdaad logisch. maar tegelijkertijd is een verschil van een factor 6 met een 8500GT ook weer niet zo heel dramatisch. Zeker als je bedenkt dat er heel wat computers met veel minder krachtige grafische chips worden geleverd. Waarom nog een IGP gebruiken als je CPU krachtig genoeg is om de video op een scherm te toveren zonder dat je kantoorwerk daar onder leidt?

Ugh vergeet niet dat er een tijd was dat het kopen van videokaarten een mijnenveld was.

Bijvoorbeeld een GF 4 heeft pixel en vertex shaders maar een GF 4 MX is meer als een GF 2 met alleen maar pixel shaders.

En zelfs nu nog zien we dat het verre van uniform is op de videokaart markt. Okay directx 10 heeft dingen meer gelijk getrokken dat is zeker waar.

Maar in het Dx9 tijdperk hadden we nogsteeds fabrikanten die dingen niet op de HW konden doen dus maar via SW afhandelde! S3 is nogsteeds een bedrijf die zwakke GPU's maakt!

CPU: jack of all trades, master of none.
Control-intensive code is nog altijd het domein van general purpose CPU's, code met inherent veel tests en (conditionele) branches kan je op geen enkel andere processortype sneller uitvoeren.

Ik zou het graag andersom eens zien... hoe doet een 8800 GTX het bij applicatie's die een CPU normaal doet.
Dat een GPU snel was wisten we wel ....

Hier zal de GPU heel erg slecht in zijn. Waarschijnlijk veel meer dan 28* langzamer mogelijk zelfs 100den keren.

Een add, div, mod en andere integer berekeningen zullen een zeer zware opgave voor een GPU zijn. Dit zij de berekeningen die meestal door de CPU gedaan worden, meer dan floats.

Het omgekeerde vind ik ook interessant: in hoeverre kan een GPU taken van een CPU overnemen als het grafisch even rustig is.

Floating point berekeningen ja, kijk maar naar natuurkundige berekeningen. Verder niet echt veel. Het berekenen van integer getallen op een FPU is veels te onnauwkeurig en niet handig. Een gpu kan ook geen I/O doen, iets waar de processor ook tijd aan kwijt is.

Op dit moment: enkel heel gespecialiseerd rekentaken. Huidige GPU's hebben niet eens een stack, dus enkel de meeste eenvoudige subroutines kunnen geimplementeerd worden.

Maar in sommige gevallen zijn die rekentaken dan ook ongehoord snel. Een goed voorbeeld zijn Black-Scholes berekeningen. Hiermee wordt de theoretische waarde van stock opties geschat. Die formule bevat een aantal transcendente factoren die een GPU in hardware kan uitvoeren in enkele clock cycles terwijl een CPU er veel langer voor doet. Voor dit soort taken is een GPU gemakkelijk tot 100 keer sneller. Hedge funds en investement banks hebben computerzalen die vol met GPUs staan om miljarden combinaties uit te rekenen.

Andere voorbeelden zijn er in de olie industrie: matrix berekeningen vooral. En dan is er physics, hetgeen uiteindelijk ook een stuk sneller zou zijn.

[off-topic]Ik hoop niet dat je Black-Scholes voor enigszins serieus werk gebruikt. Die formule is erg simpel en er bestaan verschillende (betere) alternatieven. Kost natuurlijk meer rekenwerk maar dát is bij de huidige systemen geen probleem[/off topic]

Zou het ook omgekeerd kunnen ?

Ik bedoel dan het benchen van GPU's voor CPU taken ?

De Geforce 8800GTX behaalde een score van maar liefst 66.803 punten, bijna 28 keer zo veel als de cpu in zijn eentje. Het verschil tussen een cpu en een gpu wordt in Crysis kleiner: zo wist de Yorkfield een gemiddelde van 5fps in Crysis te behalen, terwijl de Geforce 8500GT 30fps renderde.
Het is natuurlijk vrij logisch dat het verschil kleiner wordt als je de CPU eerst vergelijkt met de snelle 8800GTX en dan met de veel langzamere 8500GT. Hoe houd de CPU het tegenover de snelle kaart? Waarschijnlijk zal de factor nog behoorlijk wat hoger liggen.
Of is de extra snelheid niet relevant meer bij dit soort resoluties?

Het is natuurlijk vrij logisch dat het verschil kleiner wordt als je de CPU eerst vergelijkt met de snelle 8800GTX en dan met de veel langzamere 8500GT.
Natuurlijk, maar men wil gewoon de uitersten wat aftasten. Vandaag de dag worden enkel nog minimaal dual-core CPUs verkocht maar de GPU kan variëren van een geďntegreerde chip tot een monsterlijk SLI-systeem. Voor alles is een markt, en voor 'kantoorsystemen' zou zelfs de IGP weghalen een optie moeten zijn om de prijs te verlagen, terwijl toch nog 3D-ondersteuning geleverd kan worden met behulp van SwiftShader.

Nog leuker:
Kan je dit combineren?
Als in: crysis spelen op een van je 4 cores en de andere 3 samen met je gt9800(of iets in die orde) de grafische kant?
Resultaat: kwijl :D
«  1  2  3  »

Op dit item kan niet meer gereageerd worden.

Volgende 18:52
Vorige 17:40
VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: