これは予測にすぎませんが、Apple は GCC に対して最適化の技術協力をしているはずですし、本田雅一氏 [impress.co.jp] の記事に Apple は GCC 3.3 を標準コンパイラにしようとしています。そうであれば最適化度はそう低くもないでしょうし、最適度が低いといって逃げてもいられないでしょう。
# まあ実際には一番速いのは IBM XL C++/FORTRAN でしょうが、# これは Mac OS X には(まだ)移植されてませんので比較のしようがないです。
For the rate metrics, multiple copies of the benchmarks are run simultaneously. Typically, the number of copies is the same as the number of CPUs on the machine, but this is not a requirement. For example, it would be perfectly acceptable to run 63 copies of the benchmarks on a 64-CPU machine (thereby leaving one CPU free to handle system overhead).
3.2.2 Number of copies in base
For SPECint_rate_base2000 and SPECfp_rate_base2000, the tester must select a single value to use as the number of concurrent copies to be applied to all benchmarks in the suite.
最適化の問題 (スコア:1, 参考になる)
両者とも100%の力を発揮できてるわけではな
Re:最適化の問題 (スコア:2, 参考になる)
2ch で言われていること [2ch.net]が本当であればこのストーリーのイチャモンは大嘘で、知ったかぶりが難癖付けているだけのようです。
引用すると、
Re:最適化の問題 (スコア:2, 参考になる)
GCC 3.3 が SPARC などのアーキテクチャで最適化が進んでいないのは確かですが、この際問題となるのは Pentium4 と PowerPC G5 の GCC 最適化度です。
Pentium4 は、GCC よりも高速なコンパイラとして Intel C++ Compiler(ICC) が容易に入手可能ですし、SPEC CPU2000 の計測では ICC を使うことがメジャーです。
この場合、GCC と ICC との性能差、つまり最適化度の差は客観的に示せます。
一方、GCC の PowerPC G5 最適化度はどうでしょうか。
あるコンパイラの最適化がどこまで進んだかは、そのプラットフォームで最速のコンパイラの比較をするしかありません。GCC 3.3 は CodeWarrier、Abosoft、NAGWare に対してどの程度 負けているのでしょうか?
これは予測にすぎませんが、Apple は GCC に対して最適化の技術協力をしているはずですし、本田雅一氏 [impress.co.jp] の記事に Apple は GCC 3.3 を標準コンパイラにしようとしています。そうであれば最適化度はそう低くもないでしょうし、最適度が低いといって逃げてもいられないでしょう。
# まあ実際には一番速いのは IBM XL C++/FORTRAN でしょうが、# これは Mac OS X には(まだ)移植されてませんので比較のしようがないです。
逆に、GCC がプラットフォームで最適化度が異なることを認めるのであれば、Apple の「コンパイラが同じならば(GCC3.3)、公平な比較ができる。我々はコンパイラの最適化機能をテストするのではなく、システムの性能を比較する必要があった」という主張は変です。
それぞれのプラットフォームで(現実的に入手が可能な中で)一番高速なコンパイラを使って測るのが理に適っています。
> 3. PPC970の結果もIBMのXLC/XLFコンパイラによる結果より低くなることを無視
IBM の XLC/XLF コンパイラを PowerMac G5 で計測した結果ってどこかにありましたか?
もしこの結果が MPF2002 に出した「予測値」だとしたら、今回のPowerMac G5 で実機計測した結果と直接比較しないのは妥当だと思います。
> 2. POWER4(970も同じ)対応の最適化フラグにケチをつけている
これはおそらく DELL側(Pentium4) が "-O3 -march=pentium4 -mfpmath=sse" と最適化オプションを3つ指定しているのに、PowerMac G5 が "-fast" と 1つで済ませている点だと思います。
# VeriTest のレポートを読む限り -fast で G5 アーキテクチャ対応まで指定するらしい。
これにケチがつくのは、 base は最適化オプションは 4 つまでという制限があるからです。プロファイルの結果を使うフィードバック最適化(FDO)は 1 と数えて、Pentium4 は 3+1 =4 でおしまい。PowerMac G5 は、FDO で 2つで、ライブラリ(-lstmalloc) で 3つの最適化オプションを指定したことになります。
まあ目クジラを立てる程ではないですけど。
# あと VeriTest のレポートを読むと "-mfppath=sse" は SSE2 は使わないとあるのですが、
# 本家のレス [slashdot.org]の中には SSE2 命令が有効になるとあります。
# また "-mfppath=sse" は指定すると返って遅くなるとか、
# "-ffast-math" を指定すべきだったとかいろいろ紛糾しています。
個人的にはオプション絡みでいうと、PowerMac 側にのみ ONESTEP=yes が指定されているのはなぜか?とか、Pentium4 の NAGWare F95 で -O4 ではなく -O3 を使ったのはなぜとか、そもそも NAGware F95 を選択したのはなぜかなどいろいろ疑問は沸きます。
# -O4 は指定すると返って遅くなったのかもしれません。
> 4. SPECrateわシングルプロセッサ対応のベンチを物理プロセッサ数だけ、並列に
> 動かした結果なので、HyperThreadingを有効にするとかえって遅くなること
HT を有効にすると遅くなるのは本当ですが、前半に引っかかります。
SPEC rate の並列度(copy数)は、物理プロセッサ数に合わせなければいけない縛りはないです。
Q & A の 15 [spec.org]
Run Rule [spec.org]
余談ですけど、rate でない SPEC speed (逐次版の方) も自動並列化コンパイラによって
並列化してもよいことになっています。
SPEC fp2000 には並列化すると 10倍以上性能があがるベンチマークがいくつかあります。
コンタミは発見の母
Re:人間コンパイラーは? (スコア:1)
ただし、 SPEC の公式スコアとして登録するには 計測に使ったすべてのコンポーネントが発表から 3ヵ月以内に入手可能なこと [spec.org] という制限を満たす必要があります。
3ヵ月以内に「人間コンパーラ」を培養するなり複製するなりして、 一般の人が入手可能な状態にする必要があります。
コンタミは発見の母