Artificial Intelligence/기타 이모저모

기계학습/딥러닝 컴퓨터 마련 대안책 - 외장 그래픽(eGPU)

Jay김 2020. 7. 4. 22:02

기본적인 기계학습 알고리즘은 좋은 CPU로도 충분히 감당할 수 있지만 은닉층이 꽤 많은 딥러닝까지 가면 빠르고 효율적인 모델 훈련을 위한 좋은 그래픽 카드의 필요성은 절실해진다. 구글 Colab이나 캐글(Kaggle)을 통해 공짜로 그래픽 카드를 빌릴 수는 있겠지만 이들은 시간제한이 있고 데이터를 옮기는데 시간도 더 많이 걸리므로 제대로 된 작업을 위해서는 다소 무리가 있다. 유료로 구글 클라우드나 AWS 같은 곳에서 그래픽 카드를 더 긴 시간 동안 빌릴 수도 있지만 장기적으로는 이들도 가성비가 떨어진다.

그러나 모두가 좋은 최신 그래픽 카드를 마련할 수 있을 정도로 지갑 사정이 좋지는 않을 것이다. 특히나 최근에 나온 RTX-20/30 시리즈 그래픽 카드는 텐서 코어를 장착해 압도적으로 빠른 연산 속도를 보여주겠지만, 그 가격도 만만치 않다. 특히나 현재 신종 코로나 바이러스가 유행하고 모두가 집에 박혀 컴퓨터 부품을 사들이고 생산이 수요를 따라잡지 못하는 지금은 상황이 나아질 기미가 보이지 않는다. 더군다나 그런 높은 스펙의 카드를 구입해놓고 딥러닝에 흥미를 잃고 게임 같은 작업에나 낭비하거나 그냥 집구석에 방치하는 경우도 있다. 필자는 지갑 사정에 여유가 없는 분들을 위해 1) 그래픽 카드 2) 주변 부품 순으로 지출을 최대한 줄일 수 있는 방법들을 제시하고자 한다.

일단 처음부터 그 정도 성능을 가진 그래픽 카드를 장만할 필요는 없다. (정말 필요하다면 RTX 3070) 특히나 처음부터 SLI까지 고려해서 2개 이상 마련하는 것은 어지간한 캐주얼한 딥러닝에겐 오버킬일 것이다. 2020년 기준으로 "나는 딥러닝을 맛보기만 하겠다"를 목적으로 한다면 엔비디아 GTX 1050 ti로도 충분하다. 만약 집에 엔비디아 GTX 980 ti 같은 것이라도 있다면 좋다. 아예 새로 1050 ti보다 좀 더 성능이 높고, VRAM도 좀 있고, 가성비도 높고, 드라이버 지원도 아직 살아있는 그래픽 카드를 장만하겠다면 엔비디아 GTX 1660 ti을 구입하기를 추천한다.

GPU 연산 속도 비교: https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/

 

Which GPU(s) to Get for Deep Learning

You want a cheap high performance GPU for deep learning? In this blog post I will guide through the choices, so you can find the GPU which is best for you.

timdettmers.com

이제 고민할 것은 나머지 부품들 일 것이다. 일단 앞서서 데스크톱을 마련하길 추천한다. 가성비로는 두말없이 앞도적이고, 놀랍게도 보기완 달리 제일 골치가 덜한 선택지다. 데스크톱을 새로 마련하기 귀찮거나 곤란한 사람들은 모든 것이 패키지로 들어있는 노트북 컴퓨터를 고려해보기도 할 것이다.

그러나 노트북(laptop) 컴퓨터는 장기적으로 봤을 땐 가격 대비 효율성이 데스크톱에 비해 굉장히 떨어진다. 일단 딥러닝에 의해 CPU와 GPU에 가해지는 무리는, 특히나 며칠 이상 연속으로 작업을 시키는 경우에는 어지간한 노트북의 귀여운(...) 팬 냉각 성능으로는 감당하기 힘들고, 노트북 부품의 빠른 수명 단축으로 이어진다. 같은 냉각 문제 때문에 노트북용으로는 보통 같은 급에서 성능이 저하된 Max-Q 그래픽 카드가 탑재된다. 그리고 대기업들이 단순히 소비자가 번거롭게 따로 사서 손쉽게 끼워 넣을 수도 있는 RAM 혹은 SSD 업그레이드에서 바가지를 씌우는 건 기본이고, 요즘 노트북들은 얇은 두께를 위해 CPU와 GPU가 보드에 솔더링 되어 나오기 때문에 미래에 자금 사정이 나아졌을 때 하드웨어 업그레이드의 길조차도 완전히 막혀있다. 이 두 가지를 해결하는 모델로는 Dell의 에일리언 웨어 Area-51m이 있지만 무게도 만만치 않을뿐더러 이 정도 가격대는 여러분이 다니는 회사가 사주면(...) 구입하는 것이다. 마지막으로 리눅스 운영체제 설치의 문제가 있다. 나중에 딥러닝에 더욱 깊이 들어간 상황에서 CUDA를 효율적으로 사용하려면 리눅스와의 접점은 불가피하다. 드라이버 호환이 안돼서 노트북 키 몇 개가 작동을 안 하는 상황은 양반이고, Area-51m 같은 예는 Dell의 팬 속도 조절 프로그램이 리눅스에서는 지원이 안되며, 보통 한 개밖에 없는 HDD/SDD에 듀얼 운영체제로 돌리다가 윈도 10 자동 업데이트 때문에 코드가 오염되어 리눅스가 부팅이 안되거나 데이터가 싹 다 날아가는 최악의 상황도 있다. 리눅스에서의 호환성을 확인하고 필요한 소프트웨어까지 싹 깔아서 파는 노트북으로는 Lambda Labs 사의 Tensorbook이 유일할 것이다. 그러나 텐서북도 인터넷 곳곳에 깊이 숨겨진 얼마 없는 후기를 뒤져보면 가격 대비 안정성이 썩 좋아보이진 않는다.

노트북이 마더보드 같은 곳에서 고장난다면? 데스크톱은 보통 원인 부품만 찾아서 예비 부품으로 대체하는 동안 빠르게 교환받거나 새로 사서 갈아 끼울 수 있지만, 노트북의 경우엔 애플처럼 바로 바꿔줄 정식 매장도 없고 회사 A/S 정책이 적대적이라면... 행운을 빈다. 기동성이 떨어진다는 분들도 있을 텐데, 그게 문제라면 값싼 구형 씽크패드도 추가로 구매해서 데스크톱을 원격 조종하는 게 낫다.

만약 집에 이미 노트북이 있다. 그리고 썬더볼트를 지원한다. 당신은 운이 좋다. 바로 Razer Core 같은 외장 그래픽(eGPU)을 구입해서 쓸 수 있다. Razer Core는 맥 운영체제도 공식적으로 지원한다. 그렇다, 맥북도 연결할 수 있다! 혹시 여러분의 컴퓨터가 레노버의 최신 X1 카본이라면 썬더볼트 포트가 있는지 확인해보길 바란다. 썬더볼트 포트를 통한 연결이기 때문에 데이터 트래픽 우선순위에서 밀려 성능 저하가 좀 일어나고 레이저 코어 자체도 그 본질이 단순히 케이블, 파워 서플라이, 그리고 박스인 주제에 비싸지만, 데스크톱을 아예 새로 장만하는 것보다는 편할 것이다. 만약 Dell 노트북이 있다. 그러면 GA 포트를 통해 Dell의 외장 그래픽인 그래픽 증폭기(Graphics Amplifier)를 지원하는지 확인하길 바란다. 컴퓨터 사용 도중 연결하려면 바로 연결할 수 있는 Razer Core에 비교하면 컴퓨터를 껐다 켜야 한다는 단점이 있지만 노트북과 PCI-E 슬롯으로 연결시켜 주기 때문에 속도는 더 빠를 것이다.

최후의 수단은 중고장터에서 값싼 노트북을 구입한 뒤 추가로 쿠팡, 알리익스프레스, 이베이, 혹은 아마존 같은 사이트에서 EXP GDC Express 도킹 스테이션을 구입하는 것이다. 이 방법은 가난한 게이머의 꼼수이기도 하다. 이 도킹 스테이션은 다양한 종류가 존재하는데 현재는 노트북에서 보기 힘든 익스프레스 카드 슬롯 지원 버전도 있고 PCI-E 슬롯 지원 버전도 있다. PCI-E 슬롯은 노트북을 뒤판을 열어서 연결해야 되는 꽤 무식한 방법이다. 노트북 내부의 외부 먼지 노출은 덤이다. 그리고 그 PCI-E 슬롯이라는 게 어지간해선 단 한 곳에 있는데 그게 바로 와이파이 카드가 연결되어 있는 곳이다! 대체용 외장카드나 유선랜이라도 있는 게 아닌 이상 여러분은 노트북을 고자 와이파이 연결 불가능 상태로 만들기는 싫을 것이다. 따라서 익스프레스 카드 슬롯을 지원하는 버전을 추천한다. 해당 도킹 스테이션은 잘 돌아가다가 불분명한 원인으로 죽는다는 후기도 있으니 주의하자.

그러면 이제 이걸 지원하는 노트북이 뭐가 있지 하면 레노버의 씽크패드(Thinkpad) X, T, W 시리즈의 20-30번 대 노트북들이 있다. 마침 씽크패드여서 리눅스 운영체제도 잘만 돌아간다. 나머지 노트북들은 웹사이트에서 호환 가능성을 확인하길 바란다.

http://exp-gdc.blogspot.com/2018/05/exp-gdc-compatibility-support-list.html

 

EXP GDC Compatibility - Support list laptops (+ EXP GDC Beast types) - EXP GDC - Laptop External Video Card Dock

Hi All, In this simple post, I'll show you about EXP GDC compatibility or support list laptops. There are many types of EXP GDC Beast: Mini PCIE, Expresscard, NGFF, and M.2 X4 version. And how about the support laptops? Here are some information: Question

exp-gdc.blogspot.com

여기에 전력공급을 위해 추가로 파워 서플라이나 Dell의 어뎁터도 구입해줘야 한다. 혹시 게임용으로도(...) 생각하고 있다면 모니터도 따로 있어야 한다. 그래픽 카드의 연산 출력 값을 다시 노트북으로 보내서 노트북의 모니터로 송출하는 것은 너무나 느리기 때문에 해당 도킹 스테이션으로 업그레이드 안 하는 것만 못한 성능이 나온다. 또 다른 주의할 점은 해당 도킹 스테이션은 PCI-E 1x만 지원하기 때문에 필연적으로 그래픽 카드의 본연의 성능보다 낮은 너프 된 출력이 나오고, 극단적인 경우에는 노트북의 스펙이 그래픽 카드에 비해 형편없이 낮아 병목현상이 나타날 수도 있다. 따라서 해당 방법은 나중에 데스크톱의 나머지 부품을 완전히 장만할 수 있을 때까지를 위한 중간 단계로 사용하길 추천한다.

https://egpu.io/forums/builds/2012-14-thinkpad-t430-rtx20704gbps-ec2-exp-gdc-beast-8-4d-win10-ursubpar/

 

2012 14" Thinkpad T430 + RTX2070@4Gbps-EC2 (EXP GDC Beast 8....

As far as I am aware, this is the first expresscard RTX 20xx eGPU guide with no errors on the newest nvidia drivers. Specs: Comp: Thinkpad T430 (...

egpu.io

위의 예처럼 하드웨어까지 마련했다면 이제 드라이버 세팅만 완료하면 된다. 코딩은 사실상 만국 공통어(...)라서 세팅은 리눅스 운영체제라면 다음과 같은 유튜브의 가이드를 보고 따라 하면 될 것이다. 윈도 운영체제에서는 Code 43 같은 드라이버 호환 문제가 발생할 수도 있다.

youtu.be/oMwCrF7BYcY

[Copyright ⓒ 블로그채널 무단전재 및 재배포 금지]