[정보 공유]초보를 위한 개인 딥러닝 Workstation 조립 TIP

장인이 되려면 도구 탓을 해야한다.

Dongwon Lee
KLleon
10 min readMay 2, 2022

--

요약

딥러닝 학습(Training) 또는 추론(Inference)을 하기 위해서는 좋은 하드웨어가 필수적입니다.

클라우드 컴퓨팅의 가격이 상상을 초월하는 만큼 딥러닝 연구원 혹은 개발자라면 본인의 Workstation 정도는 직접 고르고 조립할 줄 아는 것이 좋습니다.

이 글에서는 개인용 Workstation을 구성하는 부품을 추천하고자 하니 참고하시기 바랍니다.

Workstation 구성

CPU

주 연산장치이며, 딥러닝 연산은 무거운 작업에 속하므로 8코어 이상의 CPU를 추천합니다.

CPU는 제조사에 따라 Intel, AMD로 나뉩니다.

코어 개수 대비 가성비가 좋은 쪽이 AMD, 좋은 성능을 내는 쪽은 Intel이라고 흔히 알려져 있습니다.

AMD

  • 코어 단위 전력 효율 및 가격이 좋다.(Intel 대비 25% 전력 절감)
  • 메인보드 값이 Intel보다 비교적 저렴하다.
  • 업그레이드 호환성이 좋다. (모든 세대의 CPU와 메인보드 호환이 가능)

Intel

  • 같은 급의 AMD보다 딥러닝 성능이 38% 좋다.(Inference 기준)
  • AMD 보다 비교적 높은 메모리 클럭을 지원한다.
  • AMD 보다 비교적 높은 CPU 클럭을 지원한다.

따라서 다중 코어로 Training이 주 목적이신 분, 비교적 싼 가격으로 구성하고 싶으신 분은 AMD 제품을, 실시간으로 Inference를 해야 하시는 분이면 Intel 제품을 이용하시는 것을 추천합니다.

다만 이는 추천일 뿐, 두 CPU 중 어떤 것을 선택하는지는 취향 차이이며 서버용이 아닌 개인용으로는 둘 다 손색없습니다. 서버용의 경우 다음에 다뤄보도록 하겠습니다.

RAM

CPU 연산에 필요한 내용이 저장되는 휘발성 기억장치이며, 비교적 메모리를 많이 할당하는 딥러닝 연산을 위해서는 용량이 많으면 많을수록 좋습니다. 높은 클럭(오버클럭)을 쓰는 경우가 아니라면 방열판 부착 또는 튜닝램까지는 요구되지 않습니다. 안정화를 하지 않고 오버클럭을 하면 OS에도 치명적이므로, XMP를 지원하는 메모리를 구입하더라도 TM5, memtest 등의 소프트웨어를 통해 따로 안정화 작업을 해야 합니다.

따라서 시중에서 쉽게 구할 수 있는 삼성 램을 사용하는 것을 추천합니다. RAM 용량은 개인용으로 쓸 경우 32~64GB(16GB * 2~4)를 추천합니다.

MainBoard

컴퓨터의 중요한 구성품으로서 생명체로 따지면 몸통, 혈관, 신경계를 담당하는 부품입니다. 메인보드는 CPU에 따라 결정되고, 메인보드의 폼팩터에 따라 케이스도 결정됩니다.

딥러닝 특성상 주로 오랜 시간 작업을 해야 하므로 발열 및 전원부가 중요한 결정 요소입니다.

폼팩터(Form factor)

폼팩터는 메인보드의 크기를 일컫는 것으로 이해하면 쉽습니다. 그 크기에 따라 케이스가 결정되고, 케이스의 크기가 클수록 장착할 수 있는 시스템 쿨러의 개수도 늘어나므로 발열이 잘 잡힙니다. 또한 폼팩터에 따라 PCie 슬롯의 개수도 결정되기 때문에 GPU를 여러 대 운용하기 위해서는 PCIe 3.0 이상을 지원하는 크기가 큰 ATX 이상의 폼팩터를 추천합니다.
단, 개인용으로는 CPU의 PCIe lane의 개수를 고려 해야되기 때문에 단일 GPU를 사용하시는 게 좋습니다. 따라서 폼펙터를 크게 고려 안 하셔도 됩니다.

EATX 부터 크기 순서대로

전원부

파워로부터 전달받은 전력을 얼마나 효율적으로 분배하는지에 따라 전원부가 높고 낮음을 판단합니다. 예를 들어, 전원부가 10페이즈라면 파워로부터 10개의 페이즈가 전력을 분산하는 것입니다. 딥러닝 Workstation 같은 경우 높은 출력을 유지해야 할 때가 있으므로 전원부가 높은 메인보드를 선택하는 것이 좋습니다. 12페이즈 이상의 제품을 추천합니다.

GPU

딥러닝 Workstation의 꽃이라고도 불리는 GPU는 GPGPU 프로그램 연산에 있어서 필수적입니다. GPU의 CUDA 코어 갯수에 따라 성능이 결정 됩니다. 용도에 따라 Multi-GPU를 사용할 수도 있습니다. 반면에 Nvidia 그래픽 드라이버에 따라 Pytorch 등 딥러닝 프레임워크 버전호환이 안되는 경우가 있어 신중한 선택이 요구 됩니다.

Multi-GPU

GPU를 여러 개 꽂아서 사용한다고 해서 성능이 배가 되는 것은 아닙니다. 또한 고려해야할 점이 몇 가지 있습니다.

  1. Nvlink, SLI
Nvlink (사진 출처: msi)

Multi-GPU를 사용하려면 Nvlink나 SLI 같은 브릿지를 연결해야 합니다. 그래야 VRAM 공유가 가능하고(12GB+12GB, 24GB 할당 가능) GPU 여러 대를 독립적으로도 사용 가능합니다. 하지만 게이밍 등의 퍼포먼스에서는 개수 대비 기대 이하의 성능을 보입니다.

2. 발열

여러 대를 붙여 사용하기 때문에 협소한 공간에서는 발열이 생길 수밖에 없습니다. 발열을 줄이기 위해서는 워터블럭 등을 커스텀 해야 하고, 그에 따른 비용, 시간적 부담이 적지 않습니다. 따라서 비전문가가 사용하려면 2way인 경우 3Slot(공간을 띄움)을 쓰는 방법이 있고, blower 타입(위에서 아래로 공기흐름이 생김) 제품을 이용하는 방법이 있습니다.

2way 3Slot Nvlink 이용한 방법 (사진 출처: 영재컴퓨터)
4way를 blower type GPU로 연결한 방법 (사진 출처: 퀘이사존)

3. PCIe lane

일반 CPU에는 PCIe lane이 20개를 가지고 있습니다. GPU 하나당 PCIe lane을 보통 16개(x16)를 할당하게 됩니다. 만약 최대 PCIe lane의 개수를 넘어서게 되면 자체적으로 배속을 낮춰 효율이 낮아지게 됩니다.

따라서 Multi GPU를 사용하기 위해서는 일반CPU가 아닌 PCIe lane의 개수가 많은 서버용 CPU를 사용하여야 됩니다.

Intel 서버용 CPU의 경우 최대 48개의 PCIe lane이 있고, AMD의 스레드리퍼 제품의 경우 최대 128개가 있습니다.

따라서 GPU를 3개이상 사용 하려면 Intel의 경우 단일 CPU로는 효율적인 사용이 힘들기 때문에 Multi CPU를 사용해야하는 불편함이 있습니다. 따라서 AMD의 스레드리퍼을 추천합니다.

단일GPU

단일 GPU 구성은 고려해야 할 것이 비교적 적습니다.

본인이 작업할 코드에 따라 VRAM 사용량의 정도, CUDA 버전에 따른 Pytorch 등 딥러닝 프레임워크의 버전 등에 따라 결정하면 됩니다.

RTX 30번대 GPU의 경우 Cuda 11부터 이용이 가능하며 10 이하의 코드는 호환이 되지 않습니다. 또한 모델에 따라 VRAM 할당량이 다르다는 점도 유의해야 합니다. (참고: https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/)

따라서 VRAM 8GB 이상의 RTX 20번대 이상의 GPU를 추천합니다.

STORAGE

비휘발성 저장 장치로 OS 등의 데이터를 저장합니다. 모델 학습 또는 추론 동안의 IO가 많지 않기 때문에 cost가 적습니다.

단순히 모델과 결과 저장용으로 Hot storage 용 500GB 정도의 M.2 NVMe, Cold storage 용 1TB 이상의 HDD를 각각 사용하는 것을 추천드립니다.

POWER

220v 또는 110v의 교류(AC) 전원을 컴퓨터 부품에 맞는 전압과 전류로 바꿔주는 변압 장치입니다.

파워에는 등급이 있고, 등급별로 전력효율의 차이가 있습니다. 로드율에 따라 등급이 높을수록 전력 효율이 높습니다. Workstation의 경우 로드를 많이 하는 편이기 때문에 골드 등급 이상의 제품을 추천합니다.

등급별 로드율에 대한 전력 효율 (사진 출처: 나무위키)

가장 많은 전력을 차지 하는 게 GPU인데요. GPU의 갯수, 종류에 따라 용량을 선택하면 됩니다. GPU를 제외한 부품의 전력이 약 350W 정도 됩니다.

아래의 표에 따라 본인의 GPU 소비전력 값에 350~400을 더한 용량의 제품을 사용하시는 것을 추천합니다.

stress 기준 GPU별 소모 전력 (사진 출처 : tom’s HARDWARE)

CASE

부품들을 견착하고 보호하는 역할을 합니다. 요즘은 튜닝용으로 디자인이 되어 나오는 추세입니다.

앞서 말씀드린 대로 메인보드의 폼팩터에 따라 크기가 결정됩니다.

또한 파워 호환 규격도 있는데요. 웬만한 미들타워 이상의 제품은 거의 모든 파워 규격에 호환됩니다.

ATX 이상의 메인보드를 수용하려면 미들타워 이상의 규격이면 되는데, 쿨링을 위한 시스템 팬을 장착, 부품 간의 간섭을 최소화 및 수냉쿨러 장착을 위해 빅타워 제품을 추천합니다. 배치 공간이 협소한 경우 ATX를 호환하는 미들타워도 충분합니다.

빅타워 케이스 Core P8(사진 출처: 다나와)

COOLER

부품들의 열을 식히는 역할을 합니다. 쿨러에는 크게 두 가지가 있습니다.

CPU COOLER

CPU 쿨러를 안 꽂으면 바이오스 단에서 OS 진입 전에 경고를 줍니다. 그만큼 CPU 온도를 잡아주는 것이 중요합니다. 바이오스에서 설정한 온도를 넘어가면 스로틀링(Throttling)이 걸립니다. 온도를 낮추고자 전압을 강제적으로 낮추는 것이고, 그런 경우 성능이 저하되어 우리가 원하는 퍼포먼스를 얻을 수 없기 때문에 번들 쿨러 등의 성능이 낮은 쿨러를 사용하면 안 됩니다.

여유가 될 경우 GPU까지 물려 커스텀 수냉 시스템을 꾸린다면 쿨링 면에서는 완벽하다고 볼 수 있습니다. 공랭급 대장이라고 불리는 녹투아 NH 시리즈, 2열 이상의 수냉쿨러를 추천합니다.

녹투아 NH-U12A 쿨러 (사진 출처: 다나와)
3열 수냉쿨러 (사진 출처: 커세어)

SYSTEM COOLER

말 그대로 시스템을 쿨링 하기 위해 케이스 전면부, 후면부, 상단부에 장착할 수 있는 쿨러입니다. 케이스 구조에 따른 흡기, 배기 구조를 알아야 합니다.

일반적으로 케이스를 사면 기본적으로 장착되어 있으므로 구매할 필요 없으나, 추가적인 장착이나 조금 더 성능 좋은 쿨러를 이용하실 때 추가 구매하시면 됩니다. 저렴하면서 조용하고 성능 좋은 걸로 인기 있는 제품인 Arctic P12 추천합니다.

전면 흡기, 상단과 후면 배기 모습

후기

앞서 딥러닝 연구원 및 개발자를 위한 포스팅이라고 이야기했지만, 비개발자 분들도 충분히 관심 가질 수 있는 분야라고 생각합니다. 우리 모두가 컴덕후가 되는 그날이 오길 바라며 마치도록 하겠습니다.

잘못된 내용 정정, 더 나은 제품 추천은 언제든지 환영입니다.

기타 피드백도 댓글로 달아주시면 감사하겠습니다.

긴 글 읽어주셔서 감사합니다!

--

--