Hallo zusammen,
bin Programmierer und hab schon ein paar GPGPU (Physikberechnungen etc.) auf GPU programmiert. Les auch schon mehrere Jahre 4players mit, hab aber nie geposted. In dem Thread hab ich nun ne ganze Menge Halbwahrheiten gelesen. Wollte daher aus Programmierersicht kurz bisschen Licht ins Dunkel bringen.
Ich will mich hier auf eine Sache konzentrieren, die direkt von Herrn saxxon.de auf der ersten Seite gepostet wurde, weil mein Punkt da ganz gut mit rauskommt:
saxxon.de hat geschrieben: (...) Dennoch ist die Aussage Unsinn, ein PC wie
der hier liefert schon heute die Rechenpower der
übernächsten Konsolengeneration. Allein die 3 Titans im SLI-Verbund liefern fast die 8-fache Leistung dessen, was der Grafikchip der PS4 liefern wird.
Das ist korrekt. Der reine Durchsatz z.B. gemessen durchs Bitcoin Mining, oder auch in nem Tomb Raider Haarsimulationsbenchmark, etc, der ist riesig. Auch die Pixelfüllrate ist enorm. Dennoch kann man mit dem SuperPC, der da gepostet ist, nicht die Sachen machen, die man wahrscheinlich mit der PS4 machen kann und darum gehts. Die PS4 erlaubt eine Integration von GPU und CPU ohne direkte Bottlenecks.
Was ihr bei vielen Physikbeschleunigern oder Partikelengines sehr oft seht ist folgendes: Ihr habt etwas, was sehr realistisch aussieht; was aber spielerisch keinerlei Einfluss hat. Der Grund ist folgender:
Die einfache Geometrie wird vom PC Speicher in den Grafikkartenspeicher geschickt. Dann läuft auf der Grafikkarte ein massiv paralleles Programm, was das ganze "physikalisch" aufbereitet: Ein Beispiel: Die PC CPU sagt, wo Laras Haarschopf anfängt und in welche Richtung der Wind bläst und in welche Richtung Lara gerade läuft. Basierend darauf simuliert die Graka dann meist recht unabhängig parallel ne ganze Menge Haare. Die Daten werden dann direkt im Graka Speicher angezeigt.
Wenn die Haare nun aber wieder spielrelevant wären, müssten die Haardaten wieder zurück in den CPU Speicher (also das normale RAM) geschrieben werden, wo sie dann weiter bearbeitet werden. Als Beispiel: Wenn Bayonetta euch nun mit den Haaren physikalisch korrekt verprügeln wollte.
Soll heissen: Hier wäre ein sehr dicker Datentransfer nötig von der Grafikkarte zurück in den Host Memory. Das geht über PCIe und das ist sehr langsam. Da können noch so viele Geforce Titans im Rechner sein, das wird dadurch nicht schneller.
Ein Beispiel aus meiner Erfahrung: Wir simulieren Proteine auf Grafikkarten. Hier haben wir das Problem, dass wir die Transformationen der Protein nicht parallel auf Grafikkarten machen können, weil eine normale CPU da einfach sehr sehr viel schneller ist (und auch einfacher zu programmieren). Das heisst: Wir transformieren das Protein, schicken es auf die Grafikkarte und die Grafikkarte berechnet uns die Kräfte die aufs Protein wirken. Die werden dann zurückgeschickt.
Dadurch dass die Datenmengen aber recht groß sind, die da hin und hergeschickt werden, lohnt sich das erst für Proteine einer bestimmten Größe. Mit der PS4 wär der Bottleneck nicht da, weil man einfach in den gleichen Speicher schreibt. Ergo: Man hat überhaupt kein Penalty durch Kopien.
Und genau das spricht der Typ von AMD an:
man muss die Daten nicht zuerst zur Grafikkarte rüberschicken und zurückbekommen
Ich denk daher schon, dass eine PS4 Sachen simulieren kann, die zu Anfang weitaus besser aussehen werden (bei geringerer Auflösung), als der gepostete PC, auch wenn der eine viel größere Rohleistung hat, schlicht weil die PS4 Features besitzt die der PC nicht hat.
Gruß,
Basto