FFO40-59は同等以上に
この一週間はブログ記事を書くのは休んでいたのだが、作者的には、その間に、Edax4.4のAVX2版のFFO速度が速かった事から、MasterReversiについても、AVX2命令を活用したりしつつ、終盤解析速度を向上させていたのだが、FFO40-59については、同等以上になった。
現行版MasterReversiのFFO処理性能については、AVX2版ではないEdax4.4の処理性能と共に、FFOテスト結果 (Ver1.5.0) のページに掲載している。
で、そのページによると、FFO49-59の処理時間は、最高速の8スレッド時で、MasterReversi Ver1.5.0が221.7秒なのに対して、Edax4.4は229.5秒、という事になっている。
なので、作者的には、安心して、先月、MasterReversi 1.5.0をリリースした訳なのだが、その後、Booby Reversi / Edax + Unified Book 2010 の作者である所のokuhara氏が本家のEdaxに諸々の高速化ルーチンを適用して改良したedax-reversi-AVXの存在を知った訳だ。
で、最新版のEdax + Unified Book 2010 では、そのバイナリが使われている、という事だったので、そのバイナリでFFOテストを行ってみた所、かなり高速化されていた。
具体的には、MacBook Pro 15インチ 2016モデルでのFFO40-59の8スレッド時の処理時間は、本家のEdax4.4では、上記の様に、229.5秒だったのだが、okuhara氏の手によるAVX2版は、192.9秒で処理を終えてしまった訳だ。
で、AVX2命令というのは、Haswell以降、つまり、2013年後半以降の新型PCでは使える命令だ。つまり、今時のPCの多くでは、普通に使える事を鑑みれば、MasterReversi Ver1.5.0の処理時間が221.7秒で、AVX2版とはいえ、Edax4.4の処理時間が192.9秒では、作者的には格好が付かなくなった訳だ。
と、いう事で、作者的にもMasterReversiの終盤解析速度の高速化を行ってみた訳なのだが、結論から書くと、表題にした様に、FFO40-59については、ほぼ同等以上の処理速度を実現できている。
ただし、FFO60-79については、AVX2版Edax4.4は約93分で処理を終えているのだが、こちらについては、現行版と比べて殆ど性能向上していないので、現状でも、115分程度の時間がかかっている。もっとも、MRWorkerを使った場合には、現行版よりも、少し処理時間を短縮できているので、約75分で処理を終える。
なので、Edax4.4のAVX2版が93分、MasterReversiのMRWorker版が75分という事になるので、こちらについては、格好はつく感じではある。
と、いう事で、話が長くなるので、現状のMasterReversiの処理性能が上記の様な感じになっている理由については、明日以降の記事に書く事にする。
ちなみに、AVX2命令が動作する作者の手持ちPCとしては、Mac mini Late2014もあるのだが、こちらについては、AVX2版の性能向上率はMacBook Pro 15インチ 2016モデルのソレよりも小さい。
具体的には、FFO40-59を見る限り、MacBook Pro 15インチ 2016モデルでは、性能向上率が15%程度はあるのだが、Mac mini Late2014では、10%にも微妙に届かない程度だ。
これは、Edax4.4でも改良中のMasterReversiでも同様なので、たまたま、という事ではなく、多分、Mac mimi Late2014のメモリアクセス速度が相対的に低いのが影響していると思われる。
つまり、AVX2であろうがSSE2であろうが、データを加工する場合には、まず、メモリからデータを読み出し、演算結果をメモリに書き出す事になるので、メモリアクセス速度がボトルネックになっていると、AVX2の処理速度が高速でも、結局は、メモリアクセス速度が処理性能を決める事になるので、そういう現象が発生しているモノと思われる。
それでも、双方ともに、10%近くは高速化されているので、ビットボード用に64Bit演算を多用するリバーシソフト的には、AVX2命令は有益、という事にはなるかもしれない。
« ここで一週間休む | トップページ | AVX2命令ではシフトが便利 »
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66587381
この記事へのトラックバック一覧です: FFO40-59は同等以上に: