Ist der lokale Speicherzugriff zusammengearbeitet?
-
26-10-2019 - |
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?
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.