FFOテスト結果 (Ver1.5.5)

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

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

測定内容
Ver1.5.5では、Edax 4.5.0との比較で劣っていた処理性能を、主にコーディングレベルの最適化により向上させました。
このため、今回は、性能向上効果を検証するために、Ver1.5.4で行ったのと同じ構成で性能を再測定しました。

測定結果については、Ver1.5.4/Edaxとの比較を行っています。
ただし、Ver1.5.4/Edaxについては、最新バージョンに変化がない事から、Ver1.5.4時に採取したデータを利用しています。


Edaxについては、オリジナル版と、 「Booby Reversi」 / 「Edax + ub」等で有名な奥原氏の改良版の両方で測定しています。
奥原氏版(Ver4.5.0)では、奥原氏が考案した高速コードが用いられるため、オリジナル版(Ver4.4)よりも高速です。
奥原氏版のバイナリは複数ありますが、基本的には最も高速な「wEdax-x64-modern」、一部でx64/x86版を使用しています。

MRSolverが使用するキャッシュサイズは、最大容量(64Bit版:4096MB/32Bit版:512MB)を使用しています。
Edaxのハッシュサイズは過去のテスト時と同じH=25としているため、割り当てられるメモリサイズは1.5GB程度となっています。
1.5GBは通常は十分なサイズですが、複雑な局面の評価時には、より増やす事で、Edaxの性能は向上できる可能性があります。

測定値はFFO40-59/FFO60-79の全項目にかかった時間です。(単位は秒で、測定値は素データへのリンクになっています)
各測定値には単一測定の結果を使用しているため、OS等によるバックグラウンドタスクの影響から若干の誤差が含まれます。
マルチスレッド動作時には評価タスクの終了順が変動する結果、測定毎に比較的大きな性能変動が発生する場合があります。
MRSolver/Edax共に、評価スレッドに対するCPUコアの割り当てはOS任せにしています。
カッコ内の数値はVer1.5.5の処理時間を1.0とした場合の処理時間の倍率です。(値が大きいほど低速)

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

メイン環境での測定結果

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 65W]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 53.6(1.00) 56.0(1.00) 57.5(1.00) 64.3(1.00) 100.0(1.00) 188.2(1.00) 375.8(1.00)
MRSolver(旧版:1.5.4) 63.5(1.18) 61.9(1.11) 64.1(1.11) 72.3(1.12) 112.5(1.13) 214.9(1.14) 441.5(1.17)
Edax(オリジナル版:4.4) 79.4(1.48) 85.3(1.52) 95.3(1.66) 108.6(1.69) 164.0(1.64) 293.6(1.56) 564.0(1.50)
Edax(奥原氏版:4.5.0-modern) 49.5(0.92) 53.3(0.95) 57.0(0.99) 69.4(1.08) 112.0(1.12) 207.1(1.10) 393.9(1.05)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 95W]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 55.0(1.00) 46.7(1.00) 52.5(1.00) 54.9(1.00) 96.2(1.00) 188.4(1.00) 374.8(1.00)
MRSolver(旧版:1.5.4) 64.1(1.17) 56.9(1.22) 57.1(1.09) 64.1(1.17) 111.5(1.16) 215.3(1.14) 443.8(1.18)
Edax(オリジナル版:4.4) 73.3(1.33) 74.2(1.59) 86.3(1.64) 97.1(1.77) 158.7(1.65) 295.7(1.57) 565.4(1.51)
Edax(奥原氏版:4.5.0-modern) 47.9(0.87) 48.7(1.04) 53.1(1.01) 60.6(1.10) 113.0(1.17) 211.9(1.12) 400.6(1.07)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: PL1:95W PL2:126W tau:224秒]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 52.0(1.00) 44.2(1.00) 46.9(1.00) 55.3(1.00) 95.7(1.00) 188.6(1.00) 378.1(1.00)
MRSolver(旧版:1.5.4) 59.1(1.14) 52.7(1.19) 54.6(1.16) 62.7(1.13) 110.0(1.15) 209.9(1.11) 431.3(1.14)
Edax(オリジナル版:4.4) 67.2(1.29) 72.4(1.64) 80.2(1.71) 97.3(1.76) 157.0(1.64) 292.7(1.55) 555.6(1.47)
Edax(奥原氏版:4.5.0-modern) 44.4(0.85) 45.9(1.04) 51.0(1.09) 60.1(1.09) 111.9(1.17) 208.8(1.11) 400.0(1.06)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 65W / Windowsの電力プラン: 省電力]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 102.0(1.00) 100.6(1.00) 106.6(1.00) 154.3(1.00) 289.5(1.00) 576.0(1.00) 1164(1.00)
MRSolver(旧版:1.5.4) 110.0(1.08) 112.5(1.12) 118.7(1.11) 170.9(1.11) 316.1(1.09) 595.4(1.03) 1258(1.08)
Edax(オリジナル版:4.4) 142.0(1.39) 151.9(1.51) 174.9(1.64) 272.9(1.77) 461.0(1.59) 879.2(1.53) 1692(1.45)
Edax(奥原氏版:4.5.0-modern) 91.2(0.89) 95.5(0.95) 108.0(1.01) 168.5(1.09) 315.3(1.09) 608.1(1.06) 1170(1.01)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 65W / UEFI(BIOS)でEコアを利用不可に設定]
対象 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 66.6(1.00) 63.2(1.00) 79.3(1.00) 123.0(1.00) 193.1(1.00) 378.9(1.00)
MRSolver(旧版:1.5.4) 78.6(1.18) 70.7(1.12) 83.8(1.06) 129.8(1.06) 213.3(1.10) 432.4(1.14)
Edax(オリジナル版:4.4) 91.8(1.38) 108.8(1.72) 127.4(1.61) 181.9(1.48) 293.8(1.52) 557.3(1.47)
Edax(奥原氏版:4.5.0-modern) 57.9(0.87) 62.2(0.98) 77.0(0.97) 127.7(1.04) 207.5(1.07) 395.4(1.04)

FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 65W]
対象 20スレッド 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.5) 1356(1.00) 1451(1.00) 1527(1.00) 1798(1.00)
MRSolver(旧版:1.5.4) 1809(1.33) 1835(1.26) 2020(1.32) 2368(1.32)
Edax(オリジナル版:4.4) 2667(1.97) 2835(1.95) 3345(2.19) 3836(2.13)
Edax(奥原氏版:4.5.0-modern) 1836(1.35) 1913(1.32) 2244(1.47) 2471(1.37)

FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 95W]
対象 20スレッド 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.5) 1345(1.00) 1278(1.00) 1357(1.00) 1593(1.00)
MRSolver(旧版:1.5.4) 1803(1.34) 1687(1.32) 1822(1.34) 2120(1.33)
Edax(オリジナル版:4.4) 2515(1,87) 2598(2.03) 2733(2.01) 3396(2.13)
Edax(奥原氏版:4.5.0-modern) 1706(1.27) 1651(1.29) 1855(1.37) 2184(1.37)

FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 65W + MRWorker(Ryzen 9 5900HX 16Thread)]
対象 16スレッド
MRSolver(新版:1.5.5) 1212(1.00)
MRSolver(旧版:1.5.4) 1560(1.29)


FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 95W + MRWorker(Ryzen 9 5900HX 16Thread)]
対象 16スレッド
MRSolver(新版:1.5.5) 1127(1.00)
MRSolver(旧版:1.5.4) 1353(1.20)


・Core i7-12700の最大ターボパワーは180W、使用PCの最大パワーは126Wである為、CPUの最大性能は測定できていません。
・電力制限値を小さくすると多スレッド時に性能向上がなくなり、大きくすると冷却不足が発生して性能が劣化します。
・使用OSはWindows11で、基本的には、「電力プラン」には推奨の「バランス」を選択しています。
・電力制限/発熱の影響を調べるため、それらが発生しにくい「省電力」プランを選択した場合の性能も測定しています。
・Core i7-12700に搭載されているEコアの影響を調べるため、Eコアを無効化した場合の性能も測定しています。
・FFO60-79の測定では、126Wの電力を測定期間中に継続供給できないため、65W/95Wでの測定のみ行っています。
・MRWorker使用時には、ローカル環境で16スレッド、MRWorker側で16スレッドの合計32スレッドで動作させています。

別環境での測定結果

FFO40-59 --- Ryzen 9 5900HX (MINISFORUM EliteMini HX90)
対象 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 52.7(1.00) 59.2(1.00) 66.9(1.00) 116.9(1.00) 215.7(1.00) 452.9(1.00)
MRSolver(旧版:1.5.4) 61.8(1.17) 67.7(1.14) 80.6(1.20) 139.2(1.19) 264.8(1.23) 543.5(1.20)
Edax(オリジナル版:4.4) 77.5(1.47) 86.4(1.46) 106.7(1.59) 176.8(1.51) 325.4(1.51) 621.9(1.37)
Edax(奥原氏版:4.5.0-modern) 47.1(0.89) 54.8(0.93) 67.4(1.01) 125.7(1.08) 237.8(1.10) 459.0(1.01)

FFO60-79 --- Ryzen 9 5900HX (MINISFORUM EliteMini HX90)
対象 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.5) 1441(1.00) 1657(1.00) 2006(1.00)
MRSolver(旧版:1.5.4) 1910(1.33) 2206(1.33) 2712(1.35)
Edax(オリジナル版:4.4) 2649(1.84) 3193(1.93) 3552(1.77)
Edax(奥原氏版:4.5.0-modern) 1651(1.15) 1970(1.19) 2416(1.20)


FFO40-59 --- Core i7-6700HQ (MacBook Pro 15インチ 2016モデル)
対象 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 155.2(1.00) 205.5(1.00) 377.9(1.00) 741.9(1.00)
MRSolver(旧版:1.5.4) 177.1(1.14) 230.1(1.12) 422.9(1.12) 838.4(1.13)
Edax(オリジナル版:4.4) 241.3(1.55) 311.5(1.52) 551.7(1.46) 1061(1.43)
Edax(奥原氏版:4.5.0-modern) 147.9(0.95) 210.9(1.03) 375.5(0.99) 712.1(0.96)

FFO60-79 --- Core i7-6700HQ (MacBook Pro 15インチ 2016モデル)
対象 8スレッド
MRSolver(新版:1.5.5) 4494(1.00)
MRSolver(旧版:1.5.4) 5748(1.28)
Edax(オリジナル版:4.4) 7827(1.74)
Edax(奥原氏版:4.5.0-modern) 4919(1.09)


FFO40-59 --- Core i5-4278U (Mac mini Late2014)
対象 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 320.2(1.00) 430.4(1.00) 785.9(1.00)
MRSolver(旧版:1.5.4) 361.3(1.13) 472.7(1.10) 890.7(1.13)
Edax(オリジナル版:4.4) 508.5(1.59) 614.4(1.43) 1101(1.40)
Edax(奥原氏版:4.5.0-modern) 334.1(1.04) 429.8(1.00) 744.5(0.95)

FFO60-79 --- Core i5-4278U (Mac mini Late2014)
対象 4スレッド
MRSolver(新版:1.5.5) 10104(1.00)
MRSolver(旧版:1.5.4) 12582(1.25)
Edax(オリジナル版:4.4) 17784(1.76)
Edax(奥原氏版:4.5.0-modern) 11352(1.12)


FFO40-59 --- Core m3-8100Y (Surface Go 2)
対象 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 476.5(1.00) 636.7(1.00) 982.2(1.00)
MRSolver(旧版:1.5.4) 518.6(1.09) 697.2(1.10) 1079(1.10)
Edax(オリジナル版:4.4) 681.3(1.43) 845.7(1.33) 1209(1.23)
Edax(奥原氏版:4.5.0-modern) 444.3(0.93) 595.1(0.93) 870.6(0.89)

FFO60-79 --- Core m3-8100Y (Surface Go 2)
対象 4スレッド
MRSolver(新版:1.5.5) 14598(1.00)
MRSolver(旧版:1.5.4) 18456(1.26)
Edax(オリジナル版:4.4) 22324(1.53)
Edax(奥原氏版:4.5.0-modern) 15787(1.08)


FFO40-59 --- Core i7-2600 (Gateway PC)
対象 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.5) 172.4(1.00) 218.9(1.00) 401.4(1.00) 835.2(1.00)
MRSolver(旧版:1.5.4) 195.4(1.13) 237.4(1.08) 440.7(1.10) 887.3(1.06)
Edax(オリジナル版:4.4) 236.6(1.37) 318.8(1.46) 534.5(1.33) 1018(1.22)
Edax(奥原氏版:4.5.0-x64) 188.8(1.10) 255.5(1.17) 458.3(1.14) 870.9(1.04)
MRSolver(32Bit版:1.5.5) 272.8(1.58) 346.2(1.58) 633.5(1.58) 1306(1.56)
Edax(奥原氏版:4.5.0-x86) 318.6(1.85) 383.2(1.75) 690.6(1.72) 1316(1.58)

FFO60-79 --- Core i7-2600 (Gateway PC)
対象 8スレッド
MRSolver(新版:1.5.5) 5718(1.00)
MRSolver(旧版:1.5.4) 6630(1.16)
Edax(オリジナル版:4.4) 7792(1.36)
Edax(奥原氏版:4.5.0-x64) 6812(1.19)


・使用Windowsは、Surface Go 2は11 / Mac mini Late2014は8.1 / Gateway PCは7、それ以外は10です。
・Gateway PCではAVX2命令が利用できないため、奥原氏版には、modern版ではなく、x64版を使用しています。
・MRSolver / 奥原氏版Edaxには、32Bit版も存在するため、Gateway PC環境では、32Bit版の性能も測定しています。

測定結果について
・Ver1.5.5の性能は、全項目で、Ver1.5.4の性能を上回っています。
→Ver1.5.5では、基本コードに対してコーディングレベルでの最適化を行ったため、全動作モードで性能向上したと考えられます。

・Ver1.5.5では、FFO40-59よりもFFO60-79での性能向上率の方が高くなっています。
→Ver1.5.5では、深い探索時に置換表のヒット率が向上する様にチューニングしたため、FFO60-79の性能がより向上したと考えられます。

・Ver1.5.5のFFO40-59の処理時間は、iiyama PCでは、ほぼEdax4.5.0と同等、それ以外の環境では、概ね、少し劣っています。
→MasterReversiのリバーシエンジンの処理コードでは、Edaxの処理コードと比較して、より多くのメモリアクセスを行っています。
→このため、CPUキャッシュのサイズが大きく、メモリアクセス速度も速いiiyama PCでは、より高速に動作していると考えられます。

・Ver1.5.5のFFO69-79の処理時間は、MRSolverの方がEdaxよりも高速になっています。
→探索ノード数がMRSolverの方が大幅に少なくなっているのが要因として考えられます。
→MasterReversiのリバーシエンジンの並列探索方式はEdaxと異なる事から、より複雑な探索時に有利となった可能性があります。

TOPページに戻る