GPU-Programmierung
Bei welchem Zugriff arbeitet der Constant Memory von CUDA besonders schnell?
- AWenn alle Threads eines Warps dieselbe Adresse lesen (ein Lesezugriff kann an alle verteilt werden)
- BWenn die Threads eines Warps jeweils auf unterschiedliche Adressen schreiben
- CWenn die Threads eines Warps jeweils zufällig unterschiedliche Adressen lesen
Antwort und Erläuterung anzeigen
Antwort: A. Wenn alle Threads eines Warps dieselbe Adresse lesen (ein Lesezugriff kann an alle verteilt werden)
Der Constant Memory ist ein kleiner Bereich, der während der Kernel-Ausführung nicht überschrieben wird und einen eigenen Cache besitzt. Lesen alle Threads eines Warps dieselbe Adresse, kann das Ergebnis eines einzigen Lesezugriffs gleichzeitig an alle verteilt werden, sodass sehr schnell gelesen wird. Er eignet sich, wenn alle Threads denselben Wert verwenden, etwa Koeffizienten von Bildfiltern oder Parameter physikalischer Simulationen. Bei verstreuten Adressen zerfällt der Lesezugriff, und es wird eher langsamer.