FFOテスト結果 (Ver1.5.0 + AVX2版)

本ページにはMasterReversiの'速さ'の検証のために行ったFFOテスト結果を掲載しています。
評価ルーチンが同一のため、テストではバッチ処理が可能なMRSolver(Ver1.5.0)をキャッシュサイズ512MBで使用しています。
MRSolverはProfessional版に付属するコンソールアプリケーションです。

FFOテストについて
FFOテストはFrench Federation of Othelloで作成され、終盤解析用ベンチマークとして広く用いられています。
テストでは、終盤解析が比較的困難な局面を対象として最善手探索に要する処理時間を計測します。
(本テストでは、完全読みによる処理時間を計測しています)

測定内容
Ver1.5.0では、評価データの更新と評価ルーチンのコーディングレベルでの改良を行いました。
その結果として、様々な局面で、より高速な終盤解析が可能となりました。
性能測定では、その検証として、従来版で行ってきたFFO40-59に加え、FFO60-79も行っています。
→比較用に、知名度があり、終盤解析も高速なEdaxの最新バージョン(4.4)のデータも採取して載せています。
→従来版(Ver1.4.3の64Bit版)についても、比較用に同一環境で測定を行ってその結果を載せています。

EdaxにはEdax + Unified Book 2010の作者であるOkuhara氏による、より高速なAVX2版もあります。
このため、MasterReversiについてもVer1.5.0をベースにしたAVX2版を開発して性能を測定しています。
→EdaxのAVX2版としてはWindows向けEdax+Unified Book 2010の wEdax-x64-modern.exe を使用しています。


上記リンクからダウンロード可能なEdax4.4の実行ファイルは64Bit版のみになっています。
このため、Edax4.4については32Bit版の測定は行っていません。

FFO60-79については、64Bit版8スレッド動作時にも数時間を要するため、より低速になる条件での測定は行っていません。
逆に、より高速に処理が行える事が期待されたMRWorkerを使った場合の性能については追加して測定しています。

ネットを検索すると終盤解析が高速なソフトとしてWZebraが紹介されている場合があります。
しかし、WZebraは2000年代中頃には開発を終了しており、マルチコア/64BitCPUに対応できていません。
その結果、その性能は現在の一般環境であるマルチコア/64Bit環境では、MasterReversiやEdaxよりも数倍遅くなっています。

上記の通りですので、今回、WZebraの性能は測定していません。
ただし、その終盤解析ツールであるscrzebraの性能については、以前測定しており、Ver1.4.0の測定結果に記載があります。
WZebraとの性能比較を行いたい方は、上記のリンクを参照して下さい。

AVX2版はHaswell以降の64Bit環境でのみ利用可能な命令群を使用しているため、より古い環境では動作しません。
また、AVX2版はプレミアムアイテムとする事にしましたので、利用に際してはレジストキーの入力が必要になります。

旧バージョンでは異なる観点に基づいた性能測定も実施しています。
興味のある方はVer1.4.1の測定結果Ver1.4.0の測定結果Ver1.0.2の測定結果Ver1.0.0の測定結果も合わせて参照してみて下さい。


測定結果
FFO40-59
環境8スレッド4スレッド2スレッド1スレッド
Corei7-6700HQ (MacBook Pro 15インチ 2016) - 64Bit版 221.7秒 (1.00) 257.0秒 (1.00) 436.7秒 (1.00) 791.1秒 (1.00)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - AVX2版 181.8秒 (0.82) 224.7秒 (0.87) 398.8秒 (0.91) 728.3秒 (0.92)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Edax4.4 229.5秒 (1.04) 295.4秒 (1.15) 514.3秒 (1.18) 953.3秒 (1.21)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Edax-AVX2版 192.9秒 (0.87) 248.6秒 (0.97) 436.9秒 (1.00) 819.7秒 (1.04)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Ver1.4.3 254.8秒 (1.15) 304.8秒 (1.19) 510.8秒 (1.17) 956.2秒 (1.21)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - 32Bit版 315.4秒 (1.42) 378.8秒 (1.47) 655.4秒 (1.50) 1190.8秒 (1.50)

FFO60-79
環境8スレッド
Corei7-6700HQ (MacBook Pro 15インチ 2016) - 64Bit版 118.2分 (1.00)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - AVX2版 106.6分 (0.90)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Edax4.4 129.1分 (1.09)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Edax-AVX2版 93.2分 (0.79)
Corei7-6700HQ (MacBook Pro 15インチ 2016) - Ver1.4.3 193.8分 (1.64)
Corei7-2600 PCをMRWorkerで追加(合計8コア16スレッド) 83.5分 (0.71)
Corei7-2600 PCをMRWorkerで追加(合計8コア16スレッド) AVX2版 76.2分 (0.64)


・測定値はFFO40-59/FFO60-79の全項目にかかった時間です。(測定値は素データへのリンクになっています)
・各測定値には単一測定の結果を使用しているため、OS等によるバックグラウンドタスクの影響から若干の誤差が含まれます。
・マルチスレッド動作時には評価タスクの終了順が変動する結果、測定毎に比較的大きな性能変動が発生する場合があります。
・MacBook Pro 15インチ 2016では64Bit版Windows10、Corei7-2600 PCでは64Bit版Windows7をOSとして使用しています。
・カッコ内の数値はVer1.5.0の64Bit版の処理時間を1.0とした場合の処理時間の倍率です。(値が大きいほど低速)

測定結果について
・FFO40-59の1スレッド時の処理性能の詳細を見るとVer1.5.0とEdax4.4の処理ノード数はほぼ同等でVer1.5.0が2割程度高速です。
→終盤の評価精度はほぼ同等で、評価ルーチンの基本処理の処理速度はVer1.5.0が2割程度高速であると考えられます。

・FFO40-59の1スレッド時の処理性能の詳細を見るとVer1.5.0とVer1.4.3ではnodes/secに大きな違いはなく処理ノード数は異なります。
→Ver1.4.3との比較では処理ノード数が32.8Gnから25.4Gnに減っている為、Ver1.5.0の評価精度は向上したと考えられます。

・FFO40-59のマルチスレッド性能を比較するとVer1.5.0ではスレッド増加に伴い処理ノード数が減りますがEdax4.4では殆ど変動しません。
→基本的には、Edaxは最善手の検証用にのみ追加スレッドを使うのに対し、MasterReversiは投機的に全スレッドで最善手探索を行います。
→このため、MasterReversiでは、スレッド数の増加に伴い、難しい局面の最善手をより高速に検出できるケースが増大します。
→ただし、簡単な局面では無駄にCPU性能が消費される確率が増大するため、スレッド数増加に共なうnodes/secの増加率は低くなります。

・FFO40-59の全スレッドで32Bit版の性能を64Bit版の性能と比べると通常ソフトの比率よりも大幅に遅くなっている。
→盤面の内部表現にはビットボードを利用しており、このビット長が64Bitであるため、64Bit版との相性が良くなっています。

・Edax4.4との比較では、FFO40-59の8スレッド時には1.04だった倍率がFFO60-79の8スレッド時には1.09に増加している。
→FFO60-79には難解な局面が多いため、前述の投機的実行がFFO40-59よりも効果的に働いていると考えられます。

・Ver1.4.3との比較では、FFO40-59の8スレッド時には1.15だった倍率がFFO60-79の8スレッド時には1.64に増加している。
→FFO60-79には難解な局面が多いため、Ver1.5.0での評価精度の向上効果がより性能に影響していると考えられます。

・MRWorker使用時の処理性能がCPUコアの追加分に対して低い様に見える。
→MRWorker使用時にはPC間でのキャッシュ共有が行われない為、単一PC内での処理コア追加時よりも性能向上率は低くなります。
→ただし、それでも、ネットワーク分散機能がないEdax4.4との比較では、MRWorker使用時の性能は、Edax4.4よりも1.5倍程度高速です。

・64Bit版とAVX2版のFFO40-59での性能向上率を比較すると、スレッド数が増えるに従って性能向上率が向上している。
→AVX2版では、並列演算処理等の微調整も行っており、その結果から、FFO40-59では多スレッド時の性能向上率がより高くなっています。

・64Bit版とAVX2版を比較すると、FFO60-79での性能向上率がFFO40-59での性能向上率よりも低くなっている。
→AVX2版で行った並列演算処理等の微調整では、探索の投機実行の比率を減らす事で、処理性能を向上させようとしています。
→その結果、FFO40-59では大幅に性能が向上しますが、より複雑な局面が多いFFO60-79の一部では探索性能は劣化します。
→ただし、AVX2命令による性能向上はFFO60-79でも存在するため、通常版との比較で総合性能が大幅に劣化する事はありません。

・FFO40-59ではMRSoverのAVX2版の性能がEdaxのAVX2版の性能を上回っているのにFFO60-79では逆になっている。
→FFO60-79では複雑な局面が多く、探索順の順序付けミスから、大幅な性能変動が発生する事が影響していると考えられます。
→ただし、FFO60-79でもAVX2版の性能向上率は10%程度はあり、EdaxのAVX2版の性能向上率が3割近くあるのが異例かもしれません。

TOPページに戻る