PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnisfrage OpenCL & NVidia: Streaming Multiprozessoren und Compute Units


Weyoun
2012-06-20, 16:39:59
Hallo zusammen,

ich brüte gerade mal wieder über einige Tutorials und mir wird der Zusammenhang zwischen Compute Units bei OpenCL und NVidias Streaming Multiprozessoren nicht ganz klar.

Wenn ich jetzt 500 Instanzen eines Kernels, d. h. 500 Workitems zur gleichzeitigen Bearbeitung auf die Grafikkarte schicke, wieviele Workitems werden parallel zur gleichen Zeit abgearbeitet?

Nehmen wir als Beispiel die GTX 460 mit 768 MB Ram:

Das Ding hat 336 Streaming Prozessoren, heißt dass das 336 Instanzen jetzt im ersten Zug abgearbeitet werden und 500-336=164 später?

Jetzt bin ich darauf gekommen, das eine GTX 460 nur 7 Compute Units hat, das heißt doch dann eigentlich, dass nur 7 Workitems gleichzeitig abgearbeitet werden können? Das überrascht mich, ich dachte das wären weitaus mehr? Da haben doch dann Octacore CPUs mehr Parallitätspotential als eine Grafikkarte...

Aber wofür sind dann die 336 Streaming Multiprozessoren gut? Sind das nur die Prozesselemente bei OpenCL und eine nVidia GPU braucht 336/7 = 48 Prozesselemente um eine Compute Unit zu betreiben?

Wäre sehr dankbar, wenn mir einer erklären könnte wie es tatsächlich aussieht :)

Viele Grüße,
Weyoun

Gast
2012-06-21, 08:33:31
Ein Workitem läuft in einem "Processing Element", also in einem der 336 Streaming Prozessoren. Eine Compute Unit, also ein Streaming Multi-Prozessor kann eine Workgroup bearbeiten, in der eben mehrere Workitems sind.

Wieviel "gleichzeitig" berechnet wird ist schwer zu sagen, denn die Grafikkarte kann an einem anderen Workitem rechnen, wenn eines gerade auf Speicher wartet.

Weyoun
2012-06-21, 09:34:51
Ahhh... Verdammt! Danke! :)