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!の低いレイテンシと、レジスタ間演算という高い演算自由度による。またそのことにより並列処理できる状況が増えることにも注目したい。
コンパイラの最適化の度合いはそれぞれさまざまである。なかにはアセンブラで詰めたコードに匹敵する最適化を行っているものもある。
と、適当にまとめてみたがどうだろうか?