|
NVIDIA
GeForce GPU로 가속되는 GeForce PhysX! 
NVIDIA는
PhysX 물리엔진을 개발한 AGEIA사를 인수하면서부터 본격적으로 PhysX
물리엔진을 GPU로 가속하여 CPU로 가능하였던 것에서 더 나아가 물리연산의 새로운 가능성을 제시하고 있다.
NVIDIA는
PhysX 물리엔진을 GPU를 통해 가속함으로써 CPU로 가속하였던 부분과
비교하여 더 많은 물리연산 처리와 효과들을 제공할 수 있는 것을 홍보하고
있고 실제로 GPU는 CPU보다 많은 물리연산을 처리할 수 있는 것으로
알려지고 있어 앞으로의 게임들에 적용될 NVIDIA PhysX는 발전 가능성이 높다.
NVIDIA는
GPU를 이용한 병렬 컴퓨팅을 가능하게 하기 위해 CUDA 언어를 소개하고
있는데 NVIDIA PhysX 역시 물리엔진을 GeForce GPU로 가속하기 위해 CUDA
언어를 이용한다. 이는 경쟁 그래픽 제조사보다 빠른 대응이고 AGEIA를 인수함으로써 가능해진 부분이기도 하다.
여기에서는
CUDA를 이용하고 있는 NVIDIA PhysX의 특징들과 이들을 지원하고 있는
GeForce 그래픽 시리즈 등을 알아보았다.
PhysX를
이용한 효과 구현

[PhysX를
이용한 효과 구현]
NVIDIA
PhysX를 통해 구현이 가능한 것들은 AGEIA PhysX 카드들이 지원했던
것들로 모두 GeForce 8/9 시리즈와 GTX 280/ 260, 내장 그래픽 코어 (GeForce 8200/ 8300 등) 등에서도
구현이 가능해졌다. PhysX 물리연산은 주로 게임 내에서의 사실적인
효과들을 표현하는데 사용되며, 파티클 효과 (먼지나 연기 등의
효과), 물의 유연한 흐름 (Fluid)과 괴물의 부드러원 몸체 (Soft Bodies)
등의 표현이 가능하고 관절 (Joints) 표현, 옷감 (Cloth)이나 머리카락의
움직임을 이전보다 사실적으로 묘사해줄 수 있다.
NVIDIA
PhysX 물리엔진을 도입함으로써 PC 사용자들이 쉽게 접할 수 있는 게임들에서
기존보다 더욱 더 화려해진 물리효과 등을 통해 게임의 재미를 더해줄 수
있게 된다. 하지만, PhysX 물리엔진을 게임 개발사에서 게임에 적용하지 않으면 이를
사용할 수 없기 때문에 DirectX 10 지원처럼 게임 제작사들과 꾸준한
협력이 중요하다.
또한, 얼마나 많은 게임 개발사에서 PhysX 물리엔진을 도입하여 사용하는지도 물리엔진의 표준화에 중요한 부분으로 작용할 수 있게 되므로 경쟁사보다 빠르게 GPU를 이용한 PhysX 물리엔진 가속을 도입한 NVIDIA 입장에서는 이를 위한 빠른 시장 장악이 중요한 요소로 작용된다.
NVIDIA PhysX의 장점은 GPU를 이용한 하드웨어 가속!

NVIDIA
PhysX는 경쟁사인 인텔과 AMD가 지원하는 물리엔진으로 잘 알려진 Havok이 CPU를 이용하는 것과
달리 물리연산을 GPU를 이용한 하드웨어 가속이 가능함을 장점으로 내세우고
있다. 인텔이 인수한 Havok 물리엔진은 현재까지는 CPU를 통한 물리연산 가속이 이루어지고 있는 것과 비교하여 NVIDIA PhysX는 빠르게 GPU를 이용한 물리엔진 가속을 도입했다. 물론, NVIDIA PhysX 역시 GPU로만 물리엔진을 가능한 것이 아니라 멀티 코어 CPU를 이용한 물리엔진 가속도 가능하다.
NVIDIA와 그래픽으로 경쟁하는 AMD는 Radeon HD 4800 시리즈 발표 당시 GPGPU를 통해 Havok 물리엔진의 GPU 가속 가능성에 대해 언급이 있었지만, NVIDIA가 PhysX 지원에
적극적으로 나서고 있는 것과 비교하여 게임이나 여러 가지 지원에서 아직까지
구체적인 지원에 대한 부분은 가시적으로 나타나지는 않고 있다.

GPU를
이용한 PhysX 물리엔진 가속의 장점은 CPU보다 더 많은 효과들과 처리
성능을 제공함으로써 이전보다 사실적으로 현실의 상황처럼 게임 환경을
만들 수 있다는 점이다.
지금까지
잘 알려져 있듯이 CPU와 GPU의 물리연산 성능은 부동소수점 연산 부분에서
GPU가 압도적으로 높은 연산 성능을 가진 것과 마찬가지로 물리연산
각 부분에서의 처리 능력 역시 고성능 GPU의 경우 이미 4개의 코어를
가진 CPU의 처리 성능을 훨씬 넘어서고 있다.
NVIDIA
플래그쉽 그래픽 카드인 GeForce GTX 280은 쿼드 코어보다 60배 많은
240개의 코어와 부동소수점 연산 부분도 9.7배나 빠르며, Fluids와 Soft
Bodies, Cloth의 연산에서도 각각 15배, 12배, 13배에 이르는 높은 처리
성능을 갖추고 있어 CPU보다 물리연산에서 더 유리한 것을 알 수 있다.
이는 GPU의 병렬 컴퓨팅처럼 물리엔진 가속에도 GPU를 도입할 경우 그래픽 가속처럼 큰 효과를 거둘 수 있다는 것을 말해주고 있다.
NVIDIA PhysX 가속은
GPU와 CPU, AGEIA PPU를 모두 이용 가능!

인텔의
Havok이 CPU를 이용한 물리연산에 중점을 두고 있어 범용적인 측면에서
유리한 것이 사실이지만, NVIDIA PhysX 역시 GeForce 8/ 9 시리즈와
GeForce GTX 280/ 260 그래픽 카드, 내장 그래픽 코어를 가진 사용자들이라면 누구나 쉽게
사용할 수 있는 장점이 있다. 단, 그래픽 카드의 메모리는 최소 256MB가 필요한 것으로 NVIDIA는 밝히고 있다.
이미 많은 GeForce 시리즈들이 판매되고
사용자층을 확보하고 있기 때문에 별도의 하드웨어를 구입해야 했던
AGEIA PhysX 가속기 (PPU, PhysX Processing Unit) 등보다 유리한
위치에 있다고 볼 수 있다. 또한, NVIDIA PhysX는 멀티 코어 CPU들로도
가속이 가능하다. 다만, CPU 가속의 경우 GPU나 전용 물리엔진 가속기와 같은 하드웨어로 가속되는 것보다 처리
성능에서는 큰 차이를 보여주고 있다. 또, NVIDIA PhysX는 물리 시뮬레이션 부분을 CPU로 다른 부분을 GPU가 분배하여 물리연산 성능을 높여줄 수 있다.

NVIDIA
PhysX는 또한, 개발자를 위한 SDK도 마련해주고 있으며, APEX나 NaturalMotion
등과 같은 써드 파티들의 요소를 추가하고 있어 게임 개발자들은 PhysX
효과를 게임 내에서 만들고 라이브러리 등을 보다 쉽게 사용할 수 있도록
해준다. 또, 게임 내에서 PhysX 연산을 호출할 경우 HAL (Hardware Abstractioin
Layer)에서 DirectX 와 같은 API 들을 호출하고 CUDA/ GPU 등과 같은
다양한 하드웨어 장치들을 통해 PhysX 연산을 지원할 수 있게 만들어준다.
현재
NVIDIA PhysX는 x86 CPU나 게임기 등에 사용되는 Cell CPU, AGEIA PPU,
NVIDIA CUDA/ GPU를 이용한 하드웨어의 사용이 가능하여 다양한 플랫폼에
적용이 쉽도록 만들어져 있다.
멀티
플랫폼에 적용 가능한 NVIDIA PhysX!

[다양한
플랫폼에 적용 가능한 NVIDIA PhysX]
NVIDIA
PhysX의 또 다른 장점은 바로 다양한 플랫폼에 적용이 가능하다는 것이다.
NVIDIA PhysX가 게임을 즐기는 유저들을 위해 사용되는 만큼 PC 게임들에
적용되는 것은 물론, Xbox 360/ PS3, Wii 등과 같은 게임기들에도 쉽게
적용이 가능해졌다.
인텔이
인수한 Havok 물리엔진 역시 PC를 비롯하여 Xbox 360 등과 같은 게임기들에도
적용이 가능한 것으로 알려진 상태다. AMD가 Havok 물리엔진을 GPGPU를
통해 가속해준다면 또 다른 경쟁이 이루어질 것으로 예상된다.
하지만, NVIDIA는 PhysX를 적용한 140 여개가 넘는 타이틀들을
만들어나가고 있을 만큼 PhysX 지원에 적극적인 모습을 보여주고 있어
AMD가 Havok 물리엔진을 GPU로 가속하더라도 현재의 DirectX 10.1 지원에서처럼 NVIDIA를 당장 앞서기는 힘들 것으로 보여진다.
NVIDIA
PhysX (GeForce PhysX) 적용 방법

NVIDIA
PhysX는 GPU를 이용한 가속을 통해 CPU보다 더 많은 물리연산 및 효과의
적용이 가능한 것을 특징으로 들고 있는데 NVIDIA GeForce 8/9 시리즈와
GTX 260/ 280 GPU 등을 이용한 가속 방법으로는 모두 3가지를 제공하고
있다.
첫 번째는
싱글 GPU 하나만 있을 때 (Standard)로 PhysX 가속을 지원하는 GPU일
경우 그래픽 부분 렌더링과 함께 PhysX 연산을 병행하는 것이다.
두 번째는
멀티 렌더링 방식 (SLI)으로 동일한 GPU 2개를 이용하여 성능을 높일
수 있는 NVIDIA SLI 구성일 때다. SLI 구성에서는 싱글 GPU 구성과 마찬가지로
SLI가 구성된 두 개의 GPU가 그래픽 렌더링과 PhysX 연산을 균형있게
나누어 사용하는 방식으로 진행된다.
마지막
하나는 멀티 GPU 구성 (Multi-GPU)으로 SLI와는 달리 하나의 고성능
그래픽 카드와 성능이 상대적으로 낮은 그래픽 카드를 업그레이드 등으로
여분을 가지고 있을 때 구성할 수 있는 방법이다. 이 때는 고성능 그래픽
카드는 그래픽 렌더링 등에 사용하고 성능이 낮은 그래픽 카드는 PhysX
연산에 활용할 수 있다.
NVIDIA
PhysX를 지원하는 GPU!
NVIDIA
GeForce 시리즈 중 PhysX 물리엔진을 가속할 수 있는 GPU들은 통합 쉐이딩
아키텍처를 적용한 DirectX 10 지원 GPU들이 중심이 되고 있다. 이전
GeForce 시리즈들은 처리 성능과 구조가 현재와 달라 이를 지원하지
않는 것으로 알려지고 있다.


NVIDIA
PhysX를 지원하는 GPU들은
데스크탑용 GeForce 8/ 9 시리즈와 GTX 280/ 260, 그리고 내장 그래픽인
GeForce 8300/ 8200/ 8100 GPU들이 지원하고 있다. 최근 공개되고 있는
드라이버의 경우 GeForce 8200 급 내장 그래픽을 포함하고 있는 nForce
780a SLI의 경우 지원 목록에 포함되지 않고 있다. NVIDIA PhysX를 지원하는
드라이버는 ForceWare 177.xx 이상의 버전을 이용하면 되고 256MB 이상의 메모리를 가진 PhysX 지원 GPU를 보유하고
있을 경우 GeForce GPU를 이용한 PhysX 가속 성능을 확인할 수 있다.
NVIDIA
PhysX와 CUDA에 대한 내용은 NVIDIA
PhysX와 CUDA Zone, 게임을
넘어서는 GPU, NVIDIA GeForce GTX 200 시리즈를 참조하기 바라며, PhysX와 물리엔진
등의 자세한 내용은 지난 기사인 게임을
보다 사실적으로!!, 물리 엔진의 업그레이드와 문제과 [게이밍
벤치] Ghost Recon : Advanced Warfighter를 참조하자. |