2011-05-30 23 views
11

Bir iplik ızgara (örneğin sadece 1 blok) ile benim çekirdeği başlatırsanız:CUDA konuları çözgü olarak nasıl ayrılır?

dim3 threads(16,16); 

bu ızgara şimdi çözgü ayrılmıştır nasıl? Bu kılavuzun ilk iki satırı bir çözgü veya ilk iki sütun mu yoksa bu isteğe göre mi sıralanıyor? threadIdx.x sonra threadIdx.y ikinci hızlı değişen ve threadIdx.z yavaş değişen, en hızlı değişir ve böylece 2.0 bir grafik işlemcisi hesaplayın Yetenek ve 32.

cevap

23

Lifler bir çözgü boyutu varsayalım blok içinde sırayla numaralandırılmıştır. Bu, işlevsel olarak çok boyutlu dizilerde kolon majör sıralaması ile aynıdır. Çözgü bu sıradaki ipliklerden sırayla üretilir. Bu nedenle, 2d bloğunun hesaplanması, hem programlama kılavuzunda hem de PTX rehberinde yer almaktadır. Bu, hem programlama kılavuzunda hem de PTX kılavuzunda ele alınmıştır.

+6

Not "Sütun büyük siparişi", dim3 öğesinin bir yapıdan ziyade bir dizi olduğunu varsayar. Daha kesin bir açıklama, '.x' boyutların en hızlı şekilde değişmesidir, '.y' ikinci en hızlı değişen ve '.z' en yavaş değişir. Satırlar, sütunlar, dilimler, ofsetler, ağaç düzeyleri veya bellek içindeki herhangi bir adresleme ile .x ', '.y' ve' .z' arasında nasıl ilişki kurabilirsiniz. – harrism