DL workstation 구축에 대한 고민, 조립 방법

soonhyung·2022년 1월 13일
2

Deeplearning Workstation 을 구축하기 위한 고민과 실제 조립한 흔적을 남긴다.

🏁 구축에 대한 고민, 견적

클라우드 vs Google Colab vs 베어메탈 비교

  • 경제성

    • 클라우드
      onDemand를 활용하여 단기간 사용한다면 경제적. 하지만 장기 사용 및 PaaS, SaaS 사용 비용이 결코 적지 않음.
    • Google Colab
      매우 경제적. 월 $10 또는 월$50 로 고성능의 GPU와 시스템 환경을 제공해줌.
    • 베어메탈(Workstation)
      초기 비용이 매우 많이 들어 갈 수 있음. 초기 비용을 제외하면 운영, 메인터넌스 비용은 매우 경제적.
  • 사용성

    • 클라우드
      확장성, 안정성 등 사용성에서는 압도적.
    • colab
      GPU 제공됨. 24시간 이상 보장 하지 않음. 노트북 환경에 국한.(즉 분석, 모델링 작업에 한정). pro+에서 조차 런타임(실행 환경)을 3개이상 확보해주지 않아 불편함.
    • 베어메탈(Workstation)
      custom에 유리. 직접 인프라에 대한 운영과 메인터넌스를 해야한다는 것은 부담.

적정 부품 후보군 선정

CPU


멀티 유저, 고도화된 멀티 태스킹(Apache Spark, Dask, cpu inference 등)을 고려하면 Core와 Thread 수가 많은 것을 선택해야 하며 멀티 GPU 및 nvme 등 PCIe 버스를 사용할 것을 고려하여 PCIe Lane 을 충분히 확보 가능한 CPU를 선택해야 한다.

AMD Threadripper Pro 3975wx
AMD Ryzen 5950X
Intel i9-10980XE
Intel i9-12900K

GPU (VGA)

DL Workstation을 구축하면서 CPU에 준하는 또는 그 보다 훨씬 비싼 비용을 지불해야 하는 부품중 하나다.

  • GPU 선택기준
    • 기본 고려사항
      • VGA ram 용량
      • TF core 연산, CUDA 연산 능력
      • 비즈 도메인과 주로 사용하게 될 모델
      • TFLOPS 대비 가격
      • 소비전력
    • 멀티 기준 고려사항
      • NVLink
      • P2P Access speed

딥러닝을 위한 고성능 VGA는 A100, V100, RTX A6000, RTX 8000, RTX 3090 등이 있다. 애초에 A100이나 V100과 같은 그래픽카드는 개인이 별도로 구매하기도 어려우며 (가격도 장당 1000~2000만원) MXM 타입으로 병렬 P2P 대역폭이 엄청나다는게 장점으로 내세우고 있다보니 해당 그래픽카드는 최소 4개 이상을 설치해서 사용하지 않으면 가성비가 매우 떨어진다.
GAN,BERT 등과 비교적 큰 규모의 모델을 원할히 사용하기에 VGA Ram 은 최소 16GB이 필요하며 그 이하는 Ram는 공부용으로만 적합하고 전문적인 모델 학습을 하기에는 한계가 있다. 권장은 24~32GB.



https://lambdalabs.com/gpu-benchmarks
이곳에서는 V100 32GB 성능을 1.0으로 기준 다양한 DL에 적합한 고성능 VGA의 성능을 비교가능하다. Metric으로 Throughput, batch size 등을 설정할 수 있고 각 VGA의 성능을 모델 별 성능 분석도 가능하다. 참고로 RTX A6000, A5000, A4000의 경우 기존 쿼드로 라인과 결을 같이 하는 제품으로 엔터프라이즈 및 전문가를 위한 그래픽카드 라인으로 안정적인 전력 사용량(게이밍용에 비해 매우 안정적이고 절제된 전력 사용을 추구함)을 보여주며 ECC를 제공해주며 보다 큰 GPU 메모리를 제공해준다는 특징이 있다.
예산을 기반으로 성능, 램용량, 소비전력, 그리고 멀티 GPU에서의 성능을 충분히 고려해서 VGA를 선택한다.

RTX 3090 (2EA ~ 4EA)
RTX A6000 (2EA)
RTX A5000 (2EA)

선정된 GPU를 기준으로 맞는 NVLink bridge를 고르면 된다.
NVLink는 SLI의 업그레이드 버전이다. NVLink는 다중 GPU 시스템에 사용되는 기존의 PCE-E 기반 솔루션보다 훨씬 빠른 대안을 제공하는 고속 GPU 상호 연결이다. NVLink를 통해 두 개의 NVIDIA 그래픽 카드를 연결하면 메모리와 성능을 확장가능 하다.
특히 Batch / Layer normalization 등과 같이 전체 batch의 정보가 필요한 경우에는 실시간으로 GPU간 데이터 통신을 해야하기 때문에 GPU간 대역폭은 매우 중요한데 PCIe 4.0의 경우 16레인(x16)은 최대 31.5GB/s이며 PCIe lane이 충분하지 않은 시스템의 경우 보통 8레인으로 동작하는데 8레인(x8)은 최대 15.7GB/s 의 대역폭을 가지게 되며 이는 GPU간 데이터를 전속하는데 매우 부족한 대역폭이다. 하지만 NVLink는 3세대기준 최대 112GB/s 의 대역폭을 확보 할 수 있어 GPU간 통신에 매우 유리하기 때문에 딥러닝을 위한 멀티GPU를 고려할때는 NVLink를 절대 빼놓지 않고 고려해야 하는 사항이다.

RAM

큰 데이터를 전처리하는데 있어서 시스템 메모리의 용량은 매우 중요하고 경험상 이미지셋의 대량 처리, NLP 적용을 위한 데이터 셋 처리, 그리고 대규모 센서 데이터를 처리하는데 RAM의 용량은 최소 128GB를 확보해야 한다. 어떤 데이터셋을 주로 다루느냐에 따라 다르지만 256GB 이상 메모리를 확보하는 걸 권장한다. 다만 Server용 또는 Workstation을 위한 CPU와 Mainboard가 아니라면 DDR4 기준 최대 128GB(32GB x 4EA) 까지 지원하는것이 일반적이다.

DDR5 - 수급 문제로 제외
DDR4 3200 (32G 4EA)
고성능 튜닝램 DDR4 3200~3600 (32G
4~8EA)

파워 서플라이

CPU와 GPU 전력량을 고려해야 한다. 2개 이상의 고성능 그래픽카드를 고려하는 경우 1000W 이상을 확보해야 하고 3090 2개를 사용하거나 3개 이상의 그래픽카드를 업그레이드를 할 여지가 있다면 1300W 내지는 1600W 도 검토해야 한다. 또한 소음 문제(종종 고전력 파워에선 저소음 쿨링 기능이 없는 경우도 있음)와 전기세를 고려하여 고효율 파워를 선택해볼만 하다. (80+ 플래티넘 등급 이상)

1000W 80 PLUS 플래티넘 이상
1300W 80 PLUS 플래티넘 이상
1600W 80 PLUS 플래티넘 이상

메인보드

CPU 소켓 선정이 먼저 하고 멀티 GPU 지원 가능 여부를 확인한다. (PCIe 슬롯 수, 멀티GPU 연결시 PCIe동작 속도, NVLink 지원 여부, PCIe 슬롯 견고한지..)
CPU및 GPU가 전력 사용량이 적지 않고 항시 온라인 되어 있는 것을 감안하여 내구성과 안정성이 뛰어난 보드 선정이 필요하다. (안정적인 전원부 구성 확인 등)

sWRX8 - ASUS PRO WS WRX80E-SAGE SE WIFI
x570 - ASUS ROG CROSSHAIR VIII DARK HERO
x570 - ASUS PRIME X570-PRO/CSM
z690 - ASUS ROG MAXIMUS Z690 HERO

Storage

대규모 데이터를 전처리하고 대규모 데이터 배치를 학습을 위해 사용하기 위해 Disk Access 속도를 충분히 고려하는것이 좋다. 이전에는 보통 메인 Access 되는 Storage는 Raid 0 등을 통해 설정되곤 하였지만 현재는 PCIe 4.0 - M.2 NVME 정도면 인터페이스상 충분히 좋은 access speed 를 확보 할 수 있기 때문에 기업이 아니라면 별도로 Raid를 고려할 필요는 없을 것으로 생각된다.

  • SSD를 볼때 무엇을 검토 해야 하는가?
    • 토글 방식(MLC, TLC, QLC...)
    • D램 캐시(유무, 크기 등)
    • SLC 구간, 보증수명(TBW), 가격

D램 캐시는 플래시 메모리와 시스템 메모리 간 병목을 줄여주는 역할로 D램 캐시가 아예 없는 D램 리스 제품은 피하는 걸 추천 하며 토글 방식은 요즘 대부분 TLC로 가는 추세이다. 스토리지에 읽고 쓰는 작업이 많은 경우는 MLC를 선택하여 보증 수명등 성능을 만족시킬 수 있으나 최근 MLC제품이 많이 나오지는 않고 있는 추세다.

삼성전자 980 pro M.2 NVME 1TB x 2EA
SK하이닉스 Gold P31 M.2 NVME 1TB

기타

케이스, CPU쿨러, 시스템 쿨러, LED구성

리안리 케이스
일체형 CPU 쿨러 (NZXT)
리안리 시스템 쿨러
기타 LED 부품 및 컨트롤러

소비전력 및 발열 문제

고성능 GPU 및 CPU 사용 따른 전력량 고민

  • 파워용량
  • 차단기 허용 전압 확인
  • 집안 내 해당 전력을 감당할 수 있는 공간 확보
  • 고용량 멀티탭

냉각 방식 고민

  • CPU 냉각
    후보군에 있는 CPU 모두 고성능라인이고 요즘 고성능 라인의 CPU는 기본쿨러를 제공해주지도 않는다. 구성중인 기기는 서버라인이 아니기에 공랭보다는 소음과 성능을 확실히 잡아줄 수 있는 수냉 방식의 쿨링을 적용하는 것이 적합하다고 판단하였다.

    일체형 CPU 수냉키트 적용

  • GPU의 발열
    보통 일반적으로 사용하는 GPU는 고성능 라인의 경우에도 충분히 발열을 해소 할 수 있는 성능 좋은 방열판과 공랭쿨러의 조합으로 출시한다. 하지만 대부분 멀티 GPU를 고려하기 보다는 하나의 GPU를 사용할때 적합한 방식의 쿨링 방식을 채택하고 나온 것이기 때문에 멀티 GPU를 사용하고자 한다면 쿨링 방식, PCIe의 간격과 그래픽카드의 크기, 시스템 쿨링 모두를 충분히 고려해야 한다.
  • 냉각 방식을 고려한 제품별 특징
    • RTX 3090
      • 대부분의 제품이 PCIe Slot 3개 사용
      • 고전력 사용 (350W 이상) 으로 발열 또한 만만치 않음
      • 현재 Blower 타입의 쿨러를 가진 레퍼런스 제품은 구할 수 없음 (즉 non-blower 타입의 제품만 구매 가능)
    • RTX A6000, A5000
      • 레퍼런스 제품만 판매됨
      • PCIe Slot 2개 사용
      • 고전력 사용 (A6000: 300W, A5000: 230W) 으로 발열 큼
      • 레퍼런스 제품으로 blower 타입 쿨러가 탑제되어 있음

다시 정리 하자면 대부분의 고성능의 GPU는 고전력을 사용하고 GPU 및 GPU Memory의 온도가 매우 높기 때문에 그래픽카드 냉각은 매우 중요한 요소 인데 2개 이상의 멀티 GPU를 사용하려면 non-blower 타입으로는 상단 또는 중간에 있는 GPU가 충분히 냉각되지 않는 문제가 발생할 수 있다. 즉 멀티 GPU를 사용하기 위해서는 blower 타입의 제품을 구매하거나 또는 GPU 냉각을 효과적으로 하기 위해 커스텀 수냉을 구성해야 한다.

기타 체크포인트

  • PCIe 4.0 ( dual 최소x8 * x8 로 동작 필요)
  • PCIe Lane (GPU, NVME M.2 등 모두 정상 작동 가능한지..)
  • 각 부품간 규격 호환 (케이스 크기, 메인보드 크기, 파워 크기, GPU크기)

최종 선정

CPU: AMD Ryzen 5950X (32T)
RAM: 128Gb 고성능램
GPU: NVIDIA RTX A6000 (48GB) x 2EA
NVLink bridge: Ampere generation NVLink Bridge 3-Slot
SSD: 삼성 980 Pro M.2 NVME 1TB x 2EA
Mainboard: ASUS ROG CROSSHAIR Vlll DARK HERO
Power: CORSAIRE AX1600i 80PLUS TITANIUM
Case: 리안리 PC-O11D XL ROG

OS: Ubuntu 20.04LTS + Windows 10 Pro

PCIe Lane수와 RAM 용량을 고려하여 Server 또는 Workstation급 CPU와 Mainboard를 선택하고자 하였으나 부품 구매시점에 판매중인 제품이 대부분 출시가 오래된 구형 아키텍쳐 기반이었고 또한 목표로 한 최신 아키텍쳐의 CPU의 출시가 지연됨에 따라 PC급 중 최고 성능의 CPU와 Mainboard를 선택하게 되었다. RAM의 용량, PCIe slot수, PCIe Lane수를 고려하면 다소 아쉬운 선택이지만 예산대비 경제성 측면에서 구형 아키텍쳐 부품을 구매하는 것보다 더 나은 선택이라 생각되어 5950X를 채택하였다.
GPU의 경우 항상 GPU 메모리 부족의 한계를 느껴왔고 장기간 오랜시간동안 모델 학습을 하는 것을 목표로 하였기 때문에 전력 안정성과 FP32,16 연산 능력, 메모리 확보차원에서 다소 부담스러운 가격이지만 RTX A6000 2개를 선택하였다.
SSD는 PCIe 4.0 M.2 NVME 에서 충분히 좋은 Read/Write speed를 확보 할 수 있어서 이미 위에서 언급한 것 처럼 Raid는 고려하지 않고 단일 disk를 설치하여 사용한다.

🏁 조립을 하다

구매한 제품 정리

조립 과정

설치 완료

1개의 댓글

comment-user-thumbnail
2024년 4월 3일

안녕하세요. 저도 동일한 구성으로 이번에 워크스테이션 세팅을 하려는데 GPU를 연결하면 부팅이 안되는 오류가 있습니다. 혹시 댓글로 도움 요청 드려도 되나요?

답글 달기