내가 좋아하는 몇 가지 C/CUDA의 디버거 코드, 뭔가를 단계별로 하였다C에서 괄호가 있거나없는 괄호는 다르게 처리됩니까?
for(uint i = threadIdx.x; i < 8379; i+=256)
sum += d_PartialHistograms[blockIdx.x + i * HISTOGRAM64_BIN_COUNT];
그리고 디버거가 한 단계에서 지나가는 때문에 출력이 정확하지만, 나는 완전히 혼란스러워했다. 다음 코드 조각에서와 같이 루프 주위에 중괄호를 넣으면 디버거에서 예상대로 작동한다는 것을 알게되었습니다.
for(uint i = threadIdx.x; i < 8379; i+=256) {
sum += d_PartialHistograms[blockIdx.x + i * HISTOGRAM64_BIN_COUNT];
}
C 나 디버거에서 다르게 처리되는 루프에 대해서는 괄호가 필요하지 않으며, 아마도 CUDA에만 해당됩니다.
감사
나는 단지 궁금해서 ... 두 사람 모두 속도면에서 차이가 있습니까? –