Colindo schrieb:
Was ist denn deiner Meinung nach der Unterschied. Meinst du, dass das 'C' in 'IPC' für Cycle und nicht Clock steht?
Das ganze geht schon damit los, dass man den IPC wert nicht ohne Profiling bestimmen kann, die Performance aber sehr wohl. Dann eignet sich der IPC Wert eher für Betrachtungen, wie stark ein Programm die Rechenwerke auslastet; niemand der bei Sinnen ist versucht beim Programmieren den IPC Wert seines Programmes zu optimieren. Jedoch ist bei einem Vergleich zwischen zwei Rechnern der IPC Wert nur direktproportional zur Performance pro Kern pro Takt, wenn die Instruktionssätze und die Vektorbreiten der verglichenen Rechner und die Programme die auf beiden Rechnern ausgeführt werden, ebenfalls identisch sind. Und gerade das ist ja bei GPUs nicht der Fall, wo jede Generation ihren eigenen Instruktionssatz besitzt, und ein Laufzeitcompiler das Programm auf die entsprechende GPU optimiert.
Krass das sich bei der Theoretischen Rechenleistung pro Kern und Takt garnix tut.
Was für Möglichkeiten haben die GPU-Hersteller denn?
a) Mehr Vektoreinheiten einbauen (von SIMD auf MIMD): Die zusätzlichen Vektoreinheiten müssen irgendwie befüttert werden, sowohl mit Instruktionen als auch mit Daten über ihre Register. Dies hat NVIDIA mal mit Kepler versucht, lief nicht so effizient; von den 6 Vektoreinheiten auf einer Kepler GPU sind 2 meistens verhungert, weil die Register nicht genügend Bandbreite hatten.
b) Mehr "Subkerne" in einen Kern einbauen (*): Dieser Ansatz bekommt auch Skalierungsprobleme über die Resourcen die sich die Subkerne teilen.
c) Breitere Vektoreinheiten einbauen: Je breiter die Vektoreinheiten sind, umso weniger Kontrolllogik kann man auf einer GPU sich einsparen wenn man die Breite zusätzlich erhöht. Dafür werden die Strafen für Branching innerhalb eines Vektors umso größer.
*: Ich bezeichne hier einen SM oder eine CU als Kern, weil das was NVIDIA und AMD als GPU-Kern bezeichnet, kein Kern ist. Man mag argumentieren, dass je man nach GPU-Architektur man einen Subkern bereits als einen eigenständigen Kern bezeichnen könnte, analog zur Bulldozer debatte.