상세 컨텐츠

본문 제목

강의 복습내용 [week2-7] Multi-GPU 학습

Ai_tech_5기/2주차 PyTorch

by leeheemna97 2023. 3. 16. 10:35

본문

728x90
반응형

최근에는 Multi-GPU 학습을 쓰는 추세이다!

-> 오늘날의 딥러닝은 엄청난 데이터와의 싸움

 

 

Muti-GPU의 개념

  • Single vs. Multi : Single은 1개, Multi는 2개
  • GPU vs. Node : Node = 시스템 (1대의 컴퓨터), GPU = 1개의 노드에 있는 GPU를 의미
  • Single Node Single GPU : 1개의 컴퓨터에 1개의 GPU
  • Single Node Multi GPU : 1개의 컴퓨터에 여러개의 GPU
  • Multi Node Multi GPU : 여러개의 컴퓨터에서 여러개의 GPU

 

Model parallel

  • 다중 GPU에 학습을 분산하는 두 가지 방법 -> 모델을 나누기 / 데이터를 나누기
  • 모델을 나누는 것은 생각보다 예전부터 썼음(alexnet)
  • 모델의 병목, 파이프라인의 어려움 등으로 인해 모델 병렬화는 고난이도 과제

 

- Alexnet (Multi - GPU)  ->  Model parallel

 

Alexnet의 문제점

각각의 시간에 맞게 돌아가야 병렬화의 의미가 있는데 위에는 병렬화의 의미가 없다.

 

 

- Data parallel

  • 데이터를 나눠 GPU에 할당후 결과의 평균을 취하는 방법
  • minibatch 수식과 유사한데 한번에 여러 GPU에서 수행

 

  • PyTorch에서는 아래 두가지 방식을 제공
    • DataParallel, DistributedDataParallel
      • Data Parallel - 단순히 데이터를 분해한후 평균을 취함
        • GPU 사용 불균형 문제 발생, Batch 사이즈 감소(한 GPU가 병목), GIL
      • DistributedDataParallel
        • 각 CPU마다 process 생성하여 개별 GPU에 할당
          • 기본적으로 DataParallel로 하나 개별적으로 연산의 평균을 냄

 

 

 

 

 

 

728x90
반응형

관련글 더보기

댓글 영역