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

GPU 1장의 메모리에 들어가지 않는 큰 층의 행렬 곱을 여러 GPU로 나누어 계산하는 텐서 병렬의 설명으로 올바른 것은 무엇인가?

  1. A각 GPU가 모델 전체의 복제본을 가지고 데이터를 나눈다
  2. B가중치 행렬을 행 또는 열 방향으로 나누어 각 GPU에 가지게 하고, 부분 곱을 구한 뒤 통신으로 결과를 모은다
  3. C층마다 다른 GPU에 배치하여 순서대로 처리한다
정답과 해설 보기

정답: B. 가중치 행렬을 행 또는 열 방향으로 나누어 각 GPU에 가지게 하고, 부분 곱을 구한 뒤 통신으로 결과를 모은다

텐서 병렬에서는 예를 들어 가중치 행렬을 열 방향으로 4개로 나누어 4개의 GPU에 가지게 하고, 각 GPU가 같은 입력과 자신이 담당하는 열의 곱을 계산합니다. 마지막에 결과를 이어 붙이거나 더하기 위한 통신이 층마다 필요하므로, GPU 사이를 매우 빠른 연결로 이은 같은 서버 안의 GPU에서 사용하는 것이 일반적입니다. 데이터 병렬이나 파이프라인 병렬과 조합하여 거대한 모델을 학습합니다.

  • A. 그것은 데이터 병렬입니다.
  • B. 정답입니다. 층 내부의 계산을 나눕니다.
  • C. 그것은 파이프라인 병렬입니다.
이 분야 연습하기 분야로 돌아가기

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

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