ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GPU utilization
    AI/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
Designed by Tistory.