Frage

Angenommen, ich deklare eine lokale Variable in einer Cuda -Kernelfunktion für jeden Thread:

float f = ...; // some calculations here

Nehmen wir auch an, dass die deklarierte Variable von einem Compiler in ein lokales Gedächtnis platziert wurde (das ist das gleiche wie globaler, außer dass sie für einen Thread nur soweit ich weiß). Meine Frage ist der Zugang zu dem Zugang f beim Lesen zusammenziehen?

War es hilfreich?

Lösung

Ich glaube nicht Warp wird zusammenhängender Zugang zum lokalen Speicher erhalten. Bei Fermi wird auch der lokale Speicher unter Verwendung des gleichen L1/L2 -Zugangsmechanismus wie globaler Speicher zwischengespeichert.

Andere Tipps

CUDA -Karten haben keinen Speicher für lokale Variablen. Alle lokalen Variablen werden in Registern gespeichert. Komplexe Kerne mit vielen Variablen reduzieren die Anzahl der Fäden, die gleichzeitig ausgeführt werden können, eine Bedingung, die als niedrige Belegung bezeichnet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top