Я использую Cudafy для выполнения некоторых расчетов на графическом процессоре NVIDIA. (возможность Quadro K1100M 3.0, если это имеет значение)
Мой вопрос в том, когда я использую следующее
cudaGpu.Launch(new dim3(44,8,num), new dim(8, 8)).MyKernel...
почему мои z-индексы из экземпляра GThread всегда равны нулю, когда я использую это в своем ядре?
int z = thread.blockIdx.z * thread.blockDim.z + thread.threadIdx.z;
Кроме того, если мне нужно сделать что-то вроде
cudaGpu.Launch(new dim3(44,8,num), new dim(8, 8, num)).MyKernel...
z дает разные индексы, как и должно быть, но num не может быть очень большим из-за ограничений на количество потоков в блоке. Есть ли какие-нибудь советы о том, как обойти это?
Изменить
Другой способ сформулировать это. Могу ли я использовать thread.z в своем ядре (для чего-нибудь полезного), когда размер блока только 2D?