FFOテスト結果 (Ver1.5.1)

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

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

測定内容
Ver1.5.1では、標準バイナリとは別に提供していたAVX2版の処理コードを標準バイナリに統合しました。
このため、AVX2命令が利用可能なPCでは、自動的にAVX2命令を使った高速コードが動作します。
AVX2命令を利用できないPCでも、AVX2版開発時に改良されたコードが動作する様になりました。

更に、従来は、テスト時に評価データが不得意な局面を評価していた懸念がありました。
このため、Ver1.5.1では評価データにFFOテスト時に発生する局面を追加学習させた結果を反映しています。

上記の結果として、Ver1.5.1では、AVX2命令が利用できないPCでは、従来版よりも、かなり高速化された筈です。
また、AVX2命令が利用できるPCでも、従来のAVX2版よりも高速に動作する筈です。
このため、本測定では、Ver1.5.1と従来のAVX2/64Bit版の性能を測定し、それらを比較します。

また、比較用には、Ver1.5.0時と同様に、知名度があり、終盤解析も高速なEdaxの最新バージョン(4.4)のデータも採取して載せています。
AVX2命令が利用可能なPC用には、Edax + Unified Book 2010の作者であるOkuhara氏による、より高速なAVX2版を使用しています。


AVX2命令を使った処理コードはHaswell以降の64Bit環境でのみ動作します。

測定に使用したオリジナル版EdaxはVer1.5.0の測定時と同じ4.4ですが、AVX2版は最新の2018年4月27日版に更新しています。
EdaxのAVX2版と32Bit版についてはEdax + Unified Book 2010に同梱されているバイナリを使用しています。

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

旧バージョンでは異なる観点に基づいた性能測定も実施しています。
興味のある方は以下のリンクから参照してみて下さい。

Ver1.5.0の測定結果Ver1.4.1の測定結果Ver1.4.0の測定結果Ver1.0.2の測定結果Ver1.0.0の測定結果

測定結果

AVX2命令が動作しないPC (Gateway製デスクトップPC [Corei7-2600]) での測定結果

FFO40-59
対象8スレッド4スレッド2スレッド1スレッド
Ver1.5.1 - 64Bit版 186.9秒 (1.00) 248.1秒 (1.00) 414.4秒 (1.00) 828.1秒 (1.00)
Ver1.5.1 - 64Bit版 (旧データ) 208.3秒 (1.11) 270.3秒 (1.09) 446.6秒 (1.08) 830.0秒 (1.00)
Ver1.5.0 - 64Bit版 224.5秒 (1.20) 274.5秒 (1.11) 444.3秒 (1.07) 826.4秒 (1.00)
Edax - 64Bit版 225.6秒 (1.21) 351.9秒 (1.42) 520.8秒 (1.26) 981.5秒 (1.19)
Ver1.5.1 - 32Bit版 279.6秒 (1.50) 383.7秒 (1.55) 623.2秒 (1.50) 1253.9秒 (1.51)
Ver1.5.0 - 32Bit版 328.8秒 (1.76) 420.2秒 (1.69) 667.0秒 (1.61) 1242.1秒 (1.50)
Edax - 32Bit版 348.6秒 (1.87) 500.0秒 (2.02) 837.3秒 (2.02) 1577.0秒 (1.90)

FFO60-79
対象8スレッド
Ver1.5.1 - 64Bit版 112.5分 (1.00)
Ver1.5.0 - 64Bit版 128.9分 (1.15)
Edax - 64Bit版 139.1分 (1.24)
Ver1.5.1 - MRWorker 72.4分 (0.64)


AVX2命令が動作するPC (MacBook Pro 15インチ 2016モデル [Corei7-6700HQ]) での測定結果

FFO40-59
対象8スレッド4スレッド2スレッド1スレッド
Ver1.5.1 - 64Bit版 170.8秒 (1.00) 217.2秒 (1.00) 382.9秒 (1.00) 732.9秒 (1.00)
Ver1.5.0 - 64Bit版 221.7秒 (1.30) 257.0秒 (1.18) 436.7秒 (1.14) 791.1秒 (1.08)
Ver1.5.0 - AVX2版 181.8秒 (1.06) 224.7秒 (1.03) 398.8秒 (1.04) 728.3秒 (0.99)
Edax - 64Bit版 229.5秒 (1.34) 295.4秒 (1.36) 514.3秒 (1.34) 953.3秒 (1.30)
Edax - AVX2版 173.8秒 (1.02) 233.9秒 (1.08) 411.9秒 (1.08) 769.7秒 (1.03)

FFO60-79
対象8スレッド
Ver1.5.1 - 64Bit版 99.0分 (1.00)
Ver1.5.0 - 64Bit版 118.2分 (1.19)
Ver1.5.0 - AVX2版 106.6分 (1.08)
Edax - 64Bit版 129.1分 (1.30)
Edax - AVX2版 84.1分 (0.85)
Ver1.5.1 - MRWorker 73.5分 (0.74)


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

測定結果について
・Ver1.5.1 - 64Bitは、スレッド数が大きい場合に、Ver1.5.1 - 64Bit版 (旧データ)よりも高速になっています。
→評価データの更新はスレッド数が大きい場合に効果が出ていると考えられます。(並列演算用の局面分割に貢献)

・Ver1.5.1 - 64Bit版 (旧データ)は、スレッド数が大きい場合に、Ver1.5.0 - 64Bit版よりも高速になっています。
→Ver1.5.0開発後に行った評価演算処理の改良はスレッド数が大きい場合に有効に働いていると考えられます。

・AVX2命令が動作しないPCでは、Ver1.5.1の性能がEdaxの性能よりも高くなっています。
→MasterReversiでは最新の改良がAVX2命令が動作しないPCでも有益に働いている為と考えられます。

・AVX2版Edaxとの比較では、FFO40-59では、若干、MasterReversiが高速になっています。
→FFO40-59は局面評価が簡単であるため、この点では違いが生じず、基本コードの速度の違いが反映されたと考えられます。

・AVX2版Edaxとの比較では、FFO60-79では、AVX2版Edaxが高速になっています。
→FFO60-79では局面評価が複雑な項目があり、そんな局面での評価が優秀な分、AVX2版Edaxが高速になったと考えられます。
→ただし、64Bit版同士の比較ではMasterReversiが高速であるため、EdaxではAVX2版の改良効果が非常に大きいとも言えます。

・MRWorkerを使用した場合、AVX2版EdaxよりもMasterReversiが高速になっています。
→MRWorker使用時には、PC2台分のCPUを利用した分、1台分のCPUしか利用しなかったEdaxよりも高速になったに過ぎません。
→ただし、Edaxは複数PCを利用できませんので、複数PCを利用できる環境では、MasterReversiの方が高速処理が可能です。

TOPページに戻る