AI 하드웨어·소프트웨어 스택
여러 GPU로 학습하는 데이터 병렬의 설명으로 올바른 것은 무엇인가?
- A각 GPU가 모델 전체의 복제본을 가지고 데이터를 나누어 계산하며, 구한 기울기를 전 GPU에서 평균한 뒤 가중치를 갱신한다
- B모델의 층을 나누어 각 GPU가 서로 다른 층을 담당한다
- CGPU 하나만으로 계산하고 나머지 GPU는 예비로 둔다
정답과 해설 보기
정답: A. 각 GPU가 모델 전체의 복제본을 가지고 데이터를 나누어 계산하며, 구한 기울기를 전 GPU에서 평균한 뒤 가중치를 갱신한다
데이터 병렬에서는 모든 GPU가 같은 모델을 가지고 학습 데이터의 배치를 나누어 각각 순전파와 역전파를 수행합니다. 각 GPU의 기울기는 서로 다르므로 전 GPU의 기울기를 합산하여 평균하는 통신(올리듀스)을 수행하고, 모두가 같은 기울기로 가중치를 갱신하여 모델 복제본을 동일하게 유지합니다. 모델이 GPU 1장에 들어간다면 간단하고 효과적이지만, GPU 수가 늘면 통신이 무거워집니다.
- A. 정답입니다. 가장 기본적인 병렬 방식입니다.
- B. 그것은 파이프라인 병렬입니다.
- C. 그래서는 병렬이 되지 않습니다.