Warum sind CPUs bei regulären Aufgaben besser als GPUs?

Warum sind CPUs bei regulären Aufgaben besser als GPUs?

Ich versuche, die relativen Stärken von CPUs gegenüber GPUs zu verstehen.

Um die landläufige Meinung zu zitieren: „Je mehr Kerne, desto besser“. Nach dieser Logik sollte eine GPU immer besser abschneiden als eine CPU. Und das ist beim Kryptowährungs-Mining und in der Quantitätsfinanzierung auch der Fall. Ich habe gerade schnell ein Programm zusammengebastelt, das implizite Volatilitäten in einem extremen Bruchteil der Zeit berechnet, die für meine GPU im Vergleich zu meiner CPU benötigt wird.

Aber als ich das Thema untersuchte, stieß ich auf Fragen und Antworten wieDas.

Es tut mir leid, wenn diese Frage zu allgemein ist, aber ich habe nur eine rudimentäre Ausbildung in Elektrotechnik und frage mich, ob es eine Patentlösung dafür gibt, warum für normale Aufgaben, wie sie in den verlinkten Fragen und Antworten beschrieben werden, eine CPU einer GPU vorzuziehen ist: „Verzweigungsvorhersage, Pipelining, Superscaler usw.“

(Als Bonus: Was bedeutet dieses Zitat: „Darüber hinaus mussten sich die benötigten Algorithmen nicht mit Verzweigungen befassen, da nahezu jede erforderliche Verzweigung durch Festlegen eines Koeffizienten auf null oder eins erreicht werden konnte.“)

Antwort1

Die Architektur einer GPU ist für die Verarbeitung von Vektoralgorithmen und -programmen ausgelegt, wie z. B. mathematische Berechnungen, insbesondere für Grafiken, die nicht viele Verzweigungen und Sprünge erfordern und sich mehr auf den Datenfluss durch den Prozessor konzentrieren. Daher ist sie für diesen Zweck optimierter, während eine Allzweck-CPU eine andere Architektur hat, die Sprünge und Verzweigungen auf Kosten des Datenflusses besser verarbeiten kann.

Wenn Sie sich das Layout dieser beiden CPU-Typen ansehen, werden die Unterschiede deutlich.

(Ich weiß, dass diese Antwort etwas lahm ist, aber ich bin gerade aufgewacht und es ist Jahre her, dass ich mich seit dem letzten Prozessordesign beschäftigt habe.)

Antwort2

Die zweite Antwort in der von Ihnen verlinkten Frage (nicht die akzeptierte, sondern die mit den meisten Stimmen) ist meiner Meinung nach gut geschrieben und ausreichend detailliert.

Wenn Sie ein tieferes Verständnis der dort genannten Konzepte erlangen möchten, sollten Sie meiner Meinung nach für jedes einzelne Konzept eine separate Frage stellen (und erklären, was genau Sie nicht verstehen). Der Grund dafür ist, dass diese Konzepte sowohl architektonischer als auch mikroarchitektonischer Natur sind und ihre Beschreibung auf einer akzeptablen Ebene eine separate Frage erfordert.

Analog dazu können Sie sich CPUs als Schweizer Messer vorstellen – sie können eine Menge und sind in jeder Situation hilfreich. Wenn Sie jedoch wissen, dass Sie einen Salat für 300 Personen schneiden müssen, ist jedes Küchenmesser dem ausgefeiltesten Schweizer überlegen. GPU ist ein Küchenmesser.

CPUs sind für eine Vielzahl von Aufgaben, die von einem „normalen“ Benutzer ausgeführt werden, besser geeignet. Wenn ein Benutzer jedoch weiß, dass die Aufgabe umfangreiche mathematische Berechnungen erfordert, sollte GPU in Betracht gezogen werden. Wenn die Aufgabe neben mathematischen Berechnungen auch parallel ausgeführt werden kann, kann diese Aufgabe als „GPU-spezifisch“ bezeichnet werden.

verwandte Informationen