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

여러 GPU로 학습하는 데이터 병렬의 설명으로 올바른 것은 무엇인가?

  1. A각 GPU가 모델 전체의 복제본을 가지고 데이터를 나누어 계산하며, 구한 기울기를 전 GPU에서 평균한 뒤 가중치를 갱신한다
  2. B모델의 층을 나누어 각 GPU가 서로 다른 층을 담당한다
  3. CGPU 하나만으로 계산하고 나머지 GPU는 예비로 둔다
정답과 해설 보기

정답: A. 각 GPU가 모델 전체의 복제본을 가지고 데이터를 나누어 계산하며, 구한 기울기를 전 GPU에서 평균한 뒤 가중치를 갱신한다

데이터 병렬에서는 모든 GPU가 같은 모델을 가지고 학습 데이터의 배치를 나누어 각각 순전파와 역전파를 수행합니다. 각 GPU의 기울기는 서로 다르므로 전 GPU의 기울기를 합산하여 평균하는 통신(올리듀스)을 수행하고, 모두가 같은 기울기로 가중치를 갱신하여 모델 복제본을 동일하게 유지합니다. 모델이 GPU 1장에 들어간다면 간단하고 효과적이지만, GPU 수가 늘면 통신이 무거워집니다.

  • A. 정답입니다. 가장 기본적인 병렬 방식입니다.
  • B. 그것은 파이프라인 병렬입니다.
  • C. 그래서는 병렬이 되지 않습니다.
이 분야 연습하기 분야로 돌아가기

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

  1. GPU 1장의 메모리에 들어가지 않는 큰 층의 행렬 곱을 여러 GPU로 나누어 계산하는 텐서 병렬의 설명으로 올바른 것은 무엇인가?
  2. 모델의 층을 순서대로 여러 GPU에 나누어 담당시키는 파이프라인 병렬에서, 배치를 작은 마이크로배치로 나누어 흘려 보내는 이유로 올바른 것은 무엇인가?
  3. 분산 학습에서 사용되는 올리듀스(All-Reduce) 통신의 역할로 올바른 것은 무엇인가?
  4. 학습에서 사용되는 기울기 체크포인팅(활성화 재계산)의 설명으로 올바른 것은 무엇인가?
  5. AI용 가속기에서 사용되는 시스톨릭 어레이가 행렬 곱을 효율적으로 계산할 수 있는 주된 이유는 무엇인가?