Linux 4.12、Ubuntu 17.04でのRyzen 1800X Core i7 7700Kのベンチマーク

Ryzen 7 1800XとCore i7 7700Kのベンチマーク

PhoronixよりLinux 4.12、Ubuntu 17.04でのRyzen 1800X Core i7 7700Kベンチマークが公開されました。コンパイラにはGCC6.3が使用されているようです。

様々なベンチマークが行われたようですが、気になった点を書いていきます。

AVX2を有効にした姫野ベンチ

拡張命令AVX2を有効にした状態での姫野ベンチではCore i7 7700Kが圧勝しました。Ryzen 7 1800Xが1185.45MFLOPS、Core i7 7700K 2678.90MFLOPSという結果です。2.26倍という大差が付きました。オプションは-O3,-mavx2です。

この大差の原因はなんでしょうか。まず第一にこのスコアがシングル・スレッドを示すものであること挙げられます。

姫野ベンチにはシングル・スレッド性能に依存する通常版とマルチ・スレッド性能に依存する並列バージョンが存在します。Phoronixが使用した姫野ベンチマークはOpenbenchmarkingに登録されているもののようですが、スコア自体の低さや、コア数と関係なくスコアが推移している点などから、Openbenchmarkingの使用する姫野ベンチマークはシングルスレッドのものだと考えられます。だとすればRyzen 7 1800Xが8コアを搭載していることは、このベンチマーク結果には反映されていません。

第二に考えられるのはZenに積まれているSIMDエンジンの小ささです。Zen、Kaby Lakeは双方ともAVX2には対応していますが、実際に積んでいるSIMDエンジンの量に差があります。

Zenは128bitの浮動小数点数SIMDエンジンを4基搭載していて、倍精度の浮動小数点数演算を1コア、1サイクルあたり合計8回行えますが、Haswell以後のIntelのプロセッサには倍精度浮動小数点数演算を1コア、1サイクルあたり合計16回行える浮動小数点数SIMDエンジンが搭載されているようです。AVX2を使用した場合の1コア、1サイクルあたりの演算能力の理論値には2倍の差があります。

第三にクロックです。Ryzen 7 1800Xの動作クロックは、ブースト・クロック4GHz、XFRで4.1GHzであるのに対し、Core i7 7700Kは4コアのターボ・クロックが4.4GHz、1コアのターボ・クロックが4.5GHzです。大体1.1倍の差があることが分かります。

これらを加味すると、2.26倍の差がおおむね説明出来ます。1コア、1サイクルあたりの演算能力に2倍、クロックに1.1倍の差があるので2.2倍、残りはIntelによるAVX2への最適化などの成果でしょう。

このベンチマークはマルチ・スレッド非対応、SIMD命令に最適化、倍精度浮動小数点数演算中心と言う珍しい処理に関するベンチマークです。古くから存在する特定のHPC関連の処理向けベンチマークであることを念頭に置けば、このベンチマークで大差を付けられたからと言って性能の低いプロセッサとか限らないと言えます。

ソース

http://www.phoronix.com/scan.php?page=article&item=ryzen-kabylake-may

http://openbenchmarking.org/test/pts/himeno-1.2.0

http://openbenchmarking.org/showdown/pts/himeno

Add a Comment

メールアドレスの入力は任意です。(公開されることはありません)