GPU 프로그래밍

배열 요소를 한 번만 더하는 가벼운 처리를 위해 데이터를 GPU로 보내면 CPU에서 계산하는 것보다 느려지는 경우가 있다. 주된 이유는?

  1. AGPU는 덧셈을 할 수 없기 때문
  2. BPCI Express를 통한 데이터 복사에 걸리는 시간이, GPU로 빨라지는 계산 시간보다 길어지기 때문
  3. C데이터를 GPU로 보내면 값이 바뀌기 때문
정답과 해설 보기

정답: B. PCI Express를 통한 데이터 복사에 걸리는 시간이, GPU로 빨라지는 계산 시간보다 길어지기 때문

PCI Express 대역폭은 GPU 메모리 대역폭보다 한 자릿수 이상 작으므로, 데이터를 보내는 것만으로도 시간이 걸립니다. 요소당 덧셈 한 번밖에 하지 않는다면 보내는 시간에 비해 계산 시간은 극히 짧아 GPU의 속도를 살릴 수 없습니다. GPU가 이득을 보는 것은 보낸 데이터에 대해 많은 계산을 하는 경우나, 데이터를 GPU 메모리에 둔 채 여러 번 처리하는 경우입니다.

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

GPU 프로그래밍의 다른 문제

  1. CPU 메모리를 핀 고정(페이지 락)한 뒤 GPU로 전송하면 빨라지는 이유로 올바른 것은?
  2. CUDA 스트림을 여러 개 사용하는 주된 목적은?
  3. 매우 작은 커널을 수천 번 연속으로 실행하는 프로그램이 느릴 때, 개선 방법으로 가장 적절한 것은?
  4. CUDA 유니파이드 메모리(통합 메모리)에 대한 설명으로 올바른 것은?
  5. GPU에서 두 개의 큰 배열의 요소별 덧셈(c[i] = a[i] + b[i])을 수행할 때, 성능을 주로 결정하는 것은?

이 분야의 비교