以前在測試的時候都是用一個特定的局面來看各種程式和 CPU 的算力.
但是卻一直都沒有去用某一種特定軟體的 benchmark 來跑.
不過現在在局面看起來很可能是 YaneuraOu 獨大的狀況下...
(Apery/技巧雖然也一樣 open source, 但是卻似乎不像 YaneuraOu 這樣活躍的感覺)
所以在第一部份, 謹參考
uuunuuun 的設定方式來做一般化的測試.
主要重點:
1. 單執行緒使用 bench 128 1, 亦即 benchmark 的標準是 RAM = 128 MB, 執行緒僅用一個, 深度限制預設為 17. 多執行緒時使用 bench 128 #t 19, #t 就是執行緒數目, 深度限制為 19.
2. 評估函數預設為 elmo(WCSC27), 並非選擇早期的 ShinYane 或者是後來的 relmo/yaselmo 等等.
整理過後手邊的機器最粗略的列表大致如下:
(使用每個平台能得到的最佳設定, 使用單執行緒, 等同於核心數的執行緒數, 和最多可用的執行緒數來測試, 執行四次取平均, 然而 Windows 上暫時無法取得 64bit SSE4.2 Tournament version.)
CPU |
kNPS |
threads |
clock |
Yane version |
OS |
i7-720qm |
367 |
1 |
1.6Ghz T 2.8Ghz |
4.76 64SSE4.2 |
Win 10 Pro |
i3-3220 |
492 |
1 |
3.3Ghz |
4.76 64SSE4.2 |
Win 10 Ent |
i5-7200U |
868 |
1 |
2.5Ghz T 3.1Ghz |
4.76 64AVX2 T |
Win 10 Pro |
i7-2600 |
737 |
1 |
3.4Ghz |
4.76 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
980 |
1 |
2.6Ghz T 3.5Ghz |
4.76 64AVX2 T |
Win 10 Home |
FX-8320 |
388 |
1 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
748 |
1 |
2.7Ghz T 3.5Ghz |
4.76 64SSE4.2 T |
Ubuntu 16.04.3 |
i7-720qm |
939 |
4 |
1.6Ghz T 2.8Ghz |
4.76 64SSE4.2 |
Win 10 Pro |
i3-3220 |
802 |
2 |
3.3Ghz |
4.76 64SSE4.2 |
Win 10 Ent |
i5-7200U |
1307 |
2 |
2.5Ghz T 3.1Ghz |
4.76 64AVX2 T |
Win 10 Pro |
i7-2600 |
2065 |
4 |
3.4Ghz |
4.76 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
2413 |
4 |
2.6Ghz T 3.5Ghz |
4.76 64AVX2 T |
Win 10 Home |
FX-8320 |
1406 |
4 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
4462 |
8 |
2.7Ghz T 3.5Ghz |
4.76 64SSE4.2 T |
Ubuntu 16.04.3 |
i7-720qm |
1076 |
8 |
1.6Ghz T 2.8Ghz |
4.76 64SSE4.2 |
Win 10 Pro |
i3-3220 |
1042 |
4 |
3.3Ghz |
4.76 64SSE4.2 |
Win 10 Ent |
i5-7200U |
1596 |
4 |
2.5Ghz T 3.1Ghz |
4.76 64AVX2 T |
Win 10 Pro |
i7-2600 |
2233 |
8 |
3.4Ghz |
4.76 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
3275 |
8 |
2.6Ghz T 3.5Ghz |
4.76 64AVX2 T |
Win 10 Home |
FX-8320 |
2175 |
8 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
5353 |
16 |
2.7Ghz T 3.5Ghz |
4.76 64SSE4.2 T |
Ubuntu 16.04.3 |
更新: 所有 CPU 的 4.77 更新版本如下:
CPU |
kNPS |
threads |
clock |
Yane version |
OS |
i7-720qm |
423 |
1 |
1.6Ghz T 2.8Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
i3-3220 |
564 |
1 |
3.3Ghz |
4.77 64SSE4.2 |
Win 10 Ent |
i5-7200U |
880 |
1 |
2.5Ghz T 3.1Ghz |
4.77 64AVX2 T |
Win 10 Pro |
i7-2600 |
812 |
1 |
3.4Ghz |
4.77 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
965 |
1 |
2.6Ghz T 3.5Ghz |
4.77 64AVX2 T |
Win 10 Home |
FX-8320 |
388 |
1 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
742 |
1 |
2.7Ghz T 3.5Ghz |
4.77 64SSE4.2 T |
Ubuntu 16.04.3 |
i7-720qm |
1038 |
4 |
1.6Ghz T 2.8Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
i3-3220 |
921 |
2 |
3.3Ghz |
4.77 64SSE4.2 |
Win 10 Ent |
i5-7200U |
1324 |
2 |
2.5Ghz T 3.1Ghz |
4.77 64AVX2 T |
Win 10 Pro |
i7-2600 |
2256 |
4 |
3.4Ghz |
4.77 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
2455 |
4 |
2.6Ghz T 3.5Ghz |
4.77 64AVX2 T |
Win 10 Home |
FX-8320 |
1406 |
4 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
4478 |
8 |
2.7Ghz T 3.5Ghz |
4.77 64SSE4.2 T |
Ubuntu 16.04.3 |
i7-720qm |
1200 |
8 |
1.6Ghz T 2.8Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
i3-3220 |
1195 |
4 |
3.3Ghz |
4.77 64SSE4.2 |
Win 10 Ent |
i5-7200U |
1569 |
4 |
2.5Ghz T 3.1Ghz |
4.77 64AVX2 T |
Win 10 Pro |
i7-2600 |
2275 |
8 |
3.4Ghz |
4.77 64SSE4.2 T |
Xubuntu 16.04.3 |
i7-6700hq |
3196 |
8 |
2.6Ghz T 3.5Ghz |
4.77 64AVX2 T |
Win 10 Home |
FX-8320 |
2175 |
8 |
3.5Ghz T 4.0Ghz |
4.77 64SSE4.2 |
Win 10 Pro |
E5-2680 |
5333 |
16 |
2.7Ghz T 3.5Ghz |
4.77 64SSE4.2 T |
Ubuntu 16.04.3 |
整理中的資料:
Google Doc預計後面會比較的方向有以下幾種:
1. Tournament 跟一般版的差距.
2. AVX2 和 SSE4.2 的差距. (需要可使用 AVX2 的 CPU)
3. 評估參數的差距: ShinYane/elmo/relmo8/yaselmo 預定.
4. MultiPV 的差距: MultiPV > 1 的時候, 單執行緒為 bench 1024 1, 多執行緒為 bench 4096 #t , 不考慮使用更深的深度的原因已經寫在爆增的記憶體需求當中.
4. Docker 容器內外差距: 僅適用於 linux 系統.5. Windows vs Linux: 僅適用於雙系統的 i7-6700hq. (laptop)
以上... 感覺各種不同的 CPU 測起來會有很混亂的視覺效果 Orz
而且這會是超級大工程, 今天 YaneuraOu 才出了 4.77 版重大修正.
沒有這個重大修正, MultiPV 的 benchmark 有很多都將無法達成. 目前已知要到 4.77 版才確定可以成功使用非 tournament 版本穩定執行 MultiPV > 1 的 bench. 4.76 以前的一般版本程式執行 MultiPV > 1 的 bench 會有很高的機率遭遇到 Segmentation fault 而終止程式. (不管是 Windows 或是 Linux 都會發生)