GPU 프로그래밍

CUDA 공유 메모리(shared memory)의 특징으로 올바른 것은?

  1. A모든 GPU와 CPU가 공유하는 대용량 주기억장치
  2. BGPU 메모리를 하드디스크와 공유하는 영역
  3. C같은 블록의 스레드가 공유할 수 있는 칩 상의 작고 빠른 메모리로, 프로그램이 명시적으로 사용한다
정답과 해설 보기

정답: C. 같은 블록의 스레드가 공유할 수 있는 칩 상의 작고 빠른 메모리로, 프로그램이 명시적으로 사용한다

공유 메모리는 각 SM 안에 있는 블록당 수십 KB 정도의 고속 메모리로, 글로벌 메모리(GPU의 DRAM)보다 수십 배 빠르게 읽고 쓸 수 있습니다. 같은 블록의 스레드가 데이터를 두고 공유할 수 있으므로, 글로벌 메모리에서 한 번만 읽어 여러 번 사용하거나 스레드끼리 중간 결과를 주고받는 용도로 사용합니다. 캐시와 달리 무엇을 둘지 프로그램이 결정합니다.

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

GPU 프로그래밍의 다른 문제

  1. CUDA의 __syncthreads()의 역할로 올바른 것은?
  2. CUDA에서 __syncthreads()를 "if (threadIdx.x < 16)" 안에 써서 일부 스레드만 통과하도록 했다. 일어날 수 있는 일로 올바른 것은?
  3. CUDA 공유 메모리의 뱅크 충돌에 대한 설명으로 올바른 것은?
  4. 32×32 float 표를 공유 메모리에 두고 워프의 32개 스레드로 열 방향(세로)으로 읽으면 뱅크 충돌이 발생한다. 자주 사용되는 대책은?
  5. GPU에서 큰 행렬의 곱을 계산할 때, 행렬을 작은 타일로 나누어 공유 메모리에 읽어 들이는 이유로 올바른 것은?

이 분야의 비교