-
GPU utilizationAI/DL 2024. 4. 25. 11:59
GPU utilization을 높게 유지하는 것이 훈련을 효율적으로 하기에 중요하다.
그렇다면 어떻게 Keeping GPU utilization high??
- Training 시 nvidia-smi 명령어로, GPU uilization % 가 constant 하게 유지되는지 확인이 필요
: %는 총 있는 core 중 사용하는 % (개수, 시간)을 의미함
- Mini batch
: size가 클수록 GPU memory를 많이 사용
: training 시에는 activation / mini batch 저장에 memory가 많이 사용됨
: OOM (out of memory) 오류가 나기 직전까지 minibatch size를 최대화시킴
: Rule of Thumb - 미니배치 사이즈 키워~~
*FLOPS (FLoating point Operation Per Second)
딥러닝 모델이 얼마나 빠르게 동작하는지를 확인하기 위한 연산량 계산
단위시간 (1s)에 얼마나 많은 floating point 연산을 하는가
'FLOPs' = Operation 수 를 의미
Input data 의 이미지 크기 : I (KB)
모델의 computational complexity - 해당 모델에 얼마나 많은 연산이 필요한가? : C (FLOPs / img)
activations / weights의 크기 : 이미지당 A (MB)의 activation, 모델당 B (MB)의 weights
*Mini-batch size 계산 : A (이미지 당 activation) * M (mini batch size) + B (모델 당 weigths)
->총 GPU memory 사이즈보다 작아야 함
*GPU가 다룰 수 있는 연산량 FLOPS / 모델이 가진 연산 FLOPs = N (초당 처리할 수 있는 이미지 개수; n/t )
위에서 계산한 mini batch size에 근거하여
*하나의 batch 처리에 걸리는 latency : M (mini batch size) / N (초당 처리할 수 있는 이미지 개수)
*해당 batch size로 처리하기 위해 필요한 이미지 로딩 속도 : N (초당 처리할 수 있는 이미지 개수) * I (input image의 크기)
'AI > DL' 카테고리의 다른 글
Model profiling (1) 2024.04.25 Neural Network의 기본 (0) 2024.03.16