ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020년 딥러닝에 가장 좋은 GPU를 골라 봅시다.
    하드웨어/GPU 2020. 3. 11. 18:59

    딥러닝을 본격적으로 하게 되면 GPU 때문에 많은 고민과 고생을 하게 됩니다.

    그 중 가장 먼저 하게 되는 고민이 어떤 GPU를 선택할 것이냐입니다. 어떤 GPU를 선택하는 것이 좋을 지 고민할 때 필요한 좋은 비교 자료가 아래에 있습니다.(2020년 2월 자료를 정리)

    Choosing the Best GPU for Deep Learning in 2020

     

    Choosing the Best GPU for Deep Learning in 2020

    This blog summarizes our GPU benchmark for training State of the Art (SOTA) deep learning models. We measure each GPU's performance by batch capacity as well as...

    lambdalabs.com

    간단하게 요약하여 정리하면 아래와 같습니다.

    가격정보는 제외 : 국내 가격과 약간 차이가 납니다. 비싸다 싸다 정도만 참고.

    비교 대상 GPU : 다음과 같은 GPU들이 현실적으로 사용 가능한 GPU라고 보면 됩니다.

    테슬라는 비교 대상에 없는데, 일단 매우 비쌉니다. 그리고 현재 Turing 아키텍처의 테슬라는 없습니다. (테슬라에 대한 정보는 다음에 별도로 정리할 계획입니다.)

    가격은 위에서 아래로 갈수록 저렴해 진다라고 보면 될 것 같습니다. (가격 범위 : 대략 천만원에서 삼십만원 정도)

    • RTX 8000: 48 GB VRAM

    • RTX 6000: 24 GB VRAM

    • Titan RTX: 24 GB VRAM

    The following GPUs can train most (but not all) SOTA models:

    • RTX 2080 Ti: 11 GB VRAM

    • RTX 2080: 8 GB VRAM

    • RTX 2070: 8 GB VRAM

    The following GPU is not a good fit for training SOTA models:

    • RTX 2060: 6 GB VRAM

    위 리스트에서 중요하게 다루는 것은 메모리 크기입니다. 메모리 크기에 따라 한 번에 딥러닝 트레이닝을 할 수 있는 데이터의 크기가 결정됩니다.

    메모리가 크면 한 번에 처리하는 배치 사이즈를 크게 할 수 있고 메모리가 작으면 배치 사이즈의 크기를 작게 해야 합니다. 데이터 하나의 크기가 큰 경우 배치 사이즈를 1로 해도 메모리가 부족하여 트레이닝을 못하는 경우도 있습니다. 이러한 경우 메모리가 큰 GPU를 사용하거나 데이터를 작게 쪼개서 트레이닝을 해야 합니다.

    Image models : 이미지 모델에 대한 비교

    Maximum batch size before running out of memory

    딥러닝에서 모델 별 한 번에 GPU에서 처리할 수 있는 배치 사이즈입니다. 메모리 크기에 비례합니다.

    Model  2060 2070 2080 1080 Ti 2080 Ti Titan RTX RTX 6000 RTX 8000
    NasNet Large 4 8 8 8 8 32 32 64
    DeepLabv3 2 2 2 4 4 8 8 16
    Yolo v3 2 4 4 4 4 8 8 16
    Pix2Pix HD 0* 0* 0* 0* 0* 1 1 2
    StyleGAN 1 1 1 4 4 8 8 16
    MaskRCNN 1 2 2 2 2 8 8 16

    *The GPU does not have enough memory to run the model.

    Pix2Pix HD는 이미지 하나의 크기가 커서 메모리라 24GB보다 적은 GPU에서는 트레이닝 자체가 불가능합니다.

    Performance, measured in images processed per second

    성능 : 1초에 처리하는 이미지 수

    Model  2060 2070 2080 1080 Ti 2080 Ti Titan RTX RTX 6000 RTX 8000
    NasNet Large 7.3 9.2 10.9 10.1 12.9 16.3 13.9 15.6
    DeepLabv3 4.4 4.82 5.8 5.43 7.6 9.01 8.02 9.12
    Yolo v3 7.8 9.15 11.08 11.03 14.12 14.22 12.8 14.22
    Pix2Pix HD 0.0* 0.0* 0.0* 0.0* 0.0* 0.73 0.71 0.71
    StyleGAN 1.92 2.25 2.6 2.97 4.22 4.94 4.25 4.96
    MaskRCNN 2.85 3.33 4.36 4.42 5.22 6.3 5.54 5.84

    *The GPU does not have enough memory to run the model.

    성능 면에서 Titan RTX와 RTX 8000이 가장 뛰어납니다. 재미있는 점은 Pix2Pix HD 모델의 경우 RTX 8000의 배치 사이즈가 2이므로 Titan RTX보다 2배 크게 배치 처리를 하는 것인데도 트레이닝 성능은 오히려 Titan이 더 좋습니다.

    Language models : 언어 모델에 대한 비교

    Maximum batch size before running out of memory

    딥러닝에서 모델 별 한 번에 GPU에서 처리할 수 있는 배치 사이즈입니다. 메모리 크기에 비례합니다.

    Model  Units 2060 2070 2080 1080 Ti 2080 Ti Titan RTX RTX 6000 RTX 8000
    Transformer Big Tokens 0* 2000 2000 4000 4000 8000 8000 16000
    Conv. Seq2Seq Tokens 0* 2000 2000 3584 3584 8000 8000 16000
    unsupMT Tokens 0* 500 500 1000 1000 4000 4000 8000
    BERT Base Sequences 8 16 16 32 32 64 64 128
    BERT Finetune Sequences 1 6 6 6 6 24 24 48
    MT-DNN Sequences 0* 1 1 2 2 4 4 8

    *The GPU does not have enough memory to run the model.

    Performance

    Model  Units 2060 2070 2080 1080 Ti 2080 Ti Titan RTX RTX 6000 RTX 8000
    Transformer Big Words/sec 0* 4597 6317 6207 7780 8498 7407 7507
    Conv. Seq2Seq Words/sec 0* 7721 9950 5870 15671 21180 20500 22450
    unsupMT Words/sec 0* 1010 1212 1824 2025 3850 3725 3735
    BERT Base Ex./sec 34 47 58 60 83 102 98 94
    BERT Finetue Ex./sec 7 15 18 17 22 30 29 27
    MT-DNN Ex./sec 0* 3 4 8 9 18 18 28

    *The GPU does not have enough memory to run the model.

    Results normalized by Quadro RTX 8000

    RTX 8000을 1로 했을 때의 성능 비교 그래프

    Figure 2. Training throughput normalized against Quadro RTX 8000. Left: image models. Right: Language models.

    결론

    • 메모리의 크기각 커지면 처리 성능이 향상된다.
    • 이미지 모델 보다 언어 모델이 메모리에 따른 성능 차이가 더 많이 난다.
    • 한 번에 더 많은 크기의 배치를 처리할 수 있어서 그런 것이다.

    추가(원문에는 없음) : 메모리가 24GB를 넘어 가면 추가적인 성능 향상을 기대하기 어려운 것 같습니다. 이 것은 cuda core가 이미 포화 되어서 더 많은 데이터가 들어와도 처리할 수 있는 여유가 없기 때문인 것으로 추측되며 현재 튜링 아키텍처의 cuda core의 수에서는 이 것을 한계로 보고 판단하는 것도 좋을 것 같습니다. 물론 프로그램과 데이터에 따라 차이는 날 것입니다. 

    **** 위의 결과를 참고하여 자신의 예산과 필요성에 따라 선택을 하면 될 것 같습니다.  (주)스타셀은 위에 나열된 GPU 카드들 그리고 이들을 사용할 수 있는 PC, 워크스테이션과 GPU서버를 공급하면 딥러닝에 필요한 서비스와 교육을 제공합니다. 스타셀의 딥러닝 전문가와 상담이 필요하면 전화나 이메일로 연락 주시면 됩니다.

    tel) 02-540-0880, email) sales@starcell.co.kr

     

    댓글 0

Starcell Inc. all right reserved