GPU 프로그래밍
GPU 커널에서 스레드당 레지스터 사용량이 너무 많을 때 일어날 수 있는 일로 올바른 것은?
- A레지스터가 자동으로 늘어나 성능이 반드시 향상된다
- B계산 결과가 반드시 틀린다
- CSM의 레지스터 총수는 정해져 있으므로 동시에 올릴 수 있는 스레드 수가 줄어 메모리 지연을 숨기기 어려워진다
정답과 해설 보기
정답: C. SM의 레지스터 총수는 정해져 있으므로 동시에 올릴 수 있는 스레드 수가 줄어 메모리 지연을 숨기기 어려워진다
GPU는 실행 중인 모든 스레드의 레지스터를 칩 상에 유지함으로써 워프 전환을 순식간에 수행합니다. 따라서 한 스레드가 사용하는 레지스터가 많으면 SM에 동시에 올릴 수 있는 스레드 수가 줄어듭니다. 부족한 분량은 메모리로 밀려나(스필) 느려지기도 합니다. 컴파일러 설정으로 레지스터 상한을 지정하여 스레드 수와의 균형을 맞추기도 합니다.