GPU-Programmierung
Auf der GPU sollen nur die Elemente eines Arrays, die eine Bedingung erfüllen, herausgenommen und kompakt in ein anderes Array geschrieben werden (jeder Thread gibt 0 oder 1 Wert aus). Welche parallele Berechnung wird häufig verwendet, um die Schreibadresse jedes Threads zu bestimmen?
- AMatrixtransposition
- BPräfixsumme (Scan, kumulative Summe von vorn)
- CSchnelle Fourier-Transformation
Antwort und Erläuterung anzeigen
Antwort: B. Präfixsumme (Scan, kumulative Summe von vorn)
Stellt man für jeden Thread mit 0 oder 1 dar, ob er ausgibt, und bildet davon die kumulative Summe von vorn (exklusive Präfixsumme), entspricht der Wert jedes Threads der „Zahl der Threads vor ihm, die ausgeben“, und das ist unmittelbar seine Schreibadresse. Der Scan lässt sich wie die Reduktion in Baumform parallel berechnen. Er ist das Grundwerkzeug, um Verarbeitungen, bei denen die Ausgabemenge je Element verschieden ist, parallel kompakt auszugeben.