HPCシステムズではエンジニアを募集しています。詳しくはこちらをご覧ください。
HPCシステムズのエンジニア達による技術ブログ

Tech Blog

ARMでHPCチャレンジ

ARM64のWSが評価用に入った訳なんですが、 まずは軽いベンチでも行なおうという事で、HPCチャレンジベンチマークをやってみる事にしました。
HPCチャレンジベンチマークは

HPC Challenge

にある7つのベンチマークを行なってスパコンの性能を調査するベンチマークで、京がHPCチャンレンジ賞を取った事とか、古くは地球シミュレーターでMPIFFTでトップに立った話などを聞き及んだ事があるかと思います。
大型クラスター向けのベンチマークなので、1台のマシンで取っても仕方ない面はあったり、STAR◯◯というベンチマーク結果の説明が少なかったり、結果が盛り難いという難点?があったりはするのですが、複数の視点から評価可能なので、馴染みの無い新しいアーキテクトのCPUをどんな感じか大まかに判断するのには便利です。

さて、ARM64 thunderX2ですが、intelのXeonと計算用のベンチで比較するのは、かなり不利です。というのは、SIMDが128bitなんですね。科学技術計算を行なわない場合、SIMD128bitは十分では?と思う事でしょうが、この試験で比較対象とするXeon E5-2699v4はSIMDが256bitの第二世代で、bitで半分なんです。実際にXeonでAVX2を使用されている人にはこのSIMのbitが倍、さらに二世代目というものの威力を実感している事かと思います。正直に言えば、素直にHPL取ったら、Xeonと比較しちゃうと見るべきところが無いだろう事がほぼ予想されるんですね。

という訳で、悲惨な結果になる事が予想されるHPCチャレンジベンチマークで採取したHPLの結果です。

目を覆わんばかりに差が出てしまいました。

なんでこんな結果になってしまうかですが、HPCチャレンジベンチマークで得たデータからヒントになりそうなものがあります。次のグラフは1コアでのsingleDGEMMの結果を比較したものですが、SIMDの差がモロに出てしまっています。

これを酷いとみるかどうかは判断が分れるのですが、こうした計算でintelのmklは物凄い性能を持っていて、CPUの性能を思いきり引き出します。intelのCPUの高性能はmklがあるからと言っても過言ではないくらい出来が良いライブラリなのですが、使用したARMCLang ver14.0のパフォーマンスライブラリは、SIMDのbit差程度しか、差を付けさせていないので、かなり高性能であるとも判断出来るかと思います。下手なライブラリを使用したら、こんな差では済みませんからね。
これは結構、いけるかも、という事で、MPIFFTの結果です。

ほぼ互角となっています。Xeonの方でフルコアでサチってしまっていますが、FFTは、チューニング出来る限界まで行っちゃってる印象もあるので、それで差が出ないかもしれません。
ただ、ARMのフルコアでサチってない事は気になりますよね。そこで、PTRANSの結果です。

なんという事でしょう、CPU設計の匠の技か、ARM thnderX2がXeonに勝っています。
多数コアへの転送速度での伸びが良いですね。それで、フルコアでもMPIFFT低下しなかったのかもしれません。
もっとも、Xeon E5-2699v4は22コアCPUで、2CPUフルコアでの結果は44並列という、算数が出来ない人が実行したの?という素数でデータを分割してしまう条件で実行していますから、性能が劣化しても当たり前、プログラムによってはセグメンテーションフォルトしても不思議ではない条件なので、結果は割り引いて考える必要はあります。
そういった面はあるにせよ、32並列までの伸びで、ARM thunderX2は良好な性能を示しているので、良い素性のCPUである事が伺えます。むしろ、intelmpiに比べてちょっとアレなopenmpiでこの性能は評価すべきかと思います。
MPIでの条件差があまりに出てしまうので、MPIRandomAccessとLatancyはオミットしますが、32並列で動作させた場合、Xeon E5-2699v4を1としたARM thunderX2の結果が次の図です。

HPLだけテストすると、悲惨な差になってしまうのですが、こうしてHPCチャレンジベンチマークで評価してみると、SIMDが関わるようなものでなければ、Xeonと勝負出来るCPUである事が分ります。ポスト京向けのARMではSIMDを大きくする事がアナウンスされているなど、次世代ARMではSIMDの強化も期待できるかもしれないので、そういった次世代ならXeonに勝てるかもしれません。
もっとも、SIMDを大きくすると、SIMDとのやり取りで待ち時間が増えるとかは結構、ありがちなので、SIMDが性能アップしさえすれば、勝てるという訳にはいかないだろう事は予想されますが、期待は持てますし、SIMDをぶん回すようなものでなければ、ARM thunderX2の方が良い場合もあるかもしれませんね。

やあ、チャレンジといっても、水増しせずに済みました。チャレンジというと、やっぱ、アレですからねぇ。