AI 하드웨어·소프트웨어 스택
GPU 1장의 메모리에 들어가지 않는 큰 층의 행렬 곱을 여러 GPU로 나누어 계산하는 텐서 병렬의 설명으로 올바른 것은 무엇인가?
- A각 GPU가 모델 전체의 복제본을 가지고 데이터를 나눈다
- B가중치 행렬을 행 또는 열 방향으로 나누어 각 GPU에 가지게 하고, 부분 곱을 구한 뒤 통신으로 결과를 모은다
- C층마다 다른 GPU에 배치하여 순서대로 처리한다
정답과 해설 보기
정답: B. 가중치 행렬을 행 또는 열 방향으로 나누어 각 GPU에 가지게 하고, 부분 곱을 구한 뒤 통신으로 결과를 모은다
텐서 병렬에서는 예를 들어 가중치 행렬을 열 방향으로 4개로 나누어 4개의 GPU에 가지게 하고, 각 GPU가 같은 입력과 자신이 담당하는 열의 곱을 계산합니다. 마지막에 결과를 이어 붙이거나 더하기 위한 통신이 층마다 필요하므로, GPU 사이를 매우 빠른 연결로 이은 같은 서버 안의 GPU에서 사용하는 것이 일반적입니다. 데이터 병렬이나 파이프라인 병렬과 조합하여 거대한 모델을 학습합니다.
- A. 그것은 데이터 병렬입니다.
- B. 정답입니다. 층 내부의 계산을 나눕니다.
- C. 그것은 파이프라인 병렬입니다.