这是一个非常普遍的问题,如果有人有这方面的经验会很棒。
每次(在内核中)我想在while循环中使用线程,例如:
tidx = threadIdx.x + blockIdx.x * blockDim.x;
tidy = threadIdx.y + blockIdx.y * blockDim.y;
while(i<70) {
if (tidx<640 && tidy<480){
//calculations to get a desired array
}
}
我的节目冻结了。
我尝试了几件事,比如改变,但似乎没什么用。
我开始认为使用这样的线程是不可能的。 是真的,如果不是,先决条件是什么? 提前谢谢。
答案 0 :(得分:2)
所有版本的CUDA和所有CUDA设备都应该能够进行循环。确保你没有编程无限循环或计算时间只需要延长继电器。