Pitch Alignment für 2D Texturen

2D-Texturen sind eine nützliche Funktion von CUDA in Bildverarbeitungsanwendungen. Um den Pitch-Linear-Speicher an 2D-Texturen zu binden, muss der Speicher ausgerichtet werden.cudaMallocPitch ist eine gute Option für die ausgerichtete Speicherzuweisung. Auf meinem Gerät kehrte die Tonhöhe durchcudaMallocPitch ist ein Vielfaches von 512, d. h. der Speicher ist auf 512 Byte ausgerichtet.

Die tatsächliche Ausrichtungsanforderung für das Gerät wird von bestimmtcudaDeviceProp::texturePitchAlignment Das sind 32 Bytes auf meinem Gerät.

Meine Frage ist:

Wenn die tatsächliche Ausrichtungsanforderung für 2D-Texturen 32 Byte beträgt, warum dann?cudaMallocPitch 512 Byte ausgerichteten Speicher zurückgeben?

Ist es nicht eine Verschwendung von Gedächtnis? Wenn ich beispielsweise ein 8-Bit-Image der Größe 513 x 100 erstelle, belegt es 1024 x 100 Byte.

Ich bekomme dieses Verhalten auf folgenden Systemen:

1: Asus G53JW + Windows 8 x 64 + GeForce GTX 460M + CUDA 5 + Core i7 740QM + 4 GB RAM

2: Dell Inspiron N5110 + Windows 7 x 64 + GeForce GT525M + CUDA 4.2 + Corei7 2630QM + 6 GB RAM

Antworten auf die Frage(2)

Ihre Antwort auf die Frage