GPU 프로그래밍

GPU의 SM에 명령을 발행하는 장치가 하나 있고, 1사이클에 하나의 워프에서 명령을 발행할 수 있다고 한다. 각 워프는 '20사이클분의 명령을 발행한 뒤 메모리 읽기 결과가 도착할 때까지 400사이클 기다리는' 것을 반복한다. 워프 전환에 시간이 걸리지 않을 때, 메모리 대기로 인한 빈 시간을 없애는(레이턴시 은닉) 데 필요한 워프 수는 최소 몇 개인가?

  1. A21개
  2. B2개
  3. C420개
정답과 해설 보기

정답: A. 21개

하나의 워프는 420사이클(20+400)마다 20사이클만 명령을 발행할 수 있습니다. 명령 발행 장치를 쉬지 않게 하려면 420÷20 = 21개의 워프가 번갈아 명령을 발행하면 되며, 어떤 워프가 400사이클 기다리는 동안 다른 20개의 워프가 20사이클씩 명령을 발행해 채웁니다. 워프가 부족하면 대기 시간이 성능에 드러나 연산기가 놉니다. 실제 GPU에서는 대기 길이나 명령 배치에 따라 필요한 수가 달라지며, 하나의 워프 안에서 서로 의존하지 않는 명령을 늘리는(명령 수준 병렬성) 방법으로도 대기를 채울 수 있습니다.

이 분야 연습하기 분야로 돌아가기

관련 계산 도구

GPU 프로그래밍의 다른 문제

  1. CPU와 GPU의 설계 사고방식의 차이로 올바른 것은?
  2. GPU에서 빠르게 처리할 수 있는 작업의 특징으로 가장 적절한 것은?
  3. GPU에서 실행하면 효율이 떨어지기 쉬운 처리는?
  4. CUDA 등 GPU 프로그래밍에서 말하는 '커널'에 대한 설명으로 올바른 것은?
  5. CUDA 스레드 계층의 조합으로 올바른 것은? (큰 순서)

이 분야의 비교