GPU 프로그래밍
요소 수 1000인 배열을 블록당 256스레드, 스레드당 1요소씩 처리하려 한다. 실행할 블록 수로 올바른 것은?
- A3
- B4
- C1000
정답과 해설 보기
정답: B. 4
1000÷256≒3.9이므로 버림하여 3블록으로 하면 256×3=768요소까지만 처리할 수 있어 나머지가 누락됩니다. 올림하여 4블록(1024스레드)을 실행하고, 남는 24스레드는 아무것도 하지 않도록 합니다. 일반적으로 "(n + 256 - 1) / 256"처럼 계산하여 올림합니다. 남는 스레드가 배열 범위 밖을 읽거나 쓰지 않도록 커널 안에서 번호를 확인해야 합니다.