【发布时间】:2013-01-15 20:37:38
【问题描述】:
我是 cuda 的新手;我有一个带有 3 个通道(颜色)的 2D 图像(宽度、高度)。 我想要的是午餐一个具有 3D 块 和 2D 网格 像这样的内核
kernel_2D_3D<<<dim3(1,m,n), dim3(3,TILEy,TILEz)>>>(float *in, float *out)
我使用 x 表示颜色,y 表示宽度,z 表示高度。我的问题是: 如何计算图像的行列:
- 无符号整数行 = ?
- unsigned int Col = ?
我使用这个函数来计算全局唯一索引
__device__ int getGlobalIdx_2D_3D()
{
int blockId = blockIdx.x+ blockIdx.y * gridDim.x;
int Idx = blockId * (blockDim.x * blockDim.y * blockDim.z)
+ (threadIdx.z * (blockDim.x * blockDim.y))
+ (threadIdx.y * blockDim.x)
+ threadIdx.x;
return Idx;
}
【问题讨论】:
标签: cuda