GPU 프로그래밍
GPU의 SM에 명령을 발행하는 장치가 하나 있고, 1사이클에 하나의 워프에서 명령을 발행할 수 있다고 한다. 각 워프는 '20사이클분의 명령을 발행한 뒤 메모리 읽기 결과가 도착할 때까지 400사이클 기다리는' 것을 반복한다. 워프 전환에 시간이 걸리지 않을 때, 메모리 대기로 인한 빈 시간을 없애는(레이턴시 은닉) 데 필요한 워프 수는 최소 몇 개인가?
- A21개
- B2개
- C420개
정답과 해설 보기
정답: A. 21개
하나의 워프는 420사이클(20+400)마다 20사이클만 명령을 발행할 수 있습니다. 명령 발행 장치를 쉬지 않게 하려면 420÷20 = 21개의 워프가 번갈아 명령을 발행하면 되며, 어떤 워프가 400사이클 기다리는 동안 다른 20개의 워프가 20사이클씩 명령을 발행해 채웁니다. 워프가 부족하면 대기 시간이 성능에 드러나 연산기가 놉니다. 실제 GPU에서는 대기 길이나 명령 배치에 따라 필요한 수가 달라지며, 하나의 워프 안에서 서로 의존하지 않는 명령을 늘리는(명령 수준 병렬성) 방법으로도 대기를 채울 수 있습니다.