Wyrównanie wysokości tonu dla tekstur 2D

Tekstury 2D są przydatną funkcją CUDA w aplikacjach do przetwarzania obrazów. Aby powiązać pamięć liniową z teksturami 2D, pamięć musi być wyrównana.cudaMallocPitch jest dobrą opcją dla wyrównanej alokacji pamięci. Na moim urządzeniu wysokość zwrotnacudaMallocPitch jest wielokrotnością 512, tj. pamięć jest wyrównana 512 bajtów.

Rzeczywisty wymóg wyrównania urządzenia jest określony przezcudaDeviceProp::texturePitchAlignment który ma 32 bajty na moim urządzeniu.

Moje pytanie brzmi:

Jeśli rzeczywiste wymaganie wyrównania dla tekstur 2D wynosi 32 bajty, to dlaczegocudaMallocPitch zwracać pamięć wyrównaną 512 bajtów?

Czy to nie strata pamięci? Na przykład, jeśli utworzę obraz 8-bitowy o rozmiarze 513 x 100, zajmie on 1024 x 100 bajtów.

Mam takie zachowanie w następujących systemach:

1: Asus G53JW + Windows 8 x64 + GeForce GTX 460M + CUDA 5 + Core i7 740QM + 4 GB pamięci RAM

2: Dell Inspiron N5110 + Windows 7 x64 + GeForce GT525M + CUDA 4.2 + Corei7 2630QM + 6 GB pamięci RAM

questionAnswers(2)

yourAnswerToTheQuestion