Je vergelijking slaat nergens op. Ten eerste vergelijk je praktijkresultaten van de CPU met theoretische prestaties van de GPU.
Een 4515 MHz Core i7 kan 108,36 DP GFLOPS, sustained. Of de software dat eruit haalt is weinig relevant, een Radeon 5870 ga je in praktijk ook nóóit z'n 544 GFLOPS kunnen doen behalen.
Qua hardware een factor 5 verschil met een Radeon 5870 dus. De binnen enkele maanden verkrijgbare Sandy Bridge processors voegen de AVX instructieset toe, waarmee de vectoren twee keer zo breed worden. Het verschil in rekenkracht daalt dus naar een factor 2,5.
Vervolgens moet je ook kijken naar het aantal transistors om de hardware eerlijk te vergelijken. De six-core i7 beslaat 1,17 miljard transistors, de Radeon zo'n 2,15 miljard. Dat brengt ons tot een factor 1,36. Lang niet zo indrukwekkend meer he, die rekenkracht van een GPU?
En ja een Core i7 980 (of twee) is erg duur, maar bemerk dat bijvoorbeeld een Core 2 Quad vele malen goedkoper is terwijl de DP prestaties per core gelijk zijn. Vervolgens is een consumer GPU helemaal niet geschikt voor wetenschappelijke berekeningen. Daarvoor heb je er een met ECC geheugen nodig zoals de Tesla van NVIDIA. En laat die nu net duizenden euro's kosten. Het is dus zeker geen factor 75 verschil voor FLOPS/prijs tussen CPU en GPU.
En last but not least, de CPU is nog steeds tot veel meer in staat dan de GPU. Je kan niet zomaar een willekeurig programma op de GPU draaien. Een GPU is ook belachelijk traag als het op single-threaded prestaties aankomt. Door Amdahl's Law komt een heel gamma algoritmes dan ook nooit in aanmerking om efficient op een GPU te draaien.
Er zijn dus zeer goede redenen waarom supercomputers nog gedomineerd worden door CPUs. Af en toe stopt men er nu ook GPUs bij maar die kan men slechts inzetten in zeer beperkte gevallen, en de snelheidswinst is niet eens zo hoog.
[Reactie gewijzigd door c0d1f1ed op vrijdag 19 november 2010 03:12]
De relatief goedkope HD5000 series (namely de 5870/5970) EN GTX400 (je tesla dus) series bevatten ECC geheugen. (google maar, je merkt het vanzelf als je ze overclockt, geen artifacts, maar slowdowns, da's ECC at work)
Ook is het waar dat een GPU meer transistors heeft, maar dat betekent niet dat dat een oneerlijke vergelijking zou zijn, dat is meer gewoon een van de tekortkomingen van de CPU, AVX is een mooie toevoeging, maar net als op de GPU, moet je libraries (OpenCL) gebruiken om het te benutten.
Het is WEL waar dat je een programma 'super multi threaded' moet schrijven als je het efficient op een GPU wil uitvoeren, voor de rest is het echter gewoon een extra CPU in een PC die normaal gesproken vrijwel niet benut word, en daarom is OpenCL zo vet
