GPU-Programmierung
Welche Aussage zum Verhältnis von Block und SM (Streaming Multiprocessor) in CUDA ist richtig?
- ADie Threads eines Blocks werden auf alle SMs verteilt ausgeführt
- BDie Zahl der SMs und die Zahl der Blöcke müssen stets gleich sein
- CJeder Block wird einem SM zugewiesen und dort bis zum Ende ausgeführt; auf einem SM können mehrere Blöcke gleichzeitig platziert sein
Antwort und Erläuterung anzeigen
Antwort: C. Jeder Block wird einem SM zugewiesen und dort bis zum Ende ausgeführt; auf einem SM können mehrere Blöcke gleichzeitig platziert sein
Die GPU besitzt viele SMs und weist die Blöcke des Kernels der Reihe nach freien SMs zu. Ein Block wird auf einem SM ausgeführt, sodass die Threads des Blocks den Shared Memory dieses SM nutzen und sich synchronisieren können. Ist die Zahl der Blöcke deutlich größer als die Zahl der SMs, erhalten bei unterschiedlich großen GPUs alle SMs Arbeit, und einem fertigen SM wird der nächste Block zugewiesen.