딥러닝 최적화된 그래픽 카드

8
pabii research

이전 글

몇 달전의 일이다. 2016년에 구매했던 ThinkPad T460p 을 중고로 팔았다. 참고로 필자는 “빨콩 매니악”이기 때문에 “빨콩”이 달린 ThinkPad 노트북만 쓰고, 직업적인 이유로 퍼포먼스가 강조된 매우 고사양 노트북 위주로 구매한다. 필자가 쓰던 ThinkPad T460p는 말 그대로 “끝판왕” 모델이었는데, i7-6820HQ에 DDR4램 32GB, 그리고 그래픽 카드가 ThinkPad 14인치 이하 모델 중 제일 좋은 GeForce 940MX + DDR3 VRAM 2GB가 달린 모델이었다. 관심있으신 분이라면 왜 필자가 이 노트북을 매각했는지 감을 잡으실텐데, 딱 하나 필자의 입맛에 거슬렸던 부분이 그래픽 카드였다. GeForce 940MX라는 저사양/저전력 그래픽 카드 자체도 불만이었지만 그래픽 카드의 성능을 크게 좌우하는 VRAM (그래픽 카드의 램, 혹은 캐쉬)가 2GB 밖에 안 되고, 그것도 2013년부터 나오던 GDDR5가 아니라 구형 DDR3을 넣어놓은, 아주 입맛에 안 맞는 모델이었다.

“빨콩 매니악”인 필자 입장에서 다른 노트북 브랜드는 거들떠 볼 수도 없었고, 결국은 이동성을 (좀 더) 포기한 15인치 ThinkPad 모델들을 봤는데, 게임용 랩탑으로 나온 ThinkPad E560p은 최신형 Commercial 그래픽 카드에 GDDR5를 썼지만 VRAM이 2GB였고, 가격대가 두 배 이상 뛰어오른 워크 스테이션 모델인 P50은 VRAM이 4GB인 모델이 있었지만 필자의 용도 대비 오버 페이가 확실한 Quadro (쿼드로) 그래픽 카드가 달려있었다.

 

무슨 4차원 외계어를 읊고 있는 것 같나? ㅋㅋ

딥러닝에 최적화된 그래픽 카드를 가르쳐 달라는 질문을 받고 지난 2017년 가을쯤에 필자가 했던 생각들이 문뜩 떠올라서 글로 옮겨봤다. 당장은 무슨 고민을 했는지 이해가 안 되겠지만, 아래의 글을 읽어보시면 아마 왜 저런 고민을 했는지 좀 와닿고, 잘 이해하는 분들은 딥러닝에 필요한 컴퓨터를 구매하면서 어떤 그래픽 카드를 사야하는지 쉽게 결론 내릴 수 있으리라고 생각한다.

 

1. nVidia 그래픽 카드 vs. AMD 그래픽 카드

그래픽 카드 시장을 양분하는 2대 기업이 있다. 가장 유명한 브랜드는 nVidia의 GeForce 계열 그래픽 카드로, 보통 게임 유저들이 새 모델이 나오는 걸 목이 빠져라 기다리는 경우가 많다. 지금 이 글을 쓰는 시점에 가장 고사양 GeForce 카드는 GeForce GTX 1080 Ti다. 참고로 Ti는 계산 모듈이 2개가 붙은 거라고 생각하면 된다. nVidia의 아성을 위협하는 회사로 AMD가 있고, 오래전부터 가성비 만점인 ATI Radeon 시리즈로 선두 주자를 위협하면서 그래픽 카드 시장 발전을 이끌어왔다.

그래픽 카드의 성능 자체만 놓고보면 GeForce 모델과 Radeon 시리즈 최상위 모델간 격차가 많이 줄어들어서 요즘은 가성비를 놓고 게임 유저들 사이에 Radeon 시리즈 수요가 많이 증가한 상태다.

다만, TensorFlow, H2O, MXNet 등의 대표적인 멀티 코어 + GPU 활용 패키지들이 nVidia 그래픽 카드만 지원하고 있다. AMD 그래픽 카드를 쓰다가 블루 스크린이 뜬 사례가 종종 보고가 되니*, 굳이 딥러닝 패키지들을 돌리고 싶다면 nVidia 그래픽 카드를 구매하실 것을 추천한다. (오해마시라. 필자는 nVidia 주식을 단 한 주도 안 갖고 있다.)

(*참고로 nVidia 그래픽 카드는 CUDA 기반으로 계산하고, AMD 그래픽 카드는 OpenGL 기반인데, TensorFlow가 CUDA 기반이므로 당연히 AMD 그래픽 카드에서는 제 성능을 발휘 못한다. CUDA와 OpenGL 상호간 공유되는 명령어 셋도 많기 때문에 무조건 nVidia 그래픽 카드만 써야한다고 말하지는 않겠지만, 분명히 호환되지 않는 명령어 셋들 때문에 AMD 그래픽 카드에서는 충돌이 날 여지가 있다.)

 

2. Quadro 그래픽 카드 vs. Commercial 그래픽 카드

그래픽 카드는 생산하는 회사가 2종류일 뿐만 아니라, 그래픽 카드 종류도 크게 2종류로 구분된다. (정확하게는 3종류로 구분된다) 가장 흔히들 보는 그래픽 카드가 윗 섹션에 언급한 GeForce GTX 시리즈, 즉 Commercial 그래픽 카드다. 게임용으로 (or 비트코인 채굴용으로) 많이 활용된다. 그 이외에 전문가 용으로 구분되는 그래픽 카드는 서버용으로 쓰이는 파스칼 계열 (최신 모델명 Titan) , 그리고 CAD 계산용으로 쓰이는 Quadro 그래픽 카드가 있다.

당연히 파스칼 계열 그래픽 카드는 가격도 매우 비싸고 일반인이 평소에 구매할 수 있는 채널도 없다. 그나마 일반인이 볼 수 있는 양산형 노트북 모델 중에 고가 제품에 (특히 워크 스테이션, Work Station, 제품에) 들어가는 그래픽 카드가 바로 Quadro 카드들이다.

Quadro 카드들은 같은 세대 GeForce 카드에서 약간의 속도를 포기하고 CAD를 비롯한 공학 계산에 특화된 명령어를 추가해넣은 칩셋을 갖고 있다. 소프트웨어적인 개조이기 때문에 당연히 Quadro 카드를 사서 GeForce 카드처럼 사용할 수 있지만, GeForce 카드 가격의 3-4배를 상회하는 그래픽 카드를 사 놓고 그렇게 쓰는 사람은 거의 없을 것이다. (그러나 필자가 그렇게 쓰고 있다 ㅠㅠ)

예전에 TensorFlow 돌리려는데 비싼 Quadro 그래픽 카드를 쓰면 저렴(?)한 Commercial 그래픽 카드 쓰는 경우 대비 얼마나 더 장점이 있는지 질문을 받은 적이 있다. 개인적인 경험을 바탕으로 할 때 “아무런 효과가 없다”고 대답할 수 있다. Quadro 카드는 오직 그 목적성에 부합한 프로그램들(ex. CAD)을 돌릴 때만 돈 값을 한다. 그래서 머신러닝 패키지들 돌리려는 분들께는 당연하겠지만 비추한다.

 

3. VRAM의 중요성

다른 글에서 그래픽 카드의 성능은 계산 모듈과 캐쉬 메모리의 크기에 좌우된다고 했다. 그럼 계산 모듈도 같고, 메모리 크기도 같은데 메모리의 속도만 다르다면 어떻게 될까? 2013년부터 고가 그래픽 카드들에 최신형 GDDR5 메모리가 들어가기 시작했다. DDR3, DDR4보다 처리속도가 더 빨라서 당연히 가격도 더 비싸고, 생산량도 적은 고급 메모리 스틱이다. 덕분에 GDDR5 메모리가 들어간 그래픽 카드들의 가격대도 DDR3이 들어간 동일 모델에 비해 훨씬 높았다.

필자가 GeForce 940MX라는 저전력 그래픽 카드가 달린 모델을 팔았던 이유는 1년 후에 나온 ThinkPad T470p에 같은 그래픽 카드 but GDDR5짜리 VRAM이 달린 모델이 나온 것을 확인했기 때문이었다. 벤치마크를 보면 실감하겠지만, 메모리만 바꿨는데 두 그래픽 카드의 성능이 완전히 바뀐 것을 확인할 수 있다. 실제로 필자가 GeForce 940MX보다 구형인 GeForce GT 750M에 GDDR5 + VRAM 2GB 모델을 썼을 때보다 빌드 타임이 더 걸리는 것도 확인했다.

컴퓨터 덕후라 이런저런 GPU들을 많이 써 보면서 느낀 점은, VRAM이 많으면 많을 수록 당연히 성능이 더 개선되는 것이 사실이지만, VRAM 자체의 유무도 엄청나게 큰 영향을 주더라. 그래픽 카드를 이용해서 계산을 할 수 있다는 그 자체로 벌써 CPU 기반 계산과는 시스템 자원을 활용하는 방식이 달라지기 때문이다.

왜 이렇게 덕후스럽냐고? ㅋㅋ 누군가에게는 겨우 몇 초, 몇 분 차이일 수 있겠지만, 같은 작업을 다른 변수 넣어가며 여러번 반복해서 테스트하는 모델러 입장에서 빌드 타임이 10% 줄어들면 어마어마한 차이가 된다. (그래서 빨리 퇴근할 수 있다 ㅎㅎ)

 

나가며

필자는 결국 VRAM이 많이 달린 but 오버 페이하는 Quadro 그래픽 카드 모델을 구매했다. 그러나 굳이 이런 “스튜핏” 구매를 하는 것을 추천하지는 않는다. “빨콩”을 타협하면 타사 모델들 중에 Commercial 그래픽 카드임에도 VRAM이 매우 큰 노트북들이 즐비하고, 사실 게임용 랩탑으로 검색하면 발열 및 소음 처리가 매우 뛰어난 수 많은 모델들이 있다. 굳이 필자처럼 고집스럽게 입맛에 맞는 모델만 찾다가 쓸데없는 비용을 쓸 이유는 없다.

사실 저비용으로 빌드 타임을 줄이고 싶으면, 데스크탑 하나에 지갑이 허락하는 한계까지 고성능 그래픽 카드만 여러장 추가하는 편이 낫다. 굳이 무거운 작업을 비싼 노트북을 들고다니며 해야되는 경우가 얼마나 될까?

 


글 아이디어를 주신 최준영님께 감사드립니다.

Similar Posts