GPU 프로그래밍
매우 작은 커널을 수천 번 연속으로 실행하는 프로그램이 느릴 때, 개선 방법으로 가장 적절한 것은?
- A여러 작은 커널을 하나로 합치는(융합) 등으로 실행 횟수를 줄인다
- B커널 실행 사이에 대기 시간을 넣는다
- C블록당 스레드 수를 1로 한다
정답과 해설 보기
정답: A. 여러 작은 커널을 하나로 합치는(융합) 등으로 실행 횟수를 줄인다
커널 실행에는 CPU 측 처리와 GPU 준비로 수 마이크로초 정도의 고정 시간이 걸립니다. 커널의 실제 처리가 그보다 짧으면 실행 오버헤드만 두드러집니다. 여러 처리를 하나의 커널로 합치면 실행 횟수가 줄어들 뿐 아니라, 중간 결과를 메모리에 쓰고 다시 읽는 부담도 없앨 수 있습니다. 실행 순서열을 한꺼번에 기록해 두었다가 한 번에 보내는 방식(CUDA Graphs 등)도 사용됩니다.