"제로와 부호없는 정수의 무의미한 비교"나는 위의 경고를 얻을. 누구든지 왜 CUDA 컴파일러가 경고 메시지를 던져 주는지 말해 줄 수 있습니까? 나는 위의 기준을 만족하는 스레드 만 if 문에 허용하려고합니다. 내가 무시하면 어떤 결과가 있을까요? 내가 같이 여러 블록을 실행하고 참고 :경고 :</p> <pre><code>if(blockIdx.y-threadIdx.y >=0){ //some operation } </code></pre> <p>일을 CUDA
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에서 모듈러 연산으로 동작합니다. –