F3ベンチマーク Round1
K6コア正式タイム



K6-2 348.6MHzでの測定結果を100MHzに換算

製作者情報 最適化方法 計測時間(sec) 計測時間(sec)/種類別表示
コンパイラ アセンブラFPU アセンブラ3DNow!
Horie, Seiichi. 1999.May.8 i486 Optimized Code 136.130   136.130  
P6 Optimized Code 146.270   146.270  
3DNow! SIMD Optimized Code 30.224     30.224
3DNow! SISD Straight Code 40.403     40.403
Horie, Seiichi:1999.Apr.25 Sample by Delphi 206.790 206.790    
Horie, Seiichi,1999.4.25 VC++ Standard Generated Code 514.460 514.460    
i486 Optimized Code 136.130   136.130  
P6 Optimized Code 144.180   144.180  
3DNow! SIMD Optimized Code 30.224     30.224
3DNow! SISD Non-optimized Code 38.276     38.276
うるり,1999.4.27 C言語を VC6 が勝手に最適化 158.330 158.330    
C言語を VC6 が勝手に最適化+α 148.190 148.190    
FPU 使用 K6 風味の最適化 136.130   136.130  
3DNow! を使って SISD 計算を行う 38.276     38.276
3DNow! を使って SIMD 計算を行う 30.258     30.258
3DNow! & SIMD 計算<突然変異版> 29.108     29.108
うるり,1999.5.11 FPU 使用 K6 風味の最適化 135.190   135.190  
3DNow! を使って SIMD 計算を行う 28.132     28.132
Andoh, Hiroyasu,1999. 5. 6 VC++ P5 FPU,optimized speed, lump Code 178.450 178.450    
VC++ P5 FPU,optimized speed, subdivide Code 152.410 152.410    
i486, P55C FPU Code 140.140   140.140  
i486, K6-III FPU Code 134.210   134.210  
へるみ 1999.5.9 3D Now! code 29.108     29.108
Iwata Kazunari,1999.4.29 VC++ Enterprise Generated Code 232.060 232.060    
i486 Optimized Code 136.130   136.130  
Iwata Kazunari,1999.4.29 PentiumPro C++Builder Optimized Code 224.950 224.950    

実際の計測記録 k6at350.txt

 

今回の小さいコード、高いレジスタの依存性、前後の処理の高い依存性の条件では

 

3DNow!の効果がはっきりと見て取れる。FPUを使うところを3DNow!に置き換えるだけでSIMDでなくとも高速化できることがわかる。

これはFPUに対しての3DNow!の低いレイテンシと、レジスタ間演算という高い演算自由度による。またそのことにより並列処理できる状況が増えることにも注目したい。

 

コンパイラの最適化の度合いはそれぞれさまざまである。なかにはアセンブラで詰めたコードに匹敵する最適化を行っているものもある。

 

と、適当にまとめてみたがどうだろうか?