SPECintの使い方


なんとなくでしか理解していなかったSPECint。正確にはSPEC CPU の int。そのありがたみをようやく理解したのでここに残しておこう。
とはいえこの記事の実態は参考サイトからの抜粋を自分に分かりやすくツギハギしただけです。参考サイトに心から感謝です。

はじめに調べ方。その後に結果の見方。

調べ方

  1. SPEC CPU 2017 にアクセス
    https://www.spec.org/cpu2017/results/

  2. 左の Results Search をクリック

  3. 最上のプルダウン = Available Configurations では ALL SPEC CPU2017 を選んでGo! をクリック。
    選択肢としては以下があるけど ALL... を選べばまとめていっぺんに検索結果に表示されます(プルダウンで選べば個別に表示)。

    • int/speed
    • float point/speed
    • int/rates
    • float point/rates
  4. CPU2017 Results -- Query / Simple Request / Optional: Return only those results whereプルダウンで processor を選択。

  5. Maches に 調べたいCPUのSKUを入力して Execute Simpe Fetch。
    例)Gold 6254

結果の見方

  1. 以下のブロックに分かれていて、それぞれでHWベンダーごとにソートされて結果が表示される。

    • CPU2017 Integer Speed
    • CPU2017 Floating Point Speed
    • CPU2017 Integer Rates
    • CPU2017 Floating Point Rates
  2. System列から自分が調べているサーバモデルを探し、基本的には Base Result のスコアを確認すれば十分。Disclosureを選べば詳細(Result Table)を確認できる。

以下、SPECint2017 / SPECint2017_Rates の Result Table を見ながらまとめた。

指標はスピードとスループット

スピード
ベンチツールによる並列処理(Auto Parallel)のもとで、単位タスクをどれくらい早く完了できるかに依存するスコア。数値は高いほうが良い。PECint2017で確認できる。
スループット
単位時間あたりにどれだけのタスク(コンパイル)を完了できるかに依存するスコア。数値は高いほうが良い。SPECint2017_Ratesで確認できる。

テストは整数演算と浮動小数点演算

整数演算処理
SPECint2017とSPECint2017 Ratesで確認できる。
浮動小数点演算処理
SPECfp2017とSPECfp2017 Ratesで確認できる。

とりあえずなら、intを確認するだけでよかと。

ベンチマークの最適化する/しない

base
SPECが提示する標準(base)のオプションでベンチした結果。
peak
当該HWに最適化されたオプションでベンチした結果。未実施なレポートもまれによくある。

ベンチマークはたくさん

SPEC CPU では複数のベンチマークツールの試行している。以下はツールの例。

  • perlbech_s
  • gcc_s
  • mcf_s , etc...

結果はスコア

Speedは秒、Ratesはタスク数を表した値と思っていたけど違った。Ratioの相乗平均値だった。
SPEC CPU は対照実験をしている。speedを例にすると次のような計算をし、その値をRatioとしている。

Ratio = 対照マシンの処理時間 / テスト対象マシンの処理時間

例えば対照マシンの処理時間が1775で対象マシンの処理時間が354.329738とした場合、

Ratio = 1775/354.329738 = 5.00945 ≒ 5

となる。
実験は複数のベンチマークツールで3セット行われ、すべてのRatioの相乗平均値を最終的なスコアとする。

参考サイト

https://bongineer.net/entry/specint/
https://qiita.com/s2maeda/items/b07364fd94fbd3ac0ef4