White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

ベンチマークでCPUを出す時は型番を出して欲しい

(この記事は以前Qiitaに掲載していたものの転載です) ポエムというか戯言です。

自作PC以外のベンチマークでたまに CPU: Core i5 2GHz とか書いてる記事があるんですが、可能でしたら型番を書いてほしいです。

いい例

  1. Core i5-2500
  2. MacBookAir 2018late(Core i5 1.6GHz)
  3. AWS EC2 c5.4xlarge

だめな例

  1. Core i5 2GHz
  2. Core i5 2GHz 4コア

なぜダメか

同じCore i5、同じ周波数でも型番が違うだけで - 一回の動作辺りの処理能力が違う - 物理コア数が違う - 命令セットの装備が違う といったことがあったりします。

例として、鵜呑みできるかどうかは怪しいですが、ベンチマークの結果を貼っておきます。Core i5-2500KとCore i5-9400Fの比較です。

https://www.cpubenchmark.net/compare/Intel-i5-9400F-vs-Intel-i5-2500K/3397vs804

ベース周波数だけ見ると2500Kは3.3GHz, 9400Fは2.9GHzなのでCore i5 3.3GHzとだけ書くと一見早そうです。しかしCPUMark Totalの結果は9400Fの方が2倍くらい高いです。

これはCPUの世代が進んで効率がよくなったとか、命令セットが追加されたんで効率よくなったとか、そもそもコア数が4と6で違うとか、色々上げられます(Turbo burstとかもあるんですがここでは割愛)

上の細かいとこは置いといても、手元の環境で実行しようとしたときに同じものが用意しづらいって意味でも型番は書いておいた方がいいです。

CPUの型番さえ書けばいいか?

もちろん違います。HDDをSSDに変えるだけでも、ディスクを介した処理は大幅に変わってくるでしょう。それにメモリとか、極端な話マザーボードが違うだけでも性能が変わってきます。がSSDやメモリはともかく、マザーボードの型番まで求めるのは流石に酷かなという気はします。あと昔は同じ型番でもロットによってオーバークロックの性能が違ったりとかありましたが、そこも流石に(略)。

また全く同じパーツを使っていても、OSやライブラリが違うだけでも性能は変わります。

いい例を振り返って

上の方でいい例について書きました。なぜいいかを解説していきます。当然ですがCPUに関していいと言っているだけで、これだけで全部いいわけではありません。

1は自明です。型番を見ればコア数、周波数などがメーカーのサイトから導き出せます。2に関しては型番は無いですが、2018年に出たMacBookAirのこの周波数のモデルは一つしかないと思われるため、問題ないでしょう。3は正直悩みどころで、同じEC2のインスタンスでも使ってるCPUが違ってたり、そもそもXen等のハイパーバイザからCPUへの割当が同等なのかっていうのもあったりします。ただ最悪インスタンスの種類さえわかっていれば追試はできると思うのでよしとしました(本当はcat /proc/cpuinfoくらいはしてほしいです)。