GPU-Programmierung
Was bestimmt hauptsächlich die Leistung bei der elementweisen Addition zweier großer Arrays auf der GPU (c[i] = a[i] + b[i])?
- ADie Speicherbandbreite (da pro Element 12 Byte gelesen und geschrieben werden, die Berechnung aber nur aus einer Addition besteht)
- BDie Zahl der Recheneinheiten
- CAllein die Taktfrequenz
Antwort und Erläuterung anzeigen
Antwort: A. Die Speicherbandbreite (da pro Element 12 Byte gelesen und geschrieben werden, die Berechnung aber nur aus einer Addition besteht)
Für eine float-Addition werden je 4 Byte von a und b gelesen und 4 Byte nach c geschrieben, also 12 Byte Transfer für eine Operation. Die GPU kann mehrere zehn Billionen Operationen pro Sekunde ausführen, die Speicherbandbreite beträgt aber nur einige TB/s, sodass die Obergrenze dieser Verarbeitung durch die Bandbreite gesetzt wird. Zur Beschleunigung solcher Verarbeitungen helfen die Verringerung der Zahl der Lese- und Schreibzugriffe oder das Fusionieren mehrerer Verarbeitungen, sodass Zwischenergebnisse nicht in den Speicher geschrieben werden.