Skip to content

Multi-gpu

  • Published on
    데이터 병렬, 텐서 병렬, 파이프라인 병렬, 컨텍스트 병렬이 각각 무엇을 쪼개고 그 대가로 무엇을 통신하는지를 숫자로 정리했습니다. 먼저 Adam 혼합정밀 학습의 파라미터당 16바이트 장부를 세우고, ZeRO 1~3단계가 그 장부의 어느 항을 GPU 수로 나누는지 계산합니다. 이어서 활성화 메모리 공식으로 체크포인팅이 왜 100GB를 1GB로 만드는지 확인하고, 각 병렬화의 통신량을 스텝당 바이트로 환산해 NVLink 안과 노드 사이의 대역폭 차이가 왜 배치 구성을 결정하는지 보입니다. 마지막에 모델 크기와 GPU 수에 따른 조합 선택표와 흔한 실패 모드를 정리합니다.