Intel Math Kernel Library Benchmarks Version 2017.3.0.019(グラフ3)

Intel
https://software.intel.com/en-us/articles/intel-mkl-benchmarks-suite

Intel純正の科学計算用ライブラリであるIntel Math Kernel Library(MKL)には、LINPACK Benchmarkが付属しており、これを実施している。というかいままでも散々使ってきたベンチマークであるが、なんでわざわざ改めて書くかというと、あまりに不可思議な状況になっているからだ。

前提としてこれに付属するLINPACKは内部でMKLを呼び出しており、MKLは内部で動作するCPUを確認し、非Intel CPUでは動作させないようになっている。そのため、Ryzen 7 1800Xの結果はなしである。

それはともかくとして、まともに動いたのはCore i7-6950Xのみだった。Size/LDAが60000までは順調に伸びているのに、その先でガクンと落ちてしまうのは、メモリ(32GB)で演算に必要なデータをメモリに格納しきれず、Storageを利用するようになるからだ。この動作自体は妥当な結果である。

変な動きをしたのはCore i7-7820X。異様にスコアが高い(600GFlops近い)のもおかしいが、Size/LDAが30000あたりまではまともに動作するのに、その先で「システムが落ちる」。単にベンチマークが終了するのではなく、ハングアップ状態に陥ってしまう。

ちなみに落ちる条件は一定ではなく、Size/LDAが25000の計算中に落ちることもあるし、350000の計算中に落ちることもあった。そこで「ひょっとしてこれがうわさのHyperThreadingのErrata」かと思い、HyperThreadingをDisableにして実施したのが緑の破線(noHTの方)であるが、相変わらず落ちるし、さらにスコアが暴れまくるという謎の状況に。少なくともHyperThreadingは無関係であることだけは確認できた。

Core i7-7820Xはほかにも挙動がおかしい(主にSandra:これは後述する)が、Engineering Sample品と言うことを考えれば多少おかしくても不思議ではない。では製品版が来たCore i9-7900Xは? というと、落ちにくい(Size/LDAが65000のケースではベンチマークが強制終了してしまったので、正常な振る舞いではないのだが、とりあえずハングアップとか電源ダウンとかにはならなかった)のは事実だが、スコアは300GFlops程度にとどまっており、これはこれでおかしい。

ちなみに電源供給能力の不足を疑って電源を変えてみたりもしたのだが、事態は解決せず。同じようにAVX Unitに負荷を掛けまくるSandraのWhetstoneは何事もなかったかのようにパスするので、電源の問題とも思いにくい。

Core i9-7900Xのスコアを見てみると、従来のSkylake系とは異なる最適化の技法が必要なのかもしれないという気がする。現時点におけるMKL(とLINPACKベンチマーク)最新版のリリース日は2017年4月30日なので、Skylake-SPコアへの最適化技法が異なるなら(後述するが、おそらく異なる)、まだMKLの対応は済んでいないと思われる。