Multi GPU Training Scaling Strategy

James·2021년 9월 8일
0

DL profiling

목록 보기
2/2
post-thumbnail

Introduction

Multi GPU 를 활용하여 딥러닝 모델의 분산 학습을 수행하는 경우, Scaling 과 관련된 용어가 보일 때가 있습니다.
Weak Scaling 과 Strong Scaling 이 그것인데, 두 가지 개념이 헷갈리는 경우가 있어 정리해 둡니다.
두 방법은 Single GPU 에서의 실험과 비교하는 상황에서, batchsize 를 어떻게 조정할 것인가에 대한 방법입니다.

Weak Scaling

1개의 worker 가 가지는 batchsize 를 고정하는 것
worker 의 개수를 증가시켰을 때, 전체 분산 처리 속도를 보게 된다.

1-GPU : 128batch
2-GPU : 128batch x 2 = 256batch
4-GPU : 128batch x 4 = 512batch
8-GPU : 128batch x 8 = 1024batch
...

그러므로 GPU 의 개수가 많아질 수록, 전체 batchsize 가 커지게 되고
이에 따라서 GPU 의 개수가 많아질 수록 1 epoch 을 학습할 때의 num of batches 가 줄어들게 된다

Strong Scaling

모든 worker 가 가지는 batchsize 를 고정하는 것.
worker 의 개수를 증가시켰을 때, 개별 worker 의 속도 향상을 보게 된다.

1-GPU: 128batch
2-GPU: 64batch x 2 = 128batch
4-GPU: 32batch x 4 = 128batch
8-GPU: 16batch x 8 = 128batch
...

그러므로 GPU 의 개수가 많아질 수록, 개별 GPU 가 처리하는 batchsize 가 작아지게 되고
이에 따라서 GPU 의 개수가 많아질 수록, 개별 GPU 의 1 batch 처리 속도는 빨라진다.
weak scaling 과는 반대로 1 epoch 에 대한 num of batches 는 동일하다.

Conclusion

References
PALEO: https://openreview.net/forum?id=SyVVJ85lg
https://en.wikipedia.org/wiki/Scalability

profile
indexing

0개의 댓글