警告:"pointless comparison of unsigned integer with zero"cuda
Warning:"pointless comparison of unsigned integer with zero" cuda
正在做
if(blockIdx.y-threadIdx.y >=0){
//some operation }
我收到上述警告。谁能告诉我为什么 CUDA 编译器将此作为警告抛出。我只是试图只允许满足上述条件的那些线程进入 if 语句。
如果我忽略它,会有什么后果吗?
请注意,我正在启动多个块:
dim3 nblocks (7,7)
dim3 nthreadsperblock (256,256)
kernel<<<nblocks,nthreadsperblock>>>(...)
您应该将变量转换为 signed int
s 或将表达式更改为 if(blockIdx.y>=threadIdx.y){
,这在数学上与 if(blockIdx.y-threadIdx.y >=0){
.
相同
很快您可以将所有 (a - b *op* 0)
替换为 (a *op* b)
,其中 *op*
是比较运算符之一。
正在做
if(blockIdx.y-threadIdx.y >=0){
//some operation }
我收到上述警告。谁能告诉我为什么 CUDA 编译器将此作为警告抛出。我只是试图只允许满足上述条件的那些线程进入 if 语句。 如果我忽略它,会有什么后果吗? 请注意,我正在启动多个块:
dim3 nblocks (7,7)
dim3 nthreadsperblock (256,256)
kernel<<<nblocks,nthreadsperblock>>>(...)
您应该将变量转换为 signed int
s 或将表达式更改为 if(blockIdx.y>=threadIdx.y){
,这在数学上与 if(blockIdx.y-threadIdx.y >=0){
.
很快您可以将所有 (a - b *op* 0)
替换为 (a *op* b)
,其中 *op*
是比较运算符之一。