Wenn ich einen Computer baue, welchen Gegenstand sollte ich mehr interessieren?
Aus praktischer Sicht sollten Sie dem Motherboard und der CPU angesichts der relativen Schwierigkeit des Upgrades im Vergleich zur GPU wahrscheinlich einiges Aufmerksamkeit schenken. Nach dem Kauf ist eine schreckliche Zeit, um festzustellen, dass Sie nicht genug Platz für vier GPUs oder einen schnell genug arbeitenden Prozessor haben, um sie alle zu beschäftigen.
Sie sollten sich auch bewusst sein, dass die GPU-Leistung am häufigsten in FLOPs mit einfacher Genauigkeit angegeben wird und bei doppelter Genauigkeit erheblich abnimmt. Wenn Sie die zusätzliche Präzision in Ihren Simulationen benötigen, werden Sie deutlich unter der angegebenen Geschwindigkeit enden.
Auf zu den Software-Engineering-Rennen
Unter dem Gesichtspunkt der Software gibt es zwei Hauptprobleme: den Von Neumann-Engpass und das Programmiermodell. Die CPU hat einen recht guten Zugriff auf den Hauptspeicher, die GPU verfügt über viel schnelleren Arbeitsspeicher. Es ist nicht unbekannt, dass das Verschieben von Daten in und aus der GPU einen Geschwindigkeitsgewinn vollständig zunichte macht. Im Allgemeinen ist die CPU ein Gewinner bei moderaten Berechnungen für große Datenmengen, während die GPU bei umfangreichen Berechnungen für kleinere Datenmengen eine herausragende Rolle spielt. All dies bringt uns zum Programmiermodell.
Auf hoher Ebene ist das Problem die altehrwürdige MIMD / SIMD-Debatte. Multiple-Instruction / Multiple-Data-Systeme waren die großen Gewinner im allgemeinen und kommerziellen Computing. In diesem Modell, das den SMP enthält, führen mehrere Prozessoren jeweils ihren eigenen individuellen Befehlsstrom aus. Es ist das Computeräquivalent einer französischen Küche, in der Sie eine kleine Anzahl erfahrener Köche anweisen, relativ komplizierte Aufgaben zu erledigen.
Single-Instruction / Multiple-Data-Systeme ähneln dagegen eher einem riesigen Raum voller Angestellter, die an ihre Schreibtische gekettet sind und den Anweisungen eines Master-Controllers folgen. "Alle ADDIEREN die Zeilen 3 und 5!" Es wurde in seiner reinen Form in der ILLIAC und einigen "Mini-Super" -Systemen verwendet, ging aber auf dem Markt verloren. Aktuelle GPUs sind eng verwandt, flexibler, haben aber die gleiche allgemeine Philosophie.
Es kurz zusammenfassen:
- Bei jeder Operation ist die CPU schneller, während die GPU viele gleichzeitig ausführen kann. Der Unterschied ist bei 64-Bit-Floats am deutlichsten.
- CPU-Kerne können mit jeder Speicheradresse arbeiten, Daten für die GPU müssen in einem kleineren Bereich gepackt werden. Sie gewinnen nur, wenn Sie genügend Berechnungen durchführen, um die Übertragungszeit auszugleichen.
- Code mit vielen Bedingungen ist in der Regel auf der CPU zufriedener.