3. Hardware Optimized Vertexilizer™ Engine
제목 없음
|
Vertexilizer™ Engine은
Xabre 홈페이지에 가면 Hardware Optimized Vertexilizer Engine라고
나와있어 그냥 생각하기엔 Xabre600부터 드디어 Vertex Shader엔진을
탑재했구나라고 생각할 수 있게 되어있다. 하지만 글의 초반에서
설명했듯이 Xabre시리즈 모두 Vertexilizer™ Engine 을 지원하는
것으로 나와있는데 기존 Xabre400에서 설명드렸듯이 기존 Xabre시리즈가
모두 Vertex Shader엔진을 탑재하지 않고 있는 것을 보면 역시 Xabre600도
하드웨어적으로는 Vertex Shader엔진을 탑재하지 않고 있다는 것을
알 수 있다.
그럼
Vertexilizer™ Engine라고 하는 이유는 무엇일까?.. 그건 타 제품과는
조금 다른특별화된 기능을 제공하기 때문인데 아래 Vertexilizer™ Engine의
설명을 들으면 쉽게 이해가 갈 것이다.

위의
이미지는 하드웨어적으로 Vertex Shader를 지원하지 못하는 그래픽카드에서
Vertex데이터의 처리를 어떻게 진행하는지를 나타내는 그림으로
SiS의 Vertexilizer™ Engine에 설명과 함께 쉽게 나와있는데 위의
차트를 설명드리지면 소프트웨어적으로 Vertex Shader를 지원하는
경우 이부분의 처리를 CPU를 통해 에뮬레이트시켜 처리하도록 되어있으며
우선 Vertex 데이터가 Vertex Buffer에서 읽어지면 Runtime Vertex
Shader에서 처리하여 Temp Buffer #1에 저장된후 CLipper에서 Temp
Buffer #1에 저장된 데이터를 읽어다 처리후 Temp Buffer에 저장하게
된다. 그후 GPU드라이버를 한번 거쳐 마지막에 GPU에서 처리된 데이터를
마무리하게 되는데 이 과정에 3번의 읽기와 3번의 쓰기가 반복되게
된다고 하며 이로인해 막대한 양의 Vertex데이터를 처리시 엄청난
양의 메모리 대역폭이 필요하게되어 상당히 비효율적인 처리가 이루어진다고
한다.
그럼
Vertexilizer™ Engine은 어떤 기능을 하게되어 기존의 소프트웨어적인
처리와 다르다고 광고하는 것일까?.. 아래 그림을 보자.

위의
이미지가 Vertexilizer™ Engine의 기능을 설명하기 위한 차트인데
위의 일반적인 소프트웨어적인 처리에서는 모든 Vertex Shader기능의
처리를 위해서는 CPU로 에뮬레이트 시켜 모든 명령을 CPU에서 담당하게
되는데 Vertexilizer™ Engine에서는 해당 데이터를 처리하기 위한
명령들중 CPU가 아닌 GPU에서 보다 빠르게 처리할 수 있는 대부분의
명령어들을 GPU에서 처리시키며 CPU에서 보다 빠르게 처리할 수
있는 몇몇 명령들에 대해서는 CPU에서 지원하는 멀티미디어 인스트럭션셋인
SSE나 SSE2, 3DNow!등을 지원하여 기존에 모든 처리를 CPU에서 에뮬레이트시키는
것과는 다르게 보다 좋은 효율로 데이터의 처리가 가능하다고 한다.
여기까지
Vertexilizer™ Engine 아니 Hardware Optimized Vertexilizer Engine에
대해서 알아보았는데 기존의 일반적으로 하드웨어 Vertex Shader엔진을
장착하지 않는 제품들보다는 좀더 높은 효율을 나타낼 수 있을 것으로
보여 Xabre600의 Vertex Shader성능에 대해 상당히 궁금해 지는데
SiS에서는 Pentium4 2.8Ghz에서는 Geforce4 Ti4200과 동등한 Vertex
Shader성능을 나타낼 수 있다고 한다.

[SiS의
내부 테스트 결과표. 3DMark2001SE의 Vertex Shader항목의 결과이다.]
하지만
위의 그래프처럼 진짜 2.8Ghz이상의 CPU를 사용하며 Geforce4 Ti4200보다
빠를까?.. 이에 대해서는 3DMark2001SE의 Vertex Shader테스트가
어떻게 적용되는지와 Vertexilizer Engine이 어떤방식으로 적용되는지를
생각해보면 대충 알 수 있는데 엄청난 양의 데이터를 처리할 경우
GPU는 Vertex데이터 뿐만 아니라 여타 다른 데이터의 처리를 하게
되는데
이부분에서 동시에 Vertex데이터를 처리하게되면 GPU는 해당 Vertex데이터를
에뮬레이트시켜 처리할 여유가 없어진다. 그리고 3DMark2001SE의
Vertex Shader 테스트는 Vertex Shader부분만을 집중적으로 테스트하기
위해 일반적인 3D어플리케이션에서 처리하는 명령어 및 데이터의
처리가 줄어들게되어 GPU에서는 Vertex데이터를 에뮬레이트 시킬
수 있는 여유가 생기게 된다.
따라서
SiS에서 주장하는 위의 성능테스트 결과는 Vertex Shader부분만을
중점적으로 테스트하는 3DMark2001SE의 Vertex Shader 테스트에서만
나타날 수 있는 결과인데 이미 말했듯이 실제 어플리케이션에서는
GPU의 여유폭이 없어지기에 위의 결과만큼의 성능향상은 나타낼
수 없을 것이다. 이 부분에 대해서는 3DMark2001SE의 Advance Pixel
Shader와 Pixel Shader항목의 차이를 비교해서 알아볼예정이다.
|
|