GPU-Programmierung

Wie viele Stufen sind nötig, wenn 1024 Werte mit einer baumförmigen Reduktion summiert werden?

  1. A10
  2. B512
  3. C1023
Antwort und Erläuterung anzeigen

Antwort: A. 10

In jeder Stufe halbiert sich die Zahl der Werte: 1024→512→256→…→1, bis bei 1 nach 10 Halbierungen Schluss ist. Die Zahl der Stufen ist also log2 1024=10. Die Gesamtzahl der Additionen beträgt 512+256+…+1=1023 und ist damit wie bei der Addition durch einen einzelnen Thread; da es nur 10 Stufen gibt, ist die Berechnung bei genügend Threads aber sehr schnell fertig.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu GPU-Programmierung

  1. Was gilt im Allgemeinen für CPU-seitigen und GPU-seitigen Speicher bei einem Programm, das eine einzelne diskrete GPU nutzt?
  2. Bei einer leichten Verarbeitung, die jedes Array-Element nur einmal addiert, kann das Senden der Daten an die GPU langsamer sein als die Berechnung auf der CPU. Was ist der Hauptgrund?
  3. Warum wird die Übertragung schneller, wenn CPU-Speicher fixiert (Page-Locked) und dann auf die GPU übertragen wird?
  4. Was ist der Hauptzweck der Verwendung mehrerer CUDA-Streams?
  5. Ein Programm, das tausende Male hintereinander sehr kleine Kernel startet, ist langsam. Welche Verbesserung ist am besten geeignet?

Vergleiche zu diesem Thema