본문 바로가기

distributed

Horovod 모듈 사용하여 Pytorch Multi GPU 학습 효율적으로 하기 1. Introduction 기본적으로 Pytorch를 이용하여 학습을 가속하기 위해서는 다수의 GPU를 활용해야 합니다. 이전 글에서 기술한 것처럼 다수의 GPU를 사용할 수 있는 방법을 Pytorch 자체에서 DistributedDataParallel이라는 모듈로 제공하고 있습니다. 하지만 해당 글에서 볼 수 있듯이 고려해야 할 사항들이 많습니다. 예를 들어 multiprocessing의 프로세스를 관리하는 것과 DataLoader에서 pin memory, shuffle 등을 고려해야 합니다. 하지만 Horovod라는 모듈을 이용하면 굉장히 간단한 코드 추가로 Multi GPU 학습이 가능합니다. 이 글에서는 Pytorch와 Horovod를 이용하여 다수의 GPU를 이용한 학습 방법을 소개합니다. 2.. 더보기
Multi GPU with Pytorch (DistributedDataParallel) 1. Introduction 많은 연구자 및 개발자들이 관심을 갖는 주제 중 하나는 Deep Learning 모델을 빠르게 학습시키는 방법입니다. 일반적으로 Deep Learning 모델을 빠르게 학습시키는 방법에는 여러가지가 있습니다. 당연히 CPU가 아닌 GPU를, GPU가 아닌 TPU를 사용함으로써 학습 속도를 향상시킬 수 있습니다. 성능이 더 좋은 장비를 사용하는 것 또한 한 가지 방법이 될 수 있습니다. 당연히 GTX1050보다 GTX1080ti를 사용하는 것이 빠를 것입니다. 하지만 비용을 들여 더 좋은 장비를 구매하는 것에는 한계가 있습니다. 그래서 많은 Machine Learning Framework에서는 여러 대의 GPU를 이용하여 학습을 가속화하는 방법을 제공하고 있습니다. 이 글에서는.. 더보기