“无符号整数与零的比较毫无意义”关于做好警告:CUDA
if(blockIdx.y-threadIdx.y >=0){
//some operation }
我得到了上述警告。谁能告诉我为什么CUDA编译器会将此作为警告提示。我只是试图只允许符合上述条件的线程进入if语句。 如果我忽略它,会有什么后果吗? 请注意,我推出多个块为:
dim3 nblocks (7,7)
dim3 nthreadsperblock (256,256)
kernel<<<nblocks,nthreadsperblock>>>(...)
警告告诉你一切。您可以减去两个**无符号**值,因此结果总是至少为0 – mpiatek
@mpiatek for blockidx.y = 1,threadix.y> 1的线程会导致负值?我试图过滤掉 – darkfall94
@ darkfall94:没有。无符号表达式的结果是无符号类型,因此必然是非负的。无符号类型在整型mod TYPE_MAX + 1上表现为模运算。 –