GPU-Programmierung
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?
- AWeil die GPU nicht addieren kann
- BWeil die Zeit für das Kopieren der Daten über PCI Express länger ist als die Zeit, die die Berechnung auf der GPU einspart
- CWeil sich Werte ändern, wenn Daten an die GPU gesendet werden
Antwort und Erläuterung anzeigen
Antwort: B. Weil die Zeit für das Kopieren der Daten über PCI Express länger ist als die Zeit, die die Berechnung auf der GPU einspart
Die Bandbreite von PCI Express ist um mehr als eine Größenordnung kleiner als die Speicherbandbreite der GPU, sodass allein das Senden der Daten Zeit kostet. Wird pro Element nur eine Addition ausgeführt, ist die Rechenzeit im Vergleich zur Sendezeit verschwindend gering, und die Geschwindigkeit der GPU kommt nicht zur Geltung. Die GPU lohnt sich, wenn auf die gesendeten Daten viel gerechnet wird oder die Daten im GPU-Speicher verbleiben und mehrfach verarbeitet werden.