【发布时间】:2022-01-17 18:57:33
【问题描述】:
此代码块运行正常。但我想知道 for 循环内部是并行运行(在 cuda 中)还是串行运行?
const int xIndex = blockIdx.x * blockDim.x + threadIdx.x;
const int yIndex = blockIdx.y * blockDim.y + threadIdx.y;
int tid = yIndex * blockDim.x + xIndex;
float resultOneDimensional = 0;
if((xIndex < width) && (yIndex < height)){
const int input_tid = yIndex * inputWidthStep + xIndex;
const int buffer_tid = yIndex * bufferWidthStep + (xIndex * CHANNEL);
const float readFrame = input[input_tid];
output[buffer_tid + bufferSize] = readFrame;
for (tid = 0; tid < CHANNEL; tid++){
resultOneDimensional += (output[buffer_tid + bufferSize + tid] / (CHANNEL));
}
outputOneDimensional[input_tid] = static_cast<unsigned char>(resultOneDimensional);
}
【问题讨论】:
-
请您使用 C 或 C++ 编程,但很少同时使用两者。您显示的代码不是有效的 C,因此请edit您的问题以删除 C 语言标签。