다중 GPU 환경의 모델 병렬화
순차적인 모델은 다중 GPU 환경에서도 다음 이미지와 같이 한 프로세스에 하나의 GPU만을 활용하게 되기 때문에 사실상 하나의 GPU를 사용하는 것과 크게 다르지 않다.
하지만 각각의 미니 배치들을 더 잘게 자른 마이크로 배치로 만들어 더 작은 단위로 GPU에 할당하게 되면 다음과 같이 4개의 GPU를 이용해 파이프라이닝을 할 수 있게 된다.
하지만 이 방법에도 bubble이라는 GPU가 온전히 활용되지 못하는 구간이 발생하게 되고 이것을 줄이는 것이 관건이라고 볼 수 있다.
Referenced: https://pytorch.org/docs/stable/pipeline.html