Wie kann ich die Verarbeitungsleistung einer GPU im Verhältnis zu einer CPU bewerten?

Wie kann ich die Verarbeitungsleistung einer GPU im Verhältnis zu einer CPU bewerten?

Angenommen, ich habe ein Programm, das viele Gleitkommaberechnungen durchführt und auf meiner aktuellen Hardware unpraktisch langsam ist. Um die Laufzeit so weit wie möglich zu reduzieren, möchte ich herausfinden, ob es bei einem festen Budget (in meinem Fall etwa 3000-4000 USD) besser ist, in CPUs oder GPUs zu investieren. Ich weiß, dass ich beim Vergleich einer CPU mit einer anderen einesehr grobIch kann mir ein Bild von der relativen Verarbeitungsgeschwindigkeit machen, indem ich die Taktfrequenz mit der Anzahl der Kerne für jede CPU multipliziere und diese Zahlen vergleiche. Aber was ist mit GPUs? Gibt es eine Möglichkeit, schnell eine Zahl basierend auf den Spezifikationen der GPU zu berechnen, die mir sagt,grobwie schnell kann ich erwarten, dass mein Programm im Vergleich zu einer bekannten CPU ausgeführt wird?

Ich weiß, dass die tatsächliche Verarbeitungsgeschwindigkeit stark von der Art und Weise abhängt, wie das Programm aufgebaut ist, und von anderen Faktoren als der CPU-/GPU-Taktgeschwindigkeit. Für die Zwecke dieser Frage ignoriere ich diese anderen Faktoren, d. h. ich gehe davon aus, dass die für alle Aufgaben außer der Verarbeitung von Gleitkommazahlen benötigte Zeit vernachlässigbar ist (also nicht E/A-gebunden oder ähnliches) und dass das Programm unendlich parallelisierbar ist (also bei einer beliebigen Anzahl von CPU- oder GPU-Kernen alle bis zur maximalen Kapazität genutzt werden, solange das Programm läuft).

Antwort1

Nun, Sie könnten es mit synthetischen Benchmarks versuchen. Sie werden Ihnen eine Vorstellung geben. Das CUDA-Toolkit von NVIDIA enthält beispielsweise einige Programme, die sowohl auf der CPU als auch auf der GPU ausgeführt werden, und es kann verwendet werden, um zu vergleichen, wie lange ihre Ausführung auf jeder Plattform dauert.

Wenn Sie nur GPU-Datenblätter verwenden müssen, können Sie das auch tun. Zum Beispiel:Hierist die Seite für meine GeForce 9500 GS. Dort finden Sie Informationen zur Anzahl der Prozessorkerne. Die Verarbeitungskapazität ist proportional zur GPU-Frequenz und zur Anzahl der Kerne. Einige Karten haben sogarhabenAuch die GFLOPS-Nummer. Es gab ein Dokument mit einheitlicheren, detaillierteren Beschreibungen für jede Karte, aber ich kann gerade keinen Weg finden, dorthin zu gelangen. Vielleicht ist es in den CUDA-Toolkit-Downloads?

Es gibt auch die Rechenfähigkeitsstufe, die zeigt, welche Funktionen jede Karte bietet, aber wenn ich mich recht erinnere, hat sie keinen direkten Einfluss auf die Rechengeschwindigkeit, sondern nur auf die Präzision und den verwendbaren Befehlssatz.

Ich bin nicht auf dem neuesten Stand, was Karten anderer Hersteller angeht, gehe aber davon aus, dass es zumindest für AMD und Intel auch Möglichkeiten gibt, an die Daten zu kommen.

verwandte Informationen