DIY GPU 서버 : 딥 러닝용 PC 직접 만들기 - ITWorld Korea
디지털 디바이스 /	머신러닝 /	퍼스널 컴퓨팅
딥 러닝을 하다 보면 딥 러닝용 컴퓨터를 직접 만들어 클라우드를 벗어나고 싶다는 생각이 들 때가 있다. 클라우드는 딥 러닝을 시작하기에 이상적이며 대규모 딥 러닝 모델을 학습하기 위한 최선의 방법인 경우가 많다. 그러나 자기만의 딥 러닝 시스템을 만들면 비용 효율성을 훨씬 더 높일 수 있다.
비용 효율적이라는 말은 값이 싸다는 말은 아니다. 딥 러닝 모델을 처리할 정도의 컴퓨터와 고급 GPU를 갖추기 위해서는 1,500~2,000달러 정도가 든다. 그러나 매번 며칠에 걸쳐 광범위한 모델 학습을 실행하는 경우라면 자체 전용 컴퓨터를 제작하면 3~4개월 내에 비용을 회수할 수 있다. 특히 연산 시간과 클라우드 스토리지 및 진입 비용을 감안하면 더욱 매력적이다.
여기서는 필자가 올해 초 제작한 딥 러닝 컴퓨터에 대해 알아보면서 이 과정에서 직면하게 되는 여러 가지 선택과 비용에 대해 설명할 것이다. 가격은 2017년 12월 기준 아마존 가격이다.
딥 러닝에 더 깊게 들어가고자 한다면(더 큰 데이터 집합을 대상으로 연구하거나 캐글(Kaggle) 대회에 참여할 예정이거나 둘 다인 경우 등) 자체 딥 러닝 시스템을 만드는 편이 유리하다. 엄청나게 큰 데이터 집합을 다루면서 학습을 위해 수십 개의 GPU가 필요해지는 상황이 될 때가지는 자체 컴퓨터에서 모델을 실행하는 것이 최선일 가능성이 높다. 그런 상황이 되면 다시 클라우드를 찾으면 된다. 단, 그 연산 시간에 대한 비용을 지불할 수 있을 만큼 자금 사정이 넉넉한 친구도 함께 필요할 것이다.
딥 러닝 PC 만들기 : GPU와 CPU
딥 러닝 PC를 직접 만들 때 가장 중요하고 많은 비용을 좌우하는 의사 결정은 그래픽 카드, 즉 GPU 선택이다. 그러나 선택의 여지 자체는 별로 없다. 700~900달러의 가격대를 감당할 수만 있다면 엔비디아 지포스 GTX 1080 Ti를 사야 한다. 1080 Ti는 이제 주요 클라우드 업체에서 채택하기 시작한 신형 엔비디아 볼타 GPU보다는 성능이 떨어지지만 캐글 용도로는 충분하다.
1080 Ti는 엔비디아의 최신 타이탄 X 카드와 동일한 파스칼 아키텍처를 기반으로 하지만 더 빠르면서 가격은 낮다. 많은 수의 코어(3584개)와 풍부한 메모리(11GB) 덕분에 현재 시중의 모든 일반 소비자용 그래픽 카드를 통틀어 가장 빠르게 대규모 신경망을 실행하고 학습할 수 있다. 딥 러닝 시스템의 성능을 더 높이고 싶다면 1000달러 미만 제품 중 최선의 CPU를 선택해야 한다.
1080 Ti는 파운더스 에디션(엔비디아 레퍼런스 설계로 만들어진 카드) 또는 그래픽 카드 제조업체 자체 설계 제품 중 선택할 수 있다. 후자는 원래 게임용 카드답게 일반적으로 여러 개의 팬과 GPU 오버클럭 기능이 있다. 필자는 과열에 매우 민감해서 3개의 팬이 달린 895달러짜리 카드를 선택했지만 파운더스 에디션 카드를 선택하면 100달러 정도를 절약할 수 있다.
1080 Ti의 높은 가격을 감당하기 어렵다면 엔비디아 지포스 GTX 1080도 괜찮은 차선책이다. 1080 Ti보다 느리고 메모리 용량도 8GB로 1080 Ti의 11GB에 비해 작지만 대신 200달러 가량 저렴하다. AMD의 새로운 GPU 제품군도 추천하고 싶지만 파이토치(PyTorch), 텐서플로우(Tensorflow)와 같은 주요 라이브러리의 지원이 아직 부족하다. 지원 문제는 2018년 중에 해결될 가능성이 높고 AMD의 ROCm 개발도 계속 진행되고 있으니 어느 시점이 되면 라데온 RX 베가 인스팅트(Instinct)와 프론티어(Frontier) 역시 상당히 매력적인 선택안이 될 것이다. 특히 엔비디아가 볼타 플랫폼의 텐서 코어를 소비자 제품군으로 가져오지 않는다면 AMD 카드의 매력은 더 커질 것이다.
시스템의 성능을 가장 크게 좌우하는 요소는 GPU지만 애플리케이션을 실행하고 데이터 엔지니어링 작업(예: 증강)을 처리할 좋은 CPU도 필요하다. 앞으로 여러 개의 GPU를 넣어 컴퓨터를 확장할 생각이라면 최대 40개의 PCIe 익스프레스 레인을 처리할 수 있는 CPU를 골라야 한다. 최신 제품일 필요는 없다. 7세대 인텔 코어 i7-7700K도 좋다. 쿨러도 필요하지만 복잡한 수랭식 쿨러까지는 필요 없고, 쿨러 마스터의 30달러짜리 하이퍼 212 EVO 정도면 충분하다.
딥 러닝 PC 만들기 : 스토리지와 메모리
고민하지 않고 500달러짜리 1TB SSD M.2 카드를 살 수도 있다. 그만큼 SSD는 좋다. 하지만 생각해 보자. 데이터로 모델을 학습시키는 동안에는 그 빠른 SSD 스토리지를 사용할 일이 별로 없다. 차라리 현재 진행 중인 학습을 위한 “핫” 스토리지와 비활성 프로젝트를 위한 “콜드” 스토리지로 구분해서 투자하는 편이 더 효과적이다. 2TB HDD 비용은 약70달러이며 250GB SSD는 130달러다. 절반이 채 안 되는 금액으로 두 배 이상의 스토리지 용량을 확보할 수 있다.
메모리는 32GB를 추천한다. 앞으로 64GB까지 확장할 가능성도 감안해야 하므로 16GB 스틱으로 구입해야 한다. 대부분의 메인보드에는 DDR4 메모리가 필요하다. 16GB DIMM 두 개를 구입하는 데는 300 ~ 400달러 정도가 든다.
딥 러닝 PC 만들기 : 메인보드, 파워 서플라이, 케이스
이렇게 해서 핵심 부품을 모두 갖추었으니 이제 별로 재미는 없지만 시스템을 완성하기 위해 필요한 부품을 고를 차례다. 필자의 조언대로 7세대 인텔 CPU를 구입했다면 Z270 기반 메인보드를 선택해야 한다. 최신 상품이 좋아 8세대 CPU를 구입했다면 Z370 기반 메인보드를 구입해야 한다.
짝을 맞추지 않으면 곤란하다. 7세대 CPU는 Z370 보드에서 작동하지 않는다(메인보드와 CPU의 호환성을 거듭 확인해야 함). 앞으로 GPU를 더 추가할 가능성이 있다면 선택한 메인보드가 이를 지원하는지 여부도 확인해야 한다. 이렇게 말하는 필자도 그 부분을 간과한 탓에 앞으로 지포스 GTX 1080 Ti를 하나 더 추가하려면 메인보드를 업그레이드해야 한다.
파워 서플라이는 컴퓨터를 조립하는 과정에서 가장 재미없는 부품이다. 한 가지, 상당한 전력이 필요하다는 점만 유의해서 선택하면 된다. 85달러 정도의 가격에 850W 파워 서플라이를 구입하면 충분하고 앞으로 어느 정도의 확장도 가능하다.
필자가 마지막으로 데스크톱 PC를 조립한 때는 10년 전이므로 완전히 새로운 케이스 세계에 적응하기가 어려웠다. 눈부신 LED나 화려한 곡선 무늬나 번쩍이는 팬도 필요 없었다. 필자는 지루한 흰색 타워 디자인을 선택했다. 이 제품도 측면에는 유리 창이 달렸다. 모든 부품이 케이스 안에 들어가는지 확인해야 한다. 쿨러와 그래픽 카드 모두 생각보다 많이 튀어나오기 때문이다. 표준 ATX 타워 또는 미드타워 케이스라면 충분하다.
딥 러닝 PC 만들기 : 조립과 소프트웨어 설치
몇 년 동안 PC 조립을 하지 않았기 때문에 조립할 때 막히지 않을까 약간 걱정이 됐다. 아무튼 준비물은 드라이버, 정전기 방지 스트랩, 유튜브가 전부다. 어느 부품이든 유튜브에서 자세한 설치 동영상을 찾아볼 수 있다. 특히 파손되지 않도록 조심스럽게 다뤄야 하는 SSD 카드와 메모리 설치에 유튜브 비디오가 많은 도움이 됐다.
케이스 안에 모든 부품을 집어넣고 모든 표시등이 정상적으로 들어온다면 이제 OS를 설치할 차례다. 딥 러닝 작업을 위해서는 리눅스로 가는 것이 좋지만, 게임용으로 윈도우를 사용하려면 듀얼 부팅을 구성하는 방법도 있다. 현재 시점을 기준으로 추천하는 버전은 우분투 17.04다. 엔비디아 드라이버를 설치하기가 쉽기 때문이다(또한 엔비디아 다운로드 페이지에는 아직 우분투 17.10용 드라이버가 올라오지 않음). 리눅스를 설치하기 전에 한 가지 알아야 할 점은 컴퓨터의 BIOS로 들어가서 1080 Ti가 아니라 통합 그래픽을 사용하도록 설정하는 것이다. 그렇지 않으면 설치 중 문제가 발생한다.
우분투에서 엔비디아 드라이브 설치하기 가이드에 따라 설치한다. 또한 텐서플로우는 버전 1.5가 될 때까지 CUDA 9를 지원하지 않으므로 CUDA 웹사이트에서 CUDA 8 라이브러리를 받아 둔다.
파이썬의 경우 아나콘다(Anaconda)를 추천한다. 텐서플로우와 케라스(Keras)를 아나콘다와 함께 설치하는 명령은 다음과 같이 간단하다.
And PyTorch is almost as simple:
파이토치도 마찬가지로 간단하다.
아나콘다에는 주피터(Jupyter)가 기본적으로 함께 설치되므로 이제 맞춤형 딥 러닝 시스템을 사용하기 위해 필요한 모든 요소를 갖춘 상태가 된다.
딥 러닝 PC 만들기 : 총비용
마지막으로, 이 컴퓨터에 들어간 총 비용을 계산해 보자. 필자는 모든 장비를 아마존에서 구입했다. 뉴에그(Newegg)나 타이거다이렉트(TigerDirect) 등의 사이트를 통해 더 저렴한 가격을 찾거나 이베이에서 중고 부품을 검색해 비용을 줄일 수 있다. 또한 앞서도 언급했듯이 엔비디아 파운더스 에디션 또는 GTX 1080 카드를 선택하면 GPU 비용을 100~200달러 절약할 수 있다.
GPU : EVGA 지포스 GTX 1080 Ti, 11GB, 880달러
CPU : 인텔 7세대 코어 i7-7700K, 290달러
CPU 쿨러 : 쿨러 마스터 하이퍼 212 EVO, 30달러
SSD : 삼성 960 EVO 시리즈 500GB NVMe M.2 SSD, 245달러
HDD : 웨스턴 디지털 블루 1TB SATA 6Gb/s 7200RPM 3.5인치 HDD, 49달러
메모리: 발리스틱스 스포트 LT 32GB 키트(16GBx2) DDR4 2400MT/s, 330달러
메인보드 : MSI 프로 시리즈 인텔 Z270 크로스파이어 ATX, 115달러
파워 서플라이 : 로즈윌 글래시어 시리즈 컨티뉴어스 80 플러스 850W, 85달러
케이스 : NZXT S340 미드타워, 흰색, 70달러
총 비용 : 2,094달러
2,100달러에 조금 못 미치는 비용이다. 확실히 딥 러닝 PC에는 상당한 비용이 든다. 그러나 클라우드 월 비용 청구서의 점점 커지는 금액에 부담을 느끼기 시작했다면, 시간과 비용 측면에서 AWS, 구글 클라우드 또는 마이크로소프트 애저의 GPU 인스턴스를 늘리는 것보다 직접 컴퓨터를 조립하는 편이 더 나은지 진지하게 따져볼 가치는 있다. 필자의 경우 확실히 효과를 봤다. editor@itworld.co.kr