AI 하드웨어·소프트웨어 스택

모델의 층을 순서대로 여러 GPU에 나누어 담당시키는 파이프라인 병렬에서, 배치를 작은 마이크로배치로 나누어 흘려 보내는 이유로 올바른 것은 무엇인가?

  1. A마이크로배치로 하면 계산 횟수가 줄어들기 때문
  2. B앞 GPU의 처리를 기다리며 뒤 GPU가 노는 시간(버블)을 줄이고 여러 GPU를 동시에 일하게 하기 위해서
  3. C마이크로배치로 하면 GPU 사이의 통신이 필요 없어지기 때문
정답과 해설 보기

정답: B. 앞 GPU의 처리를 기다리며 뒤 GPU가 노는 시간(버블)을 줄이고 여러 GPU를 동시에 일하게 하기 위해서

배치 전체를 한꺼번에 흘려 보내면 첫 번째 GPU가 계산하는 동안 두 번째 이후의 GPU는 앞의 결과를 기다리며 아무것도 할 수 없습니다. 배치를 작은 마이크로배치로 나누면 첫 번째 GPU가 두 번째 마이크로배치를 계산하는 동안 두 번째 GPU가 첫 번째 것을 계산하는 식으로 겹칠 수 있습니다. 그래도 시작과 끝에는 대기(버블)가 남으므로 마이크로배치의 수를 충분히 많게 합니다.

  • A. 계산 횟수는 같습니다.
  • B. 정답입니다. 공장의 흐름 작업과 같은 발상입니다.
  • C. 층 사이의 전달 통신은 필요합니다.
이 분야 연습하기 분야로 돌아가기

AI 하드웨어·소프트웨어 스택의 다른 문제

  1. 분산 학습에서 사용되는 올리듀스(All-Reduce) 통신의 역할로 올바른 것은 무엇인가?
  2. 학습에서 사용되는 기울기 체크포인팅(활성화 재계산)의 설명으로 올바른 것은 무엇인가?
  3. AI용 가속기에서 사용되는 시스톨릭 어레이가 행렬 곱을 효율적으로 계산할 수 있는 주된 이유는 무엇인가?
  4. AI용 가속기가 칩 위에 큰 SRAM(수십~수백 MB)을 탑재하는 경우가 있는 주된 이유는 무엇인가?
  5. AI 가속기의 데이터플로 방식 중 하나인 '웨이트 스테이셔너리(가중치 고정)'의 설명으로 올바른 것은 무엇인가?