|
이번에는 R600 코어를 사용하면서 통합
쉐이더 아키텍처가 적용되고 경쟁사보다 많은 320개의 Stream Processor를 가진다고 언급하고 있는 만큼 쉐이더
처리 능력을 확인해 보았다.
Shader 연산 성능 측정
DirectX10으로 넘어오면서 GPU를 통한 Shader 연산 능력이 증가되었고 쉐이더 연산 능력은 GPU의 성능에서
중요한 부분을 차지한다. GeForce 8800 GTX는 DirectX 10 지원의 타이틀과 함께 128개의 Shader 연산 유닛을 탑재하고
쉐이더 클럭을 증가시켜 이전 세대의 그래픽 카드들보다 높은 쉐이더 처리 능력을 갖고 있는 것이 특징이다.
함께 비교할 HD 2900XT는 쉐이더 클럭이 코어 클럭과 동일하게 동작되는 것으로 알려지고 있고 대신 320개의
Shader 연산 유닛을 탑재하고 있어 좋은 비교가 될 수 있다. 하지만, 서로 지향하는 부분이 다른 만큼 기존의
ShaderMark v2.1에서는 상이한 결과가 나타날 수도 있다. 그러한 이유로 AMD에서 제공한
ShaderTestDX10 테스트 프로그램을 통해 5-Way의 슈퍼스칼라 유닛에 최적화된 HD 2900XT의 쉐이더 처리
능력을 살펴보았다.
|
Pixel Shader 3.0 |
HD 2900XT |
GF 8800 GTX |
GF 8800 GTS
640MB |
Radeon X1950XTX |
|
Diffuse Lighting |
2580 |
3902 |
2742 |
2178 |
|
Direction Light
Shader (phong) |
2187 |
2941 |
2143 |
1898 |
|
Point Light Shader (Phong) |
2223 |
2958 |
2080 |
1940 |
|
Spot Light Shader (Phong) |
2060 |
2528 |
1780 |
1626 |
|
Anisotropic Lighting |
2310 |
3146 |
2168 |
1888 |
|
Fresnel Reflections |
2040 |
2759 |
1950 |
1771 |
|
Car Surface Shader |
1540 |
2073 |
1460 |
1151 |
|
Environment Mapping |
2846 |
4627 |
3348 |
2333 |
|
Environment Bump
Mapping |
2188 |
3955 |
2858 |
1834 |
|
Bump Mapping |
2009 |
2796 |
2000 |
1688 |
|
Shadowed Bump Mapping |
964 |
1600 |
1086 |
856 |
|
Veined Marble Shader |
863 |
2074 |
1418 |
792 |
|
Wood Shader |
1190 |
2194 |
1545 |
1041 |
|
Thle Shader |
968 |
1197 |
969 |
865 |
|
Refraction and
Reflection Shader with Phong Lighting |
1091 |
1348 |
905 |
1071 |
|
BRDF-Phong/Anisotropic
Lighting |
1501 |
2119 |
1469 |
1349 |
ShaderMark v2.1의 테스트 항목중 Shader Model 3.0과 관련된 명령어를 이용한 그래픽 기법들을
적용하였을 때의 결과를 비교한 것이다. 서로가 지향하는 부분 및 처리 방법에도 차이를 갖고 있기 때문에 Shader로
다양한 그래픽 처리 기법을 간단한 오브젝트에 적용하여 성능을 측정하였을 때는 차이를 보여주고 있다.
이번 결과는 높은 쉐이더 클럭과 연산 능력을 가진 8800GTX가 유리하였으며, HD 2900XT의 결과는 8800GTX
640MB와 유사한 수준의 처리 능력을 보여주었다.
|
performance impact of floating point
filtering |
|
Pixel Shader 3.0 |
HD 2900XT |
GF 8800 GTX |
GF 8800 GTS
640MB |
Radeon X1950XTX |
|
High Dynamic Range Shader - low
quality version without filtering |
713 |
229 |
228 |
385 |
|
High Dynamic Range
Shader - high quality with fp filtering |
785 |
229 |
227 |
440 |
|
High Dynamic Range
Shader - high quality without fp filtering |
558 |
228 |
227 |
280 |
이 테스트는 HDR Shader를 통해
FP 필터링을 적용한 경우와 그렇지 않은 경우의 성능을 알아보는 테스트지만 FP 필터링 적용 유무에 따라 Gaussian
필터를 조절하여 결과물은 큰 차이가 없도록 만든 테스트이다.
HD 2900XT 이전 세대보다 HDR
처리 성능을 높였기 3가지 테스트 모두에서 상당히 높은 수준의 처리 능력을 보여주고 있다. 8800 시리즈의 경우는 이전
8800GTX 리뷰에도 나타났듯이 ROP 표현의 문제나 드라이버 등에 의한 문제로 추측되었지만, 이를 별도로 테스트할 수
있는 프로그램의 부재로 정확한 것은 확인할 수 없는 상황이다.
|
performance impact
of multiple render targets |
|
Pixel Shader 3.0 |
HD 2900XT |
GF 8800 GTX |
GF 8800 GTS
640MB |
Radeon X1950XTX |
|
Edge Detection And
Hatching Shader using 1 RT and 2 Passes |
362 |
595 |
408 |
252 |
|
Edge Detection And
Hatching Shader using 2 RTs and 1 Pass |
370 |
600 |
411 |
258 |
Pixel Shader 3.0에서 지원되기 시작한 MRT(Multiple Render Targets;다중 렌더 타겟)과 관련된
테스트이다. MRT는 필터링(filtering) 과 버텍스 작업을 줄이기 위한 향상된 라이팅 알고리즘이 가능하며,
최소의 비용으로 더 많은 광원 효과를 적용할 수 있기 때문에 GPU의 연산 성능을 극대화시킬 수 있는 장점이 있다.
테스트 방법은
동일한 오브젝트 두개를 각각 하나씩 개별적으로 렌더링을 하거나 MRT를 이용해 한번에 동일한 오브젝트 두개를 생성하는
방식이 사용되며 이를 통해 MRT를 적용했을 때와 적용하지 않았을 때의 성능을 비교할 수 있다.
테스트 결과를
살펴볼 수 있듯이 DirectX 9 기반에서 GeForce 8800 시리즈는
MRT를 이용해 한번에 4개까지 동시에 처리, DirectX 10에서는 8개까지 처리가 가능하기 때문에 HD
2900XT보다 높은 성능을 얻을 수 있다.
3DMark06의
Shader 연산 성능 비교
|
3DMark06 Future
Test |
HD 2900XT |
GF 8800 GTX |
GF 8800 GTS
640MB |
Radeon X1950XTX |
|
Pixel Shader
(fps) |
489.902 |
699.330 |
478.752 |
433.113 |
|
Vertex Shader Simple
(Mvertices/s) |
313.658 |
236.384 |
222.205 |
186.934 |
|
Vertex Shader Complex
(Mvertices/s) |
192.956 |
108.906 |
96.962 |
61.958 |
|
Shader Particles
(SM3.0) (fps) |
143.596 |
167.001 |
132.696 |
- |
|
Perlin Nosie (SM3.0)
(fps) |
283.783 |
249.580 |
165.714 |
157.891 |
3DMark06은 Vertex 및 Pixel Shader 를 모두 테스트가 가능한 테스트 프로그램으로 Shader Model 2.0에 맞춰 구현되고 있으며, 게임들에 적용되는 물리엔진을 GPU를 통해 처리할 때의 성능을 살펴보는 Shader
Particles나 산술 연산과 텍스처 관련 연산 비율을 확인할 수 있는 Parlin Nosie는 Shader Model
3.0 기반에서 구현된다.
HD 2900XT에서는 이전 세대에서
Vertex Texture Fetch의 부재로 Shader Particles 테스트를 진행할 수 없었는데 HD
2900XT는 이 부분을 추가하여 처리 성능을 높이고 있다. 이번 테스트 결과에서 Pixel Shader 테스트 부분은
이전 세대의 X1950XTX와 비슷한 수준의 성능을 보여주었지만, Vertex Shader 처리 부분은 경쟁 제품들보다
앞선 성능을 보여주었다. 물리 엔진을 GPU로 처리하는 부분은 8800GTS 640MB와 비슷한 수준을 나타냈지만, 산술
연산과 텍스처 연산 비율을 확인 가능한 테스트에서는 HD 2900XT의 처리 성능이 더 뛰어났다.
텍스쳐
필터링의 성능 비교
|
3DMark06 Future
Test |
HD 2900XT |
GF 8800 GTX |
GF 8800 GTS
640MB |
Radeon X1950XTX |
|
Single Texture (Mtexels/s) |
7912.025 |
6913.937 |
5143.582 |
6352.758 |
|
Multi Texture (Mtexels/s) |
11779.104 |
17654.443 |
11900.595 |
10326.439 |
GPU가
처리하는 가장 기본적인 작업인 텍스처링 작업을 얼마나 빠르게 처리할 수 있는지를 측정하는 테스트로 고정 기능인 텍스처
유닛의 개수에 좌우되기 때문에 Shader 유닛의 성능에 크게 영향을 받지 않는다.
G80에는 각 그룹당 4개의 텍스쳐 어드레싱 유닛과 8개의 텍스처 필터링 유닛이 포함되어
있고, 8 그룹이므로 단순 계산해도 64개나 되는 셈이다. 그러나, HD 2900XT에 사용된 R600에는 텍스처 필터링
유닛이 총 16개, 텍스처 어드레스 유닛이 32개가 제공된다고 언급되고 있다. 처리 능력으로 보았을 때 싱글에서는 HD
2900XT가 멀티 텍스처 처리 능력에서는 8800 시리즈가 우세함을 보여주었다.
ShaderTestDX10
앞서 쉐이더 처리 능력을 살펴보았는데
G80의 경우 Vertex 테스트의 경우 R600이 우수하게 나타났고 나머지 처리 부분에서는 대부분 G80이 우세하였다고
볼 수 있다. 하지만, AMD에서는 슈퍼스칼라 구조로 변경된 R600의 경우 단일 종속 인스트럭션, 즉, 하나의 결과가
다음 인스트럭션에 사용되는 경우에는 이를 제대로 활용하지 못하여 저조한 성능이 나타났다.
AMD는 이를 위해 슈퍼스칼라 구조를
제대로 활용할 수 있는 샘플인 ShaderTest를 제공하였고 이는 DirectX 10 기반으로 된 프로그램이다. 이를
통해 실제 테스트를 진행하였다. 테스트에는 스칼라 명령에 의존적인
Float MAD Serial, 벡터 명령 중 Flaot4 벡터 명령어에 관련된 Float4 MAD parallel,
스페셜 펑션 AMD의 5번째 구성에 관련된 부분인 Float SQRT Serial, 5가지 서로 다른 타입의
스칼라 연산을 다루는 Float 5-instruction issue, DirectX 10 정수 연산에 관련된 int MAD
Serial, DX10 벡터 연산에 관련되 int MAD parallel의 6가지 항목을 Pixel과 Vertex
Shader로 나뉘어 테스트를 진행하게 된다.
|
AMD ShaderTestDX10 |
HD 2900XT |
GeForce 8800 GTX |
|
Pixel Shader |
Vertex Shader |
Pixel Shader |
Vertex Shader |
|
Float MAD Serial
(Billions of Insturctions/s) |
47.22 |
47.35 |
136.83 |
7.77 |
|
Float MAD Parallel
(Billions of Insturctions/s) |
58.05 |
48.12 |
28.46 |
7.56 |
|
Float SQRT Serial
(Billions of Insturctions/s) |
47.21 |
47.37 |
20.98 |
7.86 |
|
Float 5 - instruction
issue
(Billions of Insturctions/s) |
224.60 |
225.60 |
56.12 |
19.65 |
|
int MAD
Serial
(Billions of Insturctions/s) |
23.65 |
23.63 |
30.33 |
7.42 |
|
int MAD
Parrallel
(Billions of Insturctions/s) |
11.47 |
11.69 |
4.64 |
3.60 |
테스트 결과 R600의 슈퍼스칼라 유닛
구조에 맞게 테스트를 진행한 이번 테스트는 AMD의 주장대로 최악의 시나리오에 속하는 Float MAD Serial은
8800GTX의 픽셀 쉐이더 부분의 우세를 보였고 버텍스 쉐이더 부분은 이전과 마찬가지로 HD 2900XT보다
떨어졌다. 5가지의 스칼라 명령어를 동시에 다루는 경우는 HD 2900XT가 우세함을 보여주었다. 이는 5-Way로 구성된
슈퍼스칼라 유냇의 병렬 구성에서 유리함을 그대로 보여주는 결과라고 볼 수 있다. |