컴퓨터 / IT

ATI와 NVIDIA의 만남: Hybrid PhysX

드라이빙필 2010. 6. 19. 18:36
반응형


서론

ATI 라데온 시리즈에 비해 NVIDIA의 지포스 시리즈가 가진 장점중 하나는 그래픽 카드의 활용도가 더 높다는 것입니다. 주 목적인 게임 성능만 놓고 논하자면 양쪽이 서로 장단점이 있는 부분이지만 GPGPU 분야에서는 차이가 분명이 있죠. 게임에서는 PhysX가 있고 비디오 인코딩이나 필터 처리 같은 고수준의 연산 등등 매력적인 부분이 많습니다. 여러 마리 토끼를 다 잡겠다면 지포스를 쓰는게 답이겠지만 개인적인 취향이 라데온이라면 얘기가 좀 달라집니다.

윈도우 XP와 윈도우 7에서는 다중 그래픽 카드 사용이 가능합니다. (비스타는 그래픽 시스템 자체가 이게 불가능합니다.) 그래서 라데온 유저들이 지포스를 세컨더리 그래픽 카드로 사용하기 시작했죠. 주 목적은 게임에서의 PhysX였습니다. 이른바 Hybrid PhysX의 시작이었죠. 그런데 이를 지켜만 보던 NVIDIA에서 언제부터인가 드라이버 레벨에서 이를 차단해 버렸고 사용자들은 차단한 부분을 패치(Hybrid PhysX mod)하여 쓰는 식으로 빠져 나갔습니다.

저 또한 이에 관심을 갖고 지켜 보고 있었는데 최근에 HTPC의 GT 240을 떼어내면서 '한 번 시도해볼까?'하는 생각이 들었습니다. 예전에 잠깐 꼽아서 Hybrid PhysX mod를 적용해 본 적이 있었는데 그 때는 이런 저런 문제들로 인해 잘 되지 않아서 제대로 테스트를 못 해 봤었습니다. 그러던 중 얼마전에 NVIDIA에서 공개한 최신 베타 드라이버에는 Hybrid PhysX를 막는 루틴이 실수(?)로 빠져 있어서 별다른 패치가 필요 없다더군요. 그래서 다시 시도해 보았습니다.


준비

두 그래픽 카드를 설치합니다. 윗쪽이 메인인 HD 4850이고 아래가 세컨더리인 GT 240입니다. ATX 케이스에 mATX 메인보드를 끼워 놨더니 아래가 좀 횅~하죠? ㅎㅎ

지금 사용중인 메인보드는 mATX타입의 기가바이트 H55M-UD2H 모델인데 PCI-Express 슬롯의 특이한 배치 때문에 mATX 케이스에 설치시 두 번째 PCI-Express 슬롯에 두 슬롯을 잡아 먹는 그래픽 카드의 장착이 불가능합니다. 저는 ATX 케이스를 사용하기 때문에 상관이 없지만 mATX 케이스라면 싱글 슬롯 그래픽 카드를 사용해야 됩니다. 그리고 방열판 때문에 일부 확장 커넥터들의 사용이 불가능했습니다. 시리얼(COM)이나 1394는 안 쓰니까 상관 없는데 USB는 3개중 2개를 사용해야 하는데 GT 240 때문에 2개나 사용이 불가능하더군요(위 사진의 붉은 색 박스 참고).

두 기판이 모두 빨간 색이어서 ATI 제품들 같은 느낌을 주는 군요. 아래쪽 GT 240이 녹색이었으면 좋았을 텐데.. ^^

테스트에 필요한 소프트웨어들입니다. 지포스의 257.15 베타 드라이버와 PhysX 벤치툴인 FluidMark.

드라이버 설치 후 GPU Observer로 그래픽 카드들의 상태를 점검해 보니 둘 다 문제없이 인식합니다. HD 4850은 구형 제품이다 보니 저전력 모드로 들어가도 클럭이 얼마 떨어지지 않는데 GT 240은 135MHz까지 내려갑니다. 덕분에 전력소모가 아주 적죠. 아이들시 10~15W 수준인 듯 한데 굳이 따지자면 이 것도 평상시엔 낭비되는 전기죠. ㅎㅎ

GPU-Z을 통해 PhysX 지원여부를 살펴보니 아직은 인식하지 못하는군요.


GT 240에는 모니터가 연결되어 있지 않기 때문에 자동으로 디스플레이가 인식되지 않습니다. 그러므로 수동으로 디스플레이를 추가해 줘야 되죠. 우선 제어판의 화면 해상도에 들어가 <감지> 버튼을 누른 후 GT 240을 선택합니다.


자동으로 감지가 안되므로 강제로 연결되게끔 선택해 줍니다. 그리고 나서 <적용> 버튼을 눌러 주면 설정이 변경되고 디스플레이는 두 개가 됩니다.


새로 추가한 디스플레이 그림을 클릭한 후 '다중 디스플레이'에서 '디스플레이 확장'을 선택하고 '적용' 또는 '확인' 버튼을 눌러 주면 화면이 잠시 껌뻑거리면서 변경 사항이 설정됩니다.

지포스 드라이버에서 PhysX 설정을 해 주려고 했으나 NVIDIA 제어판에는 설정 항목이 안보입니다. 베타라서 그런가??

아무튼 GPU-Z에서 다시 확인해 보니 일단 PhysX는 정상적으로 인식되는군요.


PhysX: FluidMark

PhysX 테스트에 사용한 FluidMark. 설정을 건드리지 않고 <Go!> 버튼을 누릅니다. (CPU 테스트시에만 오른쪽 상단의 'Force PhysX CPU' 옵션을 켠 상태로 진행하였습니다)

GT 240의 온도가 올라가면서 정상적으로 가속되는 것을 확인할 수 있습니다.



왼 쪽이 CPU(Core i5 750 @ 3.6GHz)만으로 처리한 것이고 오른 쪽은 GT 240입니다. 2배 조금 넘는 성능을 보여주는군요. 생각보단 성능차가 크지 않은데 오버클럭된 i5 750의 성능이 좋은 것인지 GT 240의 성능이 낮은 것인지는 잘 모르겠습니다. ^^


비디오 디코딩 가속: CoreAVC

2번 째로 동영상 감상을 해 봅니다. CUDA를 지원하는 CoreAVC 코덱을 이용하여 영상을 플레이 하니 트레이에 초록색 아이콘 ()이 뜨면서 정상적으로 CUDA 가속되는 것을 보여줍니다.

동영상 감상중에 GPU Observer로 보니 VPU의 사용률이 올라가는 것을 볼 수 있습니다.


비디오 인코딩 가속: Premiere Pro CS5

이 번 테스트의 마지막으로 비디오 인코딩을 확인해 보려고 합니다. Adobe에서 CS5가 나오면서 NVIDIA만 지원하는 가속 엔진(Mercury Playback Engine)을 보고 입맛만 다셨는데 약간이마나 그 맛을 봐 볼까 합니다.

기본적으로 Premiere Pro CS5는 위의 다섯 개 모델만 지원합니다. 다른 그래픽 카드를 사용하려면 리스트 파일 (cuda_supported_cards.txt)에 이름을 추가해 줘야 되죠.

리스트 파일에 GT 240을 추가해 주고난 후 정상적으로 인식한 과정입니다. 파일을 수정하기 전에 GPUSniffer를 실행하여 그래픽 카드 이름(붉은 색 박스 안)을 확인하고 리스트 파일에 추가해 주면 됩니다. (참고로 GPUSniffer.exe와 cuda_supported_cards.txt 파일은 모두 Premiere Pro CS5 설치 폴더에 있습니다)

Premiere Pro의 프로젝트 설정 창에서 Mercury 엔진의 GPU 가속이 설정되었음을 확인할 수 있습니다.

시퀀스를 내보내기할 때 사용한 설정입니다.

열심히 인코딩하는군요. ㅎㅎ CPU로만 인코딩할 때에 비해 대략 2배 조금 넘는 속도를 보여줍니다. PhysX에서와 비슷한 정도의 성능차이를 보여주는군요. GT 240의 성능이 이 정도이니 GTX 480 정도되면 상당한 성능이겠습니다. Premiere Pro로 영상 작업을 많이 하시는 분들이라면 지포스에 투자 좀 하셔야 될 듯! ^^

그런데 GPU-Z으로 모니터링 해 보니 생각보다 GPU Load가 낮습니다. 저 수치가 더 높아질 수 있는 내보내기 설정이 있을지도 모르겠다는 생각이 들더군요. 실제로 1080p 대신에 720p로 하면 GPU Load가 아주 낮더군요. 인코딩 과정에 있어서 일부만 GPU를 사용하고 CPU에 주로 부하가 걸리는 부분이 조금 아쉬웠습니다. Mercury 엔진의 내부 동작 메커니즘이 궁금해지더군요.

Premiere Pro 사용시 한 가지 문제점이 있는데 PhysX를 테스트하기 위해 제어판의 화면 해상도 설정에서 데스크탑을 확장하게 세팅했었는데 이 상태에서는 에러가 많이 발생합니다. Premiere Pro의 속도가 느려진다던지 종료가 안되는 문제가 있더군요. 그런데 데스크탑 확장을 해제하고 '1에만 바탕 화면 표시'로 변경해 주자 문제가 거의 없었습니다. 그래도 드물게 NVIDIA 그래픽 오류가 발생하곤 하던데 그 원인을 모르겠으며 오류가 발생하고 나면 가속이 안되는 듯 하여 리부팅했었습니다. 아무튼 Hybrid PhysX 환경이 Premiere Pro와의 상성이 좋지 않은 것인지 GT 240이 공식적으로 지원하는 카드가 아니라서 그런지는 몰라도 실제 작업환경으로는 그리 적합치 않아 보였습니다.


결론

ATI와 NVIDIA의 한 지붕 두 가족 구성은 대체로 훌륭하게 동작하는 듯 합니다. 비록 게임에서 테스트를 해 보지 못했기 때문에 장담할 수는 없지만 일단 FluidMark에서는 정상동작하는 것을 확인할 수 있었고 CoreAVC나 Premiere Pro를 통해 CUDA 엔진도 무난하게 동작함을 확인할 수 있었습니다. Premiere Pro는 다소 불안한 모습을 보여주긴 했지만 GT 240으로도 어느 정도 가속 능력을 체험해 볼 수 있어서 좋았습니다.

NVIDIA의 실수(?)로 인해서 간편하게 Hybrid PhysX가 가능하게 되었는데 곧 이어 등장한 정식 버전(257.21)에서는 막아버려서 사용을 못하게 됐다고 하니 필요한 분들은 업그레이드를 하지 말아야 겠습니다. PhysX System Software가 문제인데 PhsyX를 지원하는 새로운 게임이 나오면 업데이트 돼 버릴 수 있으니 말이죠. 이 것도 강제로 다운그레이드하면 해결될 것 같긴 한데 버전에 따라 문제를 일으키는 게임들도 있고 하니 개운치는 않네요. ㅎㅎ

PhysX를 지원하는 게임의 수가 많지 않은 관계로 Hybrid 환경을 제대로 즐기기엔 좀 아쉬운 상황이지만 GT 240 같은 여분의 카드가 있는 분이거나 메인 그래픽카드의 업그레이드를 고려하는 분이라면 Hybrid 환경도 괜찮다는 생각이 들었습니다. 평상시에 쓸 데 없이 전기만 먹고 있기 때문에 이 점이 조금 걸리긴 하지만 정 찜찜하다면 평상시엔 뽑아 뒀다가 PhysX 게임을 즐길 때만 꼽아서 쓰는 방법도 있을 것입니다. ^^

반응형