GPU 프로그래밍

CUDA 유니파이드 메모리(통합 메모리)에 대한 설명으로 올바른 것은?

  1. ACPU와 GPU에서 같은 포인터로 사용할 수 있는 메모리로, 필요에 따라 데이터가 자동으로 이동한다
  2. BCPU와 GPU 칩을 물리적으로 하나로 만든 것
  3. CGPU 메모리를 모두 읽기 전용으로 만든 것
정답과 해설 보기

정답: A. CPU와 GPU에서 같은 포인터로 사용할 수 있는 메모리로, 필요에 따라 데이터가 자동으로 이동한다

유니파이드 메모리에서는 할당한 영역에 CPU에서도 GPU에서도 같은 포인터로 접근할 수 있으며, 접근이 있을 때 페이지 단위로 데이터가 필요한 쪽으로 이동합니다. 프로그램이 간단해지고 GPU 메모리보다 큰 데이터도 다루기 쉬워집니다. 다만 이동할 때마다 페이지 폴트와 전송이 발생하므로, 성능이 필요할 때는 미리 이동시키라는 지시를 내리는 등의 궁리를 합니다.

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

GPU 프로그래밍의 다른 문제

  1. GPU에서 두 개의 큰 배열의 요소별 덧셈(c[i] = a[i] + b[i])을 수행할 때, 성능을 주로 결정하는 것은?
  2. 가정용 게임 GPU 대부분에서 배정밀도(FP64) 연산 성능이 단정밀도(FP32)보다 훨씬 낮은(수십 분의 일 등) 이유로 가장 적절한 것은?
  3. 최근 GPU에 탑재된 텐서 코어(행렬 연산 유닛)의 특징으로 올바른 것은?
  4. GPU의 혼합 정밀도 계산에서 곱셈은 FP16 등 낮은 정밀도로, 합산(누적)은 FP32로 하는 경우가 많은 이유로 올바른 것은?
  5. GPU에서 같은 데이터의 부동소수점수 총합을 구했더니, 실행할 때마다 결과의 마지막 자릿수가 미세하게 달랐다. 가장 가능성이 높은 원인은?

이 분야의 비교