FFOテスト結果 (Ver1.5.4)

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

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

測定内容
Ver1.5.4では、近年のPC用CPUの多コア・多スレッド化を受けて、多スレッドを使用する評価処理の性能を向上させました。
このため、今回は、改良の効果を検証する事を目的として、従来の4コア・8スレッドを超える環境での性能を測定しています。

また、近年のPCの中には、消費電力の増大から、CPUへの電力供給/冷却が十分に行えない製品が存在するようになりました。
この様な製品の場合、CPUを最大性能では利用できませんが、多くの場合、実用十分な性能は発揮してくれます。
ただし、CPUの最大性能を発揮させようとすると、電力制限/発熱防止の必要性から、処理性能が低下させられる事になります。
今回は、この様な環境で、不用意に使用スレッドを増大させると性能が低下するケースについても測定しています。

上記以外に、今回は、最新CPUが、どの程度、高速化されているのかを比較できる様に、従来環境での測定も行っています。
測定は、改良の効果を検証できる様に、従来版であるVer1.5.3と最新版であるVer1.5.4の両方に対して行っています。
また、一般的には、どの程度の性能になるのかを比較できる様に、同一環境で、知名度が高いEdaxの性能も測定しています。


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

MRSolverが使用するキャッシュサイズは、64Bit版については、今回から最大容量の4096MBに増大させています。
Edaxのハッシュサイズは従来と同じH=25のため、割り当てられるメモリサイズはMRSolverよりも少なくなっています。
ただし、FFOテスト用には十分なサイズが割り当てられていると考えられるため、性能差への影響は少ない筈です。

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

旧バージョンでは異なる観点に基づいた性能測定も実施しています。
興味のある方は以下のリンクから参照してみて下さい。
Ver1.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.4) 63.5(1.00) 61.0(1.00) 64.1(1.00) 72.3(1.00) 112.5(1.00) 214.9(1.00) 441.5(1.00)
MRSolver(旧版:1.5.3) 76.4(1.20) 69.9(1.15) 70.1(1.09) 74.0(1.02) 111.4(0.99) 215.5(1.00) 443.2(1.00)
Edax(オリジナル版:4.4) 79.4(1.25) 85.3(1.40) 95.3(1.49) 108.6(1.50) 164.0(1.46) 293.6(1.37) 564.0(1.28)
Edax(奥原氏版:4.5.0-modern) 49.5(0.78) 53.3(0.87) 57.0(0.89) 69.4(0.96) 112.0(1.00) 207.1(0.96) 393.9(0.89)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 95W]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 64.1(1.00) 56.9(1.00) 57.1(1.00) 64.1(1.00) 111.5(1.00) 215.3(1.00) 443.8(1.00)
MRSolver(旧版:1.5.3) 77.4(1.21) 64.5(1.13) 65.0(1.14) 71.2(1.11) 113.3(1.02) 215.6(1.00) 448.3(1.01)
Edax(オリジナル版:4.4) 73.3(1.14) 74.2(1.30) 86.3(1.51) 97.1(1.51) 158.7(1.42) 295.7(1.37) 565.4(1.27)
Edax(奥原氏版:4.5.0-modern) 47.9(0.75) 48.7(0.86) 53.1(0.93) 60.6(0.95) 113.0(1.01) 211.9(0.98) 400.6(0.90)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: PL1:95W PL2:126W tau:224秒]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 59.1(1.00) 52.7(1.00) 54.6(1.00) 62.7(1.00) 110.0(1.00) 209.9(1.00) 431.3(1.00)
MRSolver(旧版:1.5.3) 71.5(1.21) 58.7(1.11) 59.0(1.08) 63.8(1.02) 112.0(1.02) 212.2(1.01) 438.4(1.02)
Edax(オリジナル版:4.4) 67.2(1.14) 72.4(1.37) 80.2(1.47) 97.3(1.55) 157.0(1.43) 292.7(1.39) 555.6(1.29)
Edax(奥原氏版:4.5.0-modern) 44.4(0.75) 45.9(0.87) 51.0(0.93) 60.1(0.96) 111.9(1.02) 208.8(0.99) 400.0(0.93)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 65W / Windowsの電力プラン: 省電力]
対象 20スレッド 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 110.0(1.00) 112.5(1.00) 118.7(1.00) 170.9(1.00) 316.1(1.00) 595.4(1.00) 1258(1.00)
MRSolver(旧版:1.5.3) 135.0(1.23) 135.9(1.21) 133.6(1.13) 179.1(1.05) 317.0(1.00) 613.2(1.03) 1281(1.02)
Edax(オリジナル版:4.4) 142.0(1.29) 151.9(1.35) 174.9(1.47) 272.9(1.60) 461.0(1.46) 879.2(1.48) 1692(1.34)
Edax(奥原氏版:4.5.0-modern) 91.2(0.83) 95.5(0.85) 108.0(0.91) 168.5(0.99) 315.3(1.00) 608.1(1.02) 1170(0.93)

FFO40-59 --- Core i7-12700 (iiyama PC) [電力制限: 65W / UEFI(BIOS)でEコアを利用不可に設定]
対象 16スレッド 12スレッド 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 78.6(1.00) 70.7(1.00) 83.8(1.00) 129.8(1.00) 213.3(1.00) 432.4(1.00)
MRSolver(旧版:1.5.3) 87.2(1.11) 80.0(1.13) 85.4(1.02) 127.9(0.99) 214.9(1.01) 436.0(1.01)
Edax(オリジナル版:4.4) 91.8(1.17) 108.8(1.54) 127.4(1.52) 181.9(1.40) 293.8(1.38) 557.3(1.29)
Edax(奥原氏版:4.5.0-modern) 57.9(0.74) 62.2(0.88) 77.0(0.92) 127.7(0.98) 207.5(0.97) 395.4(0.91)

FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 65W]
対象 20スレッド 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.4) 1809(1.00) 1835(1.00) 2020(1.00) 2368(1.00)
MRSolver(旧版:1.5.3) 2019(1.12) 2167(1.18) 2277(1.13) 2534(1.07)
Edax(オリジナル版:4.4) 2667(1.47) 2835(1.54) 3345(1.66) 3836(1.62)
Edax(奥原氏版:4.5.0-modern) 1836(1.01) 1913(1.04) 2244(1.11) 2471(1.04)

FFO60-79 --- Core i7-12700 (iiyama PC) [電力制限: 95W]
対象 20スレッド 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.4) 1803(1.00) 1687(1.00) 1822(1.00) 2120(1.00)
MRSolver(旧版:1.5.3) 2061(1.14) 2097(1.24) 2047(1.12) 2309(1.09)
Edax(オリジナル版:4.4) 2515(1.39) 2598(1.54) 2733(1.50) 3396(1.60)
Edax(奥原氏版:4.5.0-modern) 1706(0.95) 1651(0.98) 1855(1.02) 2184(1.03)

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


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


・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.4) 61.8(1.00) 67.7(1.00) 80.6(1.00) 139.2(1.00) 264.8(1.00) 543.5(1.00)
MRSolver(旧版:1.5.3) 68.2(1.10) 74.3(1.10) 84.7(1.05) 139.8(1.00) 261.1(0.99) 543.6(1.00)
Edax(オリジナル版:4.4) 77.5(1.25) 86.4(1.28) 106.7(1.32) 176.8(1.27) 325.4(1.23) 621.9(1.14)
Edax(奥原氏版:4.5.0-modern) 47.1(0.76) 54.8(0.81) 67.4(0.84) 125.7(0.90) 237.8(0.90) 459.0(0.84)

FFO60-79 --- Ryzen 9 5900HX (MINISFORUM EliteMini HX90)
対象 16スレッド 12スレッド 8スレッド
MRSolver(新版:1.5.4) 1910(1.00) 2206(1.00) 2712(1.00)
MRSolver(旧版:1.5.3) 2233(1.17) 2459(1.11) 2937(1.08)
Edax(オリジナル版:4.4) 2649(1.39) 3193(1.45) 3552(1.31)
Edax(奥原氏版:4.5.0-modern) 1651(0.86) 1970(0.89) 2416(0.89)


FFO40-59 --- Core i7-6700HQ (MacBook Pro 15インチ 2016モデル)
対象 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 177.1(1.00) 230.1(1.00) 422.9(1.00) 838.4(1.00)
MRSolver(旧版:1.5.3) 188.6(1.06) 229.4(1.00) 422.0(1.00) 847.2(1.01)
Edax(オリジナル版:4.4) 241.3(1.36) 311.5(1.35) 551.7(1.30) 1061(1.27)
Edax(奥原氏版:4.5.0-modern) 147.9(0.84) 210.9(0.92) 375.5(0.89) 712.1(0.85)

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


FFO40-59 --- Core i5-4278U (Mac mini Late2014)
対象 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 361.3(1.00) 472.7(1.00) 890.7(1.00)
MRSolver(旧版:1.5.3) 364.8(1.01) 464.1(0.98) 895.4(1.01)
Edax(オリジナル版:4.4) 508.5(1.41) 614.4(1.30) 1101(1.24)
Edax(奥原氏版:4.5.0-modern) 334.1(0.92) 429.8(0.91) 744.5(0.84)

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


FFO40-59 --- Core m3-8100Y (Surface Go 2)
対象 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 518.6(1.00) 697.2(1.00) 1079(1.00)
MRSolver(旧版:1.5.3) 531.0(1.02) 692.8(0.99) 1107(1.03)
Edax(オリジナル版:4.4) 681.3(1.31) 845.7(1.21) 1209(1.12)
Edax(奥原氏版:4.5.0-modern) 444.3(0.86) 595.1(0.85) 870.6(0.81)

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


FFO40-59 --- Core i7-2600 (Gateway PC)
対象 8スレッド 4スレッド 2スレッド 1スレッド
MRSolver(新版:1.5.4) 195.4(1.00) 237.4(1.00) 440.7(1.00) 887.3(1.00)
MRSolver(旧版:1.5.3) 202.6(1.04) 239.7(1.01) 437.5(0.99) 903.0(1.02)
Edax(オリジナル版:4.4) 236.6(1.21) 318.8(1.34) 534.5(1.21) 1018(1.15)
Edax(奥原氏版:4.5.0-x64) 188.8(0.97) 255.5(1.08) 458.3(1.04) 870.9(0.98)
MRSolver(32Bit版:1.5.4) 300.0(1.54) 355.8(1.50) 654.4(1.48) 1331(1.50)
Edax(奥原氏版:4.5.0-x86) 318.6(1.63) 383.2(1.61) 690.6(1.57) 1316(1.48)

FFO60-79 --- Core i7-2600 (Gateway PC)
対象 8スレッド
MRSolver(新版:1.5.4) 6630(1.00)
MRSolver(旧版:1.5.3) 6996(1.06)
Edax(オリジナル版:4.4) 7792(1.18)
Edax(奥原氏版:4.5.0-x64) 6812(1.03)


・使用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.4の性能はスレッド数が8以上で、Ver1.5.3の性能を超える様になっています。
→Ver1.5.4で行った改良の効果が表れていると考えられます。
→Ver1.5.4では、スレッド数が多くなるとVer1.5.3では行われていた、有用性が低い評価が行われない様に改良しています。

・処理性能は、概ね、奥原氏版Edax > Ver1.5.4 > Ver1.5.3 > オリジナル版Edaxの順番になっています。
→MRSolverは特殊コードで高速化しているため、通常コードで実装されているオリジナル版Edaxより高速になると考えられます。
→奥原氏版Edaxでは、より高度な高速化用コードが使用されるため、MRSolverよりも高速に動作していると考えられます。

・Core i7-12700環境では、他環境よりも、EdaxとMRSolverの性能差が小さくなっています。
→Core i7-12700のCPUキャッシュサイズが他環境のCPUよりも大きい事がMRSolverの性能を向上させていると考えられます。
→Core m3-8100Y環境では、より性能差は拡大していますが、これは、ファンレス環境であるため、発熱による影響が考えられます。

・MRSolverと比べて、4.5.0-modern版Edaxのシングルスレッド性能は高く、2〜4スレッドでは、相対的に少し低下します。
→4.5.0-modern版に実装されている評価用関数の処理速度はMRSolverと比べて高速であると考えられます。
→マルチスレッド動作時には、YBWCによる待ちが発生する事から、MRSolverと比べて性能が低下する様に見えると考えられます。

・MRSolverと比べて、Edaxの8スレッド以上でのハイパースレッディングによる性能向上率は高くなっています。
→Edaxでは、YBWCによる待ち時間があり、ハイパースレッディング動作時には、その待ち時間を有効活用できると考えられます。
→MRSolverでは、各スレッドの待ち時間が少ない為、ハイパースレッディング動作時の性能向上率は高くならないと考えられます。

・MRSolverは、Core i7-12700環境で全スレッド動作すると、性能が劣化するケースが多くなっています。
→全スレッド動作時には消費電力が増大する結果、電力制限/冷却の必要性から、CPUのクロック周波数が低下すると考えられます。
→Edaxでは、YBWCによる評価待ちにより、相対的に電力消費が少なくなる為に、性能劣化が発生しづらいと考えられます。

・EdaxとMRSolverの性能差は、FFO40-59よりもFFO60-79の方が小さくなる傾向が見られます。
→Edaxは最善手探索後、βカットが発生しなかった場合に他探索を開始しますが、MRSolverは最善手探索中に他の善手探索も行います。
→FFO40-59では探索が容易であるためMRSolverの評価効率が悪く、FFO60-79では困難なため有利となる場合が多いと考えられます。

・EdaxとMRSolverの性能差は、x64/x86版では、modern版での性能差よりも小さくなっています。
→x64/x86版では、modern版の高度な高速化コードが使用されないため、コードレベルでの性能差が少ないと考えられます。
→アルゴリズム的な違いはないため、FFO40-59/FFO60-79の違い、スレッド数による性能の違いについては、同様の傾向が見られます。

TOPページに戻る