GPU 프로그래밍

CPU 메모리를 핀 고정(페이지 락)한 뒤 GPU로 전송하면 빨라지는 이유로 올바른 것은?

  1. AOS가 해당 페이지를 옮기거나 내보내지 않으므로 GPU가 DMA로 직접 읽고 쓸 수 있어 중간 복사가 필요 없고 비동기 전송도 가능하기 때문
  2. B핀 고정하면 데이터가 압축되기 때문
  3. C핀 고정하면 PCI Express의 세대가 올라가기 때문
정답과 해설 보기

정답: A. OS가 해당 페이지를 옮기거나 내보내지 않으므로 GPU가 DMA로 직접 읽고 쓸 수 있어 중간 복사가 필요 없고 비동기 전송도 가능하기 때문

일반 메모리는 OS가 언제든 다른 물리 페이지로 옮기거나 스토리지로 내보낼 수 있으므로, GPU의 DMA가 그대로 읽고 쓰는 것은 위험합니다. 그래서 보통은 일단 핀 고정한 임시 영역에 복사한 뒤 전송합니다. 처음부터 핀 고정한 메모리를 사용하면 이 불필요한 복사가 사라지고, CPU 처리와 겹쳐서 비동기로 전송할 수도 있습니다.

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

GPU 프로그래밍의 다른 문제

  1. CUDA 스트림을 여러 개 사용하는 주된 목적은?
  2. 매우 작은 커널을 수천 번 연속으로 실행하는 프로그램이 느릴 때, 개선 방법으로 가장 적절한 것은?
  3. CUDA 유니파이드 메모리(통합 메모리)에 대한 설명으로 올바른 것은?
  4. GPU에서 두 개의 큰 배열의 요소별 덧셈(c[i] = a[i] + b[i])을 수행할 때, 성능을 주로 결정하는 것은?
  5. 가정용 게임 GPU 대부분에서 배정밀도(FP64) 연산 성능이 단정밀도(FP32)보다 훨씬 낮은(수십 분의 일 등) 이유로 가장 적절한 것은?

이 분야의 비교