Aus online Dokumentation:
%Vor%Füllt die ersten Zählbytes des Speicherbereichs, auf den devPtr zeigt, mit dem konstanten Wert byte .
Parameter: devPtr - Zeiger auf Gerätespeicher Wert - Wert, der für jedes Byte des angegebenen Speichers festgelegt werden soll Anzahl - Größe in Bytes , um
festzulegenDiese Beschreibung scheint nicht korrekt zu sein:
%Vor%setzt alle 32 ganzen Zahlen auf 0x12, nicht auf 0x12121212. (Int vs Byte)
Die Beschreibung bezieht sich auf das Setzen von Bytes. Count und Value werden in Bytes beschrieben. Die Anzahl der Benachrichtigungen ist vom Typ size_t und der Wert ist vom Typ int. d. Setzen Sie eine Byte-Größe auf einen int-Wert.
cudaMemset () wird in der Prog-Anleitung nicht erwähnt. Ich muss annehmen, dass das Verhalten, das ich sehe, korrekt ist, und die Dokumentation ist schlecht.
Gibt es eine bessere Dokumentationsquelle? (Wo?)
Werden andere Typen unterstützt? Würde float *dJunk;
arbeiten? Andere?
Die Dokumentation ist korrekt und Ihre Interpretation, was cudaMemset
macht, ist falsch. Die Funktion setzt wirklich Byte-Werte. In Ihrem Beispiel werden die ersten 32 Bytes auf 0x12
festgelegt, nicht alle 32 ganzen Zahlen auf 0x12
, viz:
erzeugt
%Vor% ie. alle 128 Bytes werden auf 0 gesetzt, dann werden die ersten 32 Bytes auf 0x12
gesetzt. Genau wie in der Dokumentation beschrieben.