붉은거위 노트 (redgoose note)

E-GPU를 구성해 보았다.

Nest
Blog
Category
Review
Hit
1650
Star
2

개인적으로 3d 아트웍 작업을 하다 보니 자연스럽게 작업 속도에 대하여 많은 관심이 생기게 된다.
그래서 많은 비용을 들인 장비들과 거기에 투자한 시간들이 많지만 욕구는 끝도 없다.

맥프로

운좋게 싸게 구한 중고 맥 프로를 사용하고 있고, 그래픽 툴은 Cinema4d를 사용해서 작은 아트웍을 하나씩 만들어보고 있었다. 작은 사이즈 맥프로 6코어 시피유에 끌려버린것이다.

e-gpu_006.jpg

하지만 6코어 시피유의 성능이 한계가 있다는것을 많이 느끼게 되어 옥테인 렌더를 이용하여 GPU로 빠르게 렌더링할 수 있다는것을 알게되고 그것도 엄청나게 빠르다는것을 많은 자료들이나 영상을 통해 알게 되었다. 그래서 구성해볼까 했지만 윈도우 기반의 시스템이었다.

맥은 하드웨어를 커스터마이즈 하기가 불가능에 가까울 정도로 어려운 편이고 맥프로 신형이어서 그래픽카드 교체는 꿈도 못 꾸었다.

다시 윈도우로 가는게 싫어서 작업이 힘들지만 여차여차 맥프로만으로 작업하고 있었다.

Cycles 4D

옥테인 같은 렌더러가 gpu를 활용하면서 퀄리티가 아주 좋다는 소문을 들었지만 사용해보고 싶다는 생각이 선듯 들지 않았다.

시간이 지나니 x-particle 플러그인을 만든 곳에서 Cycle4D라고하는 블렌더에서 사용하는 렌더러를 Cinema4D용으로 포팅한 렌더링 플러그인이 출시한다는 소식을 들었다.
하지만 서드파티 렌더러는 대부분 옥테인을 사용하고 있었지만 가격이 좀더 저렴했고, 재질에서 노드방식으로 편집할 수 있는 인터페이스가 마음에 들어보였다.

e-gpu_011.jpg

그래서 일단 구입해서 cpu로 렌더링을 걸어서 사용했다.
cpu+gpu로 렌더링 걸 수 있고, CUDAopenCL까지도 지원이 되어서 나도 gpu사용을 할 수 있겠구나 싶었는데 맥프로에 달려있는 amd d500그래픽 카드로는 이상하게 계속 오류나 난다. 구글링으로 알아보니 d500은 opencl의 최신버전이 지원되지 않아서 작동이 되지 않아 보였다. 좌절..

렌더러가 CUDA 환경이 안정적이라는 글을 보고 외부 gpu를 사용할 수 있는 방법을 찾아보다가 E-GPU(External GPU)라는것을 알게되었다.

E-GPU 조사하기

E-GPU 라는것을 좀 더 알아볼 필요가 있어서 열심히 검색해보고 사용기들을 찾아보았다.
다행히 관련된 제품들이 있었고 사용해본 사람들의 리뷰 글들이 많지는 않았지만 그것들을 읽어보면서 이게 어떠한것인지는 알게 되었다.

요즘 맥에서 기본적으로 붙어있는 썬더볼트를 이용한 구성을 만들어 사용하는것을 볼 수 있었다. 썬더볼트 인터페이스가 지금까지는 가장 빠른 전송장치여서 적절해 보였다. 가격은 엄청 비싸지지만...

당장 장비를 구성할까 마음먹었는데 조사해본 결론은 아직 안정적이지가 않다는 것이라서 제대로 활용할 수 없다는 것이다. 비용도 상당히 들어가고..
그래서 마음을 접고 있었다.

애플의 발표 High Sierra

요즘 애플발표를 잘 안보고 하다보니 mac os의 기능이 변한다는것을 뒤늦게 알게 되었는데 가장 흥미가 가게 했던것은 E-GPU를 지원한다고 하면서 서드파티 제품을 소개해주니 다시한번 가슴에 불이 붙었다.

e-gpu_007.jpg

갑자기 호기심이 생겨 다시 E-GPU에 대해서 검색해보니 전보다 훨씬좋은 글과 자료들을 볼 수 있어서 이번에는 구현 가능하깄다는 확신을 얻었다.

올해 출시되는 하이 시에라는 기본으로 E-GPU가 지원되어서 더욱 안정적으로 사용할 수 있을거라 생각되고 지금 장비를 구성해도 그대로 사용할 수 있어 보였다.
무엇보다. 현재 사용하고 있는 버전인 시에라에서도 유저들이 만든 드라이버 쉘 스크립트로 사용할 수있었다.

E-GPU 장비 구성

기왕 구성하는김에 고시양으로 가자고 마음먹어서 작정하고 비용을 들였다. 기왕이면 어느정도 확 차이가 나는지 확인해 보고싶기도 했다.
장비를 구입할 시기에 비트코인 붐이 일어나서 채굴하려는 사람들이 많이 늘어나 그래픽카드가 부족하고 가격이 오르기 시작하는 시기였다.

구성은 다음과 같다.

AKiTiO gpu case

E-GPU를 구성하기 위하여 필수적으로 필요한 케이스다.

내가 바라는 추측대로 볼때 동작 원리는 컴퓨터가 gpu연산할 꺼리를 넘겨주고 gpu가 열심히 연산을 한 결과물을 컴퓨터에게 전달해주는것이라고 생각한다. 전송 인터페이스는 요즘 가장 빠르다는 썬더볼트를 사용한다.

간단하게 생각하자면 외장으로 그대로 그래픽카드를 사용해줄 수 있게하는 케이스로 볼 수 있다.

여러 브랜드와 종류들이 존재하지만 많은 글들중에 많이 본 브랜드가 AKiTiO이다.
현재만 바라볼것이 아니고 나중에 macOS가 업데이트가 된다는것을 염두해서 썬더볼트3가 지원되는 모델을 구입을 결정하게 되었다.

e-gpu_010.jpg

위의 그림은 구입해서 그래픽 카드를 장착한 모습. 케이스가 생각이상으로 훨씬크고 무겁다. 휴대성은 제로라고 볼 수 있다.

gtx 1080ti

현재 게이밍용으로 나온 그래픽 카드중에 강력한 성능을 내주는 라인업인 gtx 1080ti이다.

e-gpu_008.jpg

하이 시에라에서 주력으로 사용하는 gpu 라이브러리는 opencl이며 amd 쪽이 더욱 나은 퍼포먼스를 보여주지만 난 nvidia로 간 이유는 CUDA를 사용할 수 있기 때문이었다.
opencl은 nvidia 카드로 사용할 수 있지만 CUDA를 amd 카드로 사용할수가 없다. Cycles 4D는 CUDA를 지원하고 드라이버가 안정적이라고 하여 nvidia 로밖에 선택의 여지가 없었다. 안그래도 비트코인 것분에 amd 그래픽카드는 비싸지고 구할수도 없는 수준이었다.

썬더볼트3 to 썬더볼트2 어댑터

현재 가지고 있는 맥프로는 썬더볼트2 인터페이스인데 akitio node의 인터페이스는 썬더볼트3라서 커넥트가 서로 호환이 되지 않아서 어댑터가 필요하다.

e-gpu_009.jpg

애플 사이트에서 가격을 확인해보니 대단히 비싸다. 망할..
썬더볼트3을 사용하려고 최신 맥북이나 아이맥을 들일 수 없는 노릇이다. 현재 맥프로에 만족하고 있기도 하고하니 썬더볼트2 커넥트라면 이 어댑터가 꼭 필요하다.

전송 속도가 2배 차이가 나지만 썬더볼트2도 충분히 괜찮다고 생각한다.

셋업

장비들을 설치하고 드라이버를 설치할 차례가 왔다. http://cafe.naver.com/inmacbook/1622955 사이트를 참고하여 드라이버를 설치하는 쉘 스크립트를 실행해서 쉽게 드라이버는 설치했다.

여기서부터 난관이었은데 그래픽카드가 인식을 하긴 하는데 어떻게 구동을 하는지 햇갈려했다.
luxmark는 바로 인식되어서 쉽게 구동을 확인할 수 있었지만 최종적으로 내가 원하는 cycles4d 에서 CUDA를 구동시키는건 쉽지 않았다. 모니터 케이블을 이리저리 따로 연결해보면서 메인 그래픽카드로 바꿔보려고 시도를 해보면서 맥프로의 그래픽카드가 메인이 되어야하는데 맞는거 같아서 외장 그래픽카드에 끼운 케이블은 다 뽑고 되돌려놓고 멘붕상태가 되어 불가능하나 생각했다.

다음날에 다시 구글링을 해보면서 도전했는데 모니터에 연결하지 않더라도 작동은 잘되고 있다는것을 확신할 수 있었다.
문제는 렌더링인데 옥테인 데모를 설치해봤는데 알수없는 이유로 프로그램이 실행되지 않아서 바로 포기해서 계속 리서치 해보니 macOS용 CUDA 드라이버가 있다는것을 찾게 되었다. 드라이버를 설치하고 Cycles4D에서 옵션을 CUDA로 변경하고 렌더를 돌려보니 속도가 차이날 정도로 빨라졌다!

테스트

이제 삽질의 결실을 볼때가 왔다. 얼마나 퍼포먼스가 좋아졌는지 궁금했는데 이제서야 알게 되어서 두근거린다.

먼저 쉽게 구동을 한 luxmark의 점수는 다음과 같다.

e-gpu_001.png

왼쪽부터 CPU가 2470점이고, 맥프로의 그래픽카드 GPU D500는 17464점이고, E-GPU의 GTX 1080ti이 22112점이 나왔다. (나중에 다시 점수를 측정하니 24000점대가 나온것을 볼 수 있었다.)
확실히 CPU보다는 성능이 확 튀어오르는것을 체감할 수 있었다.

이번에는 Cycles4D를 이용하여 렌더링을 걸어보았다.

e-gpu_002.png

단순한 모델과 재질을 사용한 프리뷰용 씬에서는 프리뷰 화면은 커다란 차리를 보인다.

e-gpu_004.png

e-gpu_003.png

렌더속도는 최소 2배이상 차이가 나왔다.

e-gpu_005.png

예전에 만든 inside 프로젝트에서 재질을 모두 다 뺀 Clay스타일을 렌더해보았다. 이 씬도 렌더속도가 약 2배정도 차이를 보였다. (hdri를 사용한 씬에서는 4배정도 차이가 나오는것을 확인할 수 있어서 뭔가 상황에 따라 다른 차이를 느낄 수 있었다.)

Final

아직 제대로된 작업물을 한번도 만들어보지도 않은 상태에서 이렇게 후기를 남겼다. 시간적인 수치만 보더라도 상당히 괜찮아 보였다.
외부 그래픽 카드에 모니터를 연결하거나 썬더볼트3 인터페이스를 사용하면 더 빠르다는 얘기도 듣기도 하지만 현재 상태에서는 그럴 여건이 안되어서 이정도 선에서 타협을 보았다.

확실히 중요한것은 Cinema4D에서 아트웍 작업을 하는더 더 높은 퀄리티로 결과물을 뽑아낼 수 있고, 테스트 렌더링에 수고와 시간이 줄어들것이라는 기대에 부흥을 해줄것이라는 기대감에 답해주는것이라고 느껴져서 뿌듯하다.

이제 이걸 가지고 만드는것뿐이다.

다른 그래픽 프로그램에서도 E-GPU가 많이 지원되어 더욱 원활하게 작업할 수 있기를 기원한다.