GPU-Programmierung
Welche Aussage zum Unterschied zwischen dem SIMT-Verfahren (Single Instruction, Multiple Threads) der GPU und SIMD-Befehlen der CPU ist richtig?
- ASIMT führt mehrere Anweisungen gleichzeitig auf einem Datum aus, SIMD wendet eine Anweisung auf ein Datum an
- BSIMT und SIMD sind genau dasselbe und unterscheiden sich nur im Namen
- CBei SIMT lässt sich jeder Thread als unabhängiges Programm schreiben, und die Hardware übernimmt auch Verzweigungen, während bei SIMD Programmierer oder Compiler explizit Vektorbefehle fester Breite verwenden
Antwort und Erläuterung anzeigen
Antwort: C. Bei SIMT lässt sich jeder Thread als unabhängiges Programm schreiben, und die Hardware übernimmt auch Verzweigungen, während bei SIMD Programmierer oder Compiler explizit Vektorbefehle fester Breite verwenden
Bei SIMD der CPU wird eine Anweisung auf ein Vektorregister angewendet, das z. B. 4 oder 8 Daten bündelt; das Programm wird daher mit Blick auf die Vektorbreite geschrieben. Bei SIMT der GPU schreibt der Programmierer die Verarbeitung eines einzelnen Threads ganz normal, und die Hardware bündelt je 32 Threads zur Ausführung mit derselben Anweisung. Threads dürfen verzweigen, und die Hardware führt die verzweigten Pfade nacheinander aus, wobei die Effizienz sinkt.