Ich bin Anfänger und kenne mich noch nicht so gut mit all diesen Sachen aus. Aber habe ich das jetzt richtig verstanden, dass weniger CUDA-Kerne vorteilhafter sind als richtig viele?rudi hat geschrieben:Es gibt auch noch ein anderen GPU-Problemchen, das bisher kaum jemand zur Sprache bringt.
CUDA (und größtenteils auch OpenCL) müssen ihre Rechenaufgaben immer auf die einzelnen Kerne verteilen. Dabei gibt es immer verschieden viele Shader Cluster, die wiederum verschieden viele Stream-Prozessoren innehaben. Um die Sache noch komplizierter zu machen: Die sind nicht immer alle frei und arbeiten je nach Karte mit unterschiedlichen DMA-Blockgrößen optimal oder eben nur mit Stalls (d.h. sie müssen mal einen Takt aussetzen um auf den Speicherzugriff zu warten).
Eigentlich müsste/könnte/sollte man jede Applikation auf jede Grafikkarte hin optimieren. Und zwar in erste Linie auf wie viele Kerne man das Problem mit welchen Speichergrößen aufteilt. Passt diese Aufteilung einer Grafikkarte nicht, dann "hagelt es Stalls". Sprich: Strafzyklen in der GPU, die das ganze System ausbremsen. Auch hat jede Karte ein anderes Speicherzugriffsverhältnis. D.h. manche Karten haben wenige Kerne, die schnell auf viel Speicher zugreifen und auch große Blöcke benutzen können. Andere können schneller rechnen, haben evtl. sogar viel mehr Kerne, aber bekommen anteilig nur kleine Speicherhappen, die dauernd kollidieren. Je nach Programm-Problem kann die eine Architektur besser als die andere....
Da könnte ich noch viel schreiben, aber kurz gesagt:
1. Das tut sich kein Hersteller an. So war unter Premiere lange die GTX285 schneller als alle Nachfolger, weil Adobe immer noch lange auf diese Karte hin optimiert hat.
2. Mit der Zeit werden die gängige Karten im Markt besser unterstützt. Die GTX780 wird sicherlich in Zukunft noch besser optimiert werden.
3. Genau dafür ist eigentlich die Zertifizierung gedacht: Dass ein Hersteller sich auf eine Hardware-Komponente festlegt und genau daraufhin sein Programm optimiert.


