【发布时间】:2010-12-19 10:19:09
【问题描述】:
我正在调试器中单步执行一些 C/CUDA 代码,例如:
for(uint i = threadIdx.x; i < 8379; i+=256)
sum += d_PartialHistograms[blockIdx.x + i * HISTOGRAM64_BIN_COUNT];
我完全糊涂了,因为调试器一步步通过了它,尽管输出是正确的。我意识到,当我像下面的 sn-p 那样在循环周围放置大括号时,它在调试器中的行为符合预期。
for(uint i = threadIdx.x; i < 8379; i+=256) {
sum += d_PartialHistograms[blockIdx.x + i * HISTOGRAM64_BIN_COUNT];
}
对于在 C 或调试器中以不同方式处理的循环,或者它可能是 CUDA 特有的,因此是无括号的。
谢谢
【问题讨论】:
-
我只是好奇……这两者的速度会有什么区别吗?
标签: c debugging loops for-loop cuda