VS 3DMark2000
HardWareT&L VS SoftWareT&L VS SSE


パイプラインの最適化によるパフォーマンスの違いを検証!

MadOnionより、3DMarkのDX7対応版 3DMark2000がリリースされました。
HardWareT&L対応でようやくGeForce本領発揮か!?
ブツはココ、19MB↓

3DMark2000.JPG


1・HardWareT&L VS SoftWareT&L VS SSE
パイプラインの最適化によるパフォーマンスの違いを検証!

《別ページ》
2・Coppermine VS Athlon @ HardWareT&L

CoppermineとAthlon 接戦!
3・GeForcePro VS GeForce VS TNT2 VS G400 @ SSE
GeForce/GeForcePro速過ぎ!
4・GeForcePro VS Geforce @ 最速設定
GeForceProH・T&Lで本領発揮6000オーバー(^^;;
5・SDRAM VS DDR-SGRAM @ 同クロック
GeForceProがGeForceと同じクロックだったら!?
6・DDR&NewAMD751S VS SDR&DRAMD751
NewAMD751Super Bypassは3DMark2000を加速するか!?
また、
H/T&LDDRGeForceに以外な死角が!!
7・GeForceリファレンスドライバ比較(継続更新)
リファレンスドライバ、最新・未公開を含む9バージョンをテスト
8・Athlon&GeForceDDR AGP*1 VS AGP*2
AGP倍率の違いによる3DMark2000のスコアを比較!




ここでは、色数(16bit/32bit)及び、GeForceのハードウエアT&L、PentiumIIIのSSEによるT&L、x87によるT&L
CPUオプティマイズの違いによるパフォーマンスを検証します。

Frame Buffering Modeで、シングル/ダブル/トリプルによるスコアの違いは無かったので、デフォルト(トリプル)
での測定です。ちなみにシングルでは、フラッシュが激しくて観賞に耐えません。


《環境》

CPU
マザー
メモリ
VideoCard
解像度/色数
VSync

Coppermine 600E@800
ASUS P3B-F(Bios1.004)
128MB(2-2-2
Creative 3DBlaster GeForce145/200(リファレンスVer3.53)
1024x768/16bit、32bit
Off



《CPU Optimization (3D pipelines)》
下記オプションのうち、D3D Software T&L、D3D HardWare T&L、Intel(r) PentiumIII(r)
の3タイプを比較します。

D3D Software T&L

x86CPU x87FPU Optimiz(全CPU)

D3D HardWare T&L

x86CPU x87FPU Optimiz & HardWare T&L(全CPU)

Intel(r) PentiumIII(r)

Intel Pentium III Optimiz(Pentium III only)

3DNow!

AMD 3DNow! Optimiz(K6-2, K6-III or Athlon)

AMD Athlon(tm)

AMD Athlon Optimiz(Athlon only)


Intel(r) Pentium III(r)/3DNow!/AMD Athlon(tm)が、HardWare T&Lを使うのか気になりますが、
ドキュメント上は明記されていませんので、ベンチ結果から推理したいと思います。


《3DMark Overall Score &  CPU Speed》
3DMark2000b.JPG

Overall Scoreは、Game1とGame2の結果を示します
CPU SpeedもGame1と2を使って計測されているので、先ずはこの2つを比較して見ます。
(CPU Speedは、16bitのみスコアが表示されるようです)

計算式

Overall Score

(Game1LowFPS + Game1MediumFPS + Game1HighFPS
+ Game2LowFPS + Game2MediumFPS + Game2HighFPS) * 3

CPU Speed

16bit640x480にて(Game 1 FPS + Game 2 FPS) * 5


結果

3D marks/CPU 3D marks

Overall Score

CPU Speed

16bit Intel(r) PentiumIII(r)

5040

349

16bit D3D HardWare T&L

4824

430

16bit D3D Software T&L

3734

252

32bit Intel(r) PentiumIII(r)

3638

N/A

32bit D3D HardWare T&L

3337

N/A

32bit D3D Software T&L

2905

N/A


1ALLCPU.gif

この結果で面白いのはOverall ScoreでPentiumIII最適化が最も速いことです。
PentiumIII最適化でも、HardWare T&Lを使っているのでしょうか?
しかし、不思議なことに、CPU SpeedではHardWare T&Lが最も速いのです。
PentiumIII最適化がHardWare T&Lを使っているならCPU Speedもトップになってよさそうですが、
そうではありません。

考えられることは2つです。
 @PentiumIII最適化ではHardWare T&Lも使うが、CPU SpeedのみSSEを使う。
 APentiumIII最適化ではSSEのみ使い、これがGeForceのHardWare T&Lより速い。

しかしAは、他のベンチ結果などからも、考えにくい気がします。
ここでは「@ではないか」ということにしておきます。
(CPUのクロックを落していけば傾向が特定できるカモ知れません)

@ではないかという考察は、どうやら誤りのようです。XJ-Sさんのご指摘により、HELPを見ると、
CPU Speedは、周辺の影響を最小に抑えるために、640x480の最小解像度でGame1,2を実行した
結果で算出されるとなっています。

つまり、この結果からは、大量データ+T&LではSSEが速く少量データ+T&LではH・T&Lが速い
いうことが言えると思います。



《 Game 1 - Helicopter &  Game 2 - Adventure》
ヘリコプターシュ−ティングと、Unrealを思わせる3Dフィールドのベンチです。
各々、デティールHigh、Mid、Lowの3通りのテストを行います。
Helicopterでは木の数、Adventureでは人の数等でポリゴン数を変えています。

Game 1 - Helicopter
Heri.JPG 
データ

Detail Level

Objects

Lights

Triangles

Vertices

Textures

Low

23

4

6 997

11 601

2.74 MB

Medium

37

5

13 520

22 875

2.87 MB

High

39

5

53 026

71 292

2.81 MB


Game 2 - Adventure
Ad.JPG
データ

Detail Level

Objects

Lights

Triangles

Vertices

Textures

Low

22

4

9 392

16 356

3.14 MB

Medium

33

7

17 084

24 023

3.31 MB

High

44

8

29 941

36 983

3.41 MB


結果

FPS

Game 1 - Helicopter

Game 2 - Adventure

16bit Intel(r) PentiumIII(r)

101.7/70.3/36.0

108.2/64.9/38.9

16bit D3D HardWare T&L

100.5/69.7/33.4

91.2/65.9/41.3

16bit D3D Software T&L

70.4/48.9/25.7

88.2/49.3/28.7

32bit Intel(r) PentiumIII(r)

68.6/49.7/25.2

64.7/56.4/38.7

32bit D3D HardWare T&L

63.9/46.0/23.2

58.3/51.2/35.6

32bit D3D Software T&L

52.5/38.2/20.3

58.0/45.4/27.6


1GAME12.gif

ほとんどのケースで、PentiumIII(r) > HardWare T&L > Software T&Lという順位が成り立ちます。
しかし、それに反した興味深い点もいくつかあります。
 @32bitのGame 2 - AdventureのLowデティールで、Software T&Lの58.0とHardWare T&Lの58.3で差が無い
 A16bitのGame 2 - AdventureのMidとLowのスコアが、PentiumIII(r)とHardWare T&Lで逆転している。
 BGame 1 - HelicopterではPentiumIII(r)とHardWare T&Lの差がほとんど無い

もしかしたら、Game 1 - Helicopterは、ポリゴン数が多いがテクスチャデータ量が少ないためT&Lの性能が大きく影響し、
Game 2 - Adventureは逆にポリゴン数が少なく、テクスチャデータ量が多いので、転送能力が大きく影響するといった
特徴があるのかも知れません。
(多くの解像度でテストした結果があれば解明できるでしょう)


《 Fill Rate》
Fill.JPG

Single-Texturing/Multi-Texturingのスコアを比較します。

アルゴリズム

Single-Texturing
(1処理/4手続))

@ layer 4 additive
A layer 3 additive
B layer 2 additive
C layer 1 copy

Multi-Texturing
(1処理/1手続)

@ layer 1 additive + additive + additive + copy


結果

MTexels/s

Single-Texturing

Multi-Texturing

16bit Intel(r) PentiumIII(r)

349.0

572.4

16bit D3D HardWare T&L

349.0

572.3

16bit D3D Software T&L

349.0

572.4

32bit Intel(r) PentiumIII(r)

167.4

344.0

32bit D3D HardWare T&L

167.4

344.0

32bit D3D Software T&L

167.4

344.0


1FILLRate.gif

結果は色数による違いのみで、誤差の無い非常に精度の高い結果です。
Single-Texturingでは32bitと16bitでちょうど2倍の結果ですが、Multi-Texturingでは1.66倍です。
これは16bitのMulti-Texturingが、GeForceのパフォーマンスの限界を示していと考えられそうです。


《 High Polygon Count》
Light.JPG

ずばりT&Lのテストです。これは、ジオメトリエンジンの性能に結果が直結するはずです。
High Polygonのリングに、1 Light、4 Light、8 Lightの3パターンのLightingをテストします。

データ

30 toruses with 5000 triangles each = 150 000

- 1 directional light
- 1 directional and 3 point lights
- 1 directional and 7 point lights


結果

KTriangles/s

1 Light

4 Light

8 Light

16bit Intel(r) PentiumIII(r)

7137

5755

4625

16bit D3D HardWare T&L

5384

3828

2068

16bit D3D Software T&L

5264

3869

2914

32bit Intel(r) PentiumIII(r)

7078

5770

4614

32bit D3D HardWare T&L

4929

3618

2020

32bit D3D Software T&L

4897

3653

2787


1HIGHPory.gif

これは、全く想定外の結果です。
HardWare T&Lのメリットが皆無です。むしろ、Software T&Lの方がパフォーマンスが優れています。
この結果についてはというほかありません。
PentiumIII(r)最適化は順当(?)にパフォーマンスを出しているようで、この差は動きを見ても歴然です。
コマ抜きスローモーションのようなHardWare T&Lに対し、実スピードで動きます。


《 Texture Rendering Speed》
Textur.JPG

8MB、16MB、32MBの巨大テクスチャのトンネルをくぐり抜けるテストです。
64MBのテストにはAGPアパーチャサイズが128MB以上確保する必要があります。

データ

The test runs through a tunnel, which is mapped with 256x256 textures:

- 8 MB: 48 textures in 16 bit color, 24 in 32 bit color
- 16 MB: 96 textures in 16 bit color, 48 in 32 bit color
- 32 MB: 192 textures 16 bit color, 96 in 32 bit color
- 64 MB: 384 textures 16 bit color, 192 in 32 bit color


結果

FPS

8MB Texture

16MB Texture

32MB Texture

16bit Intel(r) PentiumIII(r)

291.0

282.5

228.9

16bit D3D HardWare T&L

282.0

265.7

200.5

16bit D3D Software T&L

288.8

280.1

208.4

32bit Intel(r) PentiumIII(r)

149.0

145.6

129.9

32bit D3D HardWare T&L

149.5

144.1

123.5

32bit D3D Software T&L

149.8

145.8

131.4


1TEXTUR.gif

この結果はFillRateの結果に近いものです。
16bitは32bitのきっちり2倍のフレームレートを出しており、CPUオプティマイズは無関係に思えます。
しかし、HardWare T&Lでは、若干落ちていることは、要注目でしょう。
HardWare T&Lが、巨大なデータの転送に、何らかのオーバーヘッドとなることを意味しています。


《Bump Mapping》
Bump.JPG

エンボス(凹凸)は、背景となるテクスチャにモノクロのテクスチャ(高さ情報)を重ねて表現します。
ここでは、3-pass、2-pass、1-passの3通りの方法をテストします。EnvironmentはN/Aでした。

Required Direct3D features

3-pass

- Additive Alpha Blending
- Multiplicative Alpha Blending

2-pass

- Multitexturing (texture + additive)
- Multiplicative Alpha

1-pass

- Multitexturing (texture + additive)
- 2X Multiply
- Gouraud Shading


結果

FPS

3-pass

2-pass

1-pass

16bit Intel(r) PentiumIII(r)

139.9

192.0

328.6

16bit D3D HardWare T&L

147.0

195.1

328.9

16bit D3D Software T&L

146.9

194.8

328.3

32bit Intel(r) PentiumIII(r)

77.6

103.8

167.7

32bit D3D HardWare T&L

78.6

101.7

167.7

32bit D3D Software T&L

78.6

101.7

167.6


1EMBOS.gif

この結果もFillRateの結果に近いものです。
16bitは32bitのきっちり2倍のフレームレートを出しています。ほとんど誤差が無いので、限界値でしょう。
ただ、PentiumIII(r)オプティマイズでは、3-passと2-passでフラッシュのような表示異常が見られました。
PentiumIII(r)オプティマイズが、僅かながらスコアを落しているのも気になります。
ソフトかハードのどちらかに問題があるのは間違いないようです。


《総評》
CPU Optimization (3D pipelines)による違いは、興味深い結果を示しました。

HardWare T&Lでは、大きなグラフィックデータを扱う場合に何らかのオーバーヘッドがあること、
Intel(r) PentiumIII(r)が総じてHardWare T&Lを凌ぐこと(SSEプラスHardWare T&Lかも知れません)
Intel(r) PentiumIII(r)ではEmbosテストで不具合が発生することです。

不具合については、Coppermineならではなのか、SSEプラスHardWare T&Lで起こるものなのか、
テストしてみてばわかることなので、追って確認します(^^;



3DMark2000に戻る    GeForce256に戻る


kiti30g.gifhttp://kiti.main.jp/