딥러닝 전문가들이라면 누구나 한번쯤 클라우드에서 벗어나 자체적인 딥러닝 머신을 제작하고 싶다는 생각을 해본 적 있을 것이다. 클라우드는 딥러닝에 입문하기에는 이상적인 공간이다. 또 대규모 딥러닝 모형을 교육하는 데에도 적합하다. 그러나 경우에 따라서는 자체적인 딥러닝 머신이 있는 쪽이 훨씬 더 많은 비용을 절감할 수 있기도 하다.
비용이 늘 저렴하다는 것은 아니다. 딥러닝 모델에 필요한 컴퓨터 및 고사양 GPU의 가격은 적게는 1,500 달러에서부터 2,000달러 이상에 이른다. 그렇다고 해도, 한 번에 며칠씩 딥러닝 모형 교육에 쏟는 사람이라면, 3~4달이면 본전을 되찾고도 남을 것이다. 특히 클라우드 스토리지 비용이나 진입 비용, 컴퓨트 시간 등을 고려한다면 더욱 그렇다.
이 글에서는 올해 초 직접 딥러닝 머신을 제작했던 경험을 소개하고, 그 과정에서 내려야 할 선택들, 그리고 비용 등에 대해 이야기해 보고자 한다. 가격은 2017년 12월 기준 아마존 가격으로 산정했다.
특히 딥러닝에 ‘본격적으로’ 접근하고자 하는 이라면(‘본격적으로’ 라는 단어가 더 큰 데이터 세트를 대상으로 리서치를 진행하는 것이든, 캐글(Kaggle) 대회에 참가하는 것을 의미하던 말이다), 자체적인 딥러닝 머신을 제작하는 결정을 더욱 장려할 만 하다. 데이터 세트의 분량이 거대해지고, 수많은 GPU가 필요로 해 질 때까지는 자체적인 딥러닝 머신을 이용하는 것이 최선일 수 있다.
그러나 어느 정도 규모가 커지고 나면, 그 때부터는 다시금 클라우드로 돌아가야 한다. 그 때는 컴퓨트 타임 비용을 지불할 수 있도록 지갑도 두둑하게 준비해 놓는 것이 좋을 것이다.
딥러닝 PC 제작: GPU 와 CPU
딥러닝 머신 제작 과정에서 가장 중요한, 그리고 아마 가장 큰 비용이 걸리는 결정은 어떤 그래픽 카드를, 즉 어떤 GPU를 구매할 것이냐이다. 하지만 적어도 현재로써는 이 선택은 그다지 어렵지 않다. 700~900달러 정도의 비용을 지출할 수만 있다면, 정답은 엔비디아 지포스 GTX 1080 Ti로 정해져 있다. 엔비디아 1080 Ti는 이제 막 메이저 클라우드들에 등장하고 있는 신형 엔비디아 볼타(Volta) GPU 만큼 강력하지는 않을지 몰라도 딥러닝 머신 제작에는 충분한 성능을 지녔다.
1080 TI는 엔비디아의 최첨단 타이탄 X 카드와 동일한 파스칼(Pascal) 아키텍쳐에 기반하고 있으면서도 더 빠르고 더 싸다. 3,584 코어와 11GB 메모리는 그 어느 소비자 등급 카드들보다 더 빠르게 뉴럴 네트워크(neural network)를 구동 및 교육할 수 있게 해 줄 것이다.
1080 Ti는 파운더스 에디션(Founder’s Edition, 엔비디아의 레퍼런스 디자인이다)과 그래픽 카드 제조사들의 커스텀 디자인 중 선택할 수 있다. 둘 다 다수의 팬과 GPU 오버클러킹 기능을 갖추고 있다. 필자의 경우 발열이라면 질색이었기에 팬이 3개 달린 895달러짜리 제품을 택했다. 그러나 파운더스 에디션 카드를 선택하면 100달러 가량 저렴하게 카드를 구입할 수 있을 것이다.
1080 Ti가 너무 비싸다고 느껴진다면, 엔비디아 지포스 GTX 1080을 고려해 보자. 1080 Ti보다 속도도 느리고 메모리도 8GB로 더 작지만(1080 Ti는 11GB), 200달러나 더 저렴하다.
마음 같아서는 AMD의 GPU 신제품 라인도 추천하고 싶지만, 이 제품은 파이토치(PyTorch)나 텐서플로우(Tensorflow)같은 메이저 라이브러리 지원이 아직 안 되고 있다. 아마도 2018년 AMD가 ROCm 작업을 계속해 나가면서 이러한 점도 개선될 것으로 보이지만 말이다. 그 때가 되면 라데온 RX 베가 인스팅트 앤 프론티어(Radeon RX Vega Instinct and Frontier) 역시 상당히 매력적인 옵션이 될 것으로 예상한다. 특히 엔비디아에서 텐서 코어(Tensor Cores)를 볼타 플랫폼에서 소비자 라인으로 도입하는 것을 망설이고 있기에 더욱 그렇다.
GPU가 딥러닝 머신의 핵심이기는 하지만, 애플리케이션을 구동하고 데이터 엔지니어링 태스크(예컨대 증강과 같은 태스크)를 해결하기 위해서는 좋은 CPU 또한 필요하다. 향후 딥러닝 머신에 다수의 GPU를 추가할 계획이 있다면 최대 40 PCIe 익스프레스 레인을 지원하는 CPU를 사야 한다. 그렇다고 꼭 최신 제품만 고집할 필요는 없다. 7세대 인텔 코어 i7-7700K 정도로도 충분하다. 쿨러도 필요하지만, 그렇다고 굳이 수랭식에 집착할 필요는 없다. 쿨러 마스터에서 나온 30달러짜리 하이퍼 212 EVO면 충분하다.
딥러닝 PC 제작: 스토리지와 메모리
이왕 쓰는 김에 500달러짜리 1TB SSD M.2 카드를 산다고 해서 뭐 큰 일이야 나겠는가? 누가 뭐래도 SSD 카드가 중요한 건 사실인데 말이다. 하지만 다시 생각해 보자. 딥러닝 모델을 교육할 때 빠른 스토리지가 정말 필요할 것인지 말이다.
차라리 고성능이 요구되는 핫(hot) 스토리지와 비활성화된 프로젝트를 위한 콜드(cold) 스토리지로 나누어 지출하는 것이 더 합리적일 것이다. 2TB짜리 HDD(70달러)와 250GB SSD(130 달러)를 구매하면 절반도 되지 않는 비용으로 2배 가까운 스토리지 용량을 누릴 수 있게 된다.
메모리의 경우 32GB를 추천하며, 특히 향후 64GB로 확장할 수 있어야 하므로 16GB 모듈을 살 것을 추천한다. 대부분 마더보드는 DDR4 메모리를 요구하므로 16GB DIMMs 2개면 300~400달러 대에서 해결할 수 있다.
딥러닝 PC 제작: 마더보드, 파워 서플라이, 케이스
이제 모든 준비물이 갖춰졌으니, 이 모든 것들을 한 데 모아 줄 마더보드가 필요하다. 7세대 인텔 CPU를 구매했다면, 마더보드는 Z270 기반으로 사야 한다. 반대로 8세대 CPU 구매자라면 X370 기반 마더보드가 필요하다. 마더보드와 CPU가 서로 맞는지 확인하고 구입할 필요가 있다. 향후 추가적으로 GPU를 구매할 계획이 있다면 이 역시 마더보드에서 지원 되는지 확인해야 한다.
필자 역시 말은 이렇게 하지만 마더보드 구입시 이 점을 확인하지 않는 바람에 추후 지포스 GTX 1080 Ti를 하나 더 구매할 때 마더보드를 함께 업그레이드 해야 할 판이다.
파워 서플라이는 그리 흥미로운 파트는 아니지만, 그럼에도 불구하고 딥러닝 머신 제작에서 상당히 중요한 부분이다. 850W 파워 서플라이의 가격은 85 달러이며 어느 정도 확장할 여지를 허용해 줄 것이다.
고백하건데 필자가 마지막으로 데스크탑 PC를 조립해 본 것이 거의 10년 전이기 때문에, 딥러닝 머신 케이스를 고를 때 상당한 충격을 받지 않을 수 없었다. 반짝이는 LED 케이스, 유려한 커브 디자인, 정신 없이 돌아가는 팬 등을 보게 될 것이라 전혀 예상치 못했기 때문이다. 소심한 영국인인 필자는 지루하게 보일 수 있는 하얀 타워 디자인을 선택했다. 그래도 측면에 유리 윈도우가 달려 있기는 하다.
케이스가 모든 구성 요소를 담을 만한 크기인지를 반드시 확인하자. 생각보다 쿨러나 그래픽 카드 높이가 안 맞을 수 있으니 주의해야 한다. 스탠다드 ATX 타워 또는 미드 타워 케이스를 선택한다면 실패할 일은 없을 것이다.
딥러닝 PC 제작: 조립 및 소프트웨어 설치
위에서도 말했지만 PC를 조립해 본지가 너무 오래 되어서 헤매면 어떡하나 걱정 된 것이 사실이다. 하지만 막상 해보니, 스크류 드라이버와 정전기 방지 스트랩, 그리고 유튜브만 있으면 걱정할 것이 하나도 없다. 온라인에는 딥러닝 머신 제작 전 과정을 스텝 바이 스텝으로 친절하게 설명해 주는 영상들이 아주 많다. 필자 역시 SSD 카드와 메모리 설치 과정에서 이러한 영상들의 도움을 많이 받았다. 마더보드에 메모리 칩을 끼우려다 너무 세게 눌러 칩이 부러지지는 않을까 했던 걱정을 많이 잠재울 수 있었다.
모든 부품을 케이스에 넣고 조립이 끝났으면 이제 OS가 필요하다. 게임을 위해 윈도우로 듀얼 부트를 하는 것은 자유이지만, 딥러닝을 위한 용도라면 아마도 리눅스가 더 적합할 것이다. 글을 쓰고 있는 지금 시점에서는 엔비디아 드라이버 셋업이 쉽기 때문에 우분투 17.04를 추천한다. 참고로 엔비디아 다운로드 페이지는 아직까지 우분투 17.10을 업데이트 하지 않았다.
리눅스 설치 전 한 가지 기억할 것은 BIOS에 들어가 딥러닝 머신이 1080 Ti가 아니라 통합 그래픽을 사용하고 있는지 확인하는 것이다. 그렇지 않으면 설치 과정에 문제가 생길 수 있다.
엔비디아 드라이버 설정을 위한 우분투 가이드를 참조하자. 또한 텐서플로우1.5 이하에서는 CUDA 9를 지원하지 않으므로, CUDA 웹사이트에서 CUDA 8 라이브러리를 선택하도록 하자.
파이썬의 경우 아나콘다(Anaconda) 사용을 권장한다. 아나콘다를 이용해 텐서플로우와 케라스를 설치하는 것은 매우 간단하다.
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras
파이토치(PyTorch) 역시 아주 간단하다:
conda install pytorch torchvision -c pytorch
또한 아나콘다에는 주피터(Jypyter)가 기본으로 설치돼 있으므로 커스텀 딥러닝 머신 사용에 필요한 거의 모든 것이 다 갖춰진 셈이다.
딥러닝 PC 제작: 총 비용
마지막으로, 이 모든 과정에서 소요된 비용을 총체적으로 살펴보자. 나는 모든 부품을 아마존에서 구매했다. 다른 쇼핑몰이나 중고 매물 등을 통해 더 싸게 구입할 수 있다면 그렇게 해도 좋다. 또한 엔비디아의 파운더스 에디션이나 GTX 1080 GPU를 구매함으로써 100에서 200 달러 가까운 비용을 절감할 수 있다는 사실도 잊지 말자.
이렇게 해서 2,100달러 미만으로(물론 세금은 포함되지 않은 가격이다) 딥러닝 PC를 조립할 수 있었다. 나날이 늘어가는 클라우드 비용이 걱정이라면, 자체적인 딥러닝 머신을 제작하는 것이 AWS, 구글 클라우드 또는 마이크로소프트 애져를 이용하는 것보다 더 경제적이고 시간을 절약하는 선택은 아닐지 고민해 볼 필요가 있다. 적어도 필자에게는 커스텀 딥러닝 머신을 제작한 것이 옳은 선택이었다.
* 빅데이터 및 딥러닝 아키텍트인 이안 포인터는 아파치 스파크와 파이토치에서 근무하고 있다. dl-ciokorea@foundryco.com