kobanium / aobazero

Aoba Zero
Other
54 stars 8 forks source link

マルチスレッドのNUMA対応について #41

Open bleu48 opened 3 years ago

bleu48 commented 3 years ago

実用的な意味ではほぼジョークIssueです。(削除頂いて構いません) 手持ちの40コア80スレッドのマシンで1.5 cpu onlyバイナリで対戦させてみたところ NUMAをまたぐCPUを使えていません。 CPUで100npsを超えてみたいのですが(笑)

棋譜生成は80スレッドに負荷が入りました。

yssaya commented 3 years ago

性能でませんでしたか・・・。 CPU版は12スレッドぐらいまでしか性能は調べていませんでした。 aobaz 単体だと96スレッドまでは一応動くはずですが。一度24コア48スレッドぐらいで調整してみます。 棋譜生成はautousiがプロセス(aobaz)をたくさん作るのでCPUを使いやすいのかもしれません。

bleu48 commented 3 years ago

いえいえ,Windowsでは通常のままだとNUMAまたいでくれないんです。 2ソケットのXeonだと片方しか使ってくれませんでした。

yssaya commented 3 years ago

Linuxだと物理的に2枚CPUが載ったマシンだと16スレッドまでは伸びるようです。 ただしHTをOFFにしてあります。 Windowsの物理2枚CPUは持ってないので確認できないです。

スレッドの作成はこのあたりですが、何か必要な設定などありましたでしょうか? https://github.com/kobanium/aobazero/blob/release/src/usi-engine/bona/ysszero.cpp#L861

CPU版の動作。E5-2687W 0 @ 3.10GHz (8コア 16スレッド)  x2 、ただしHTをOFF。Linux(CentOS)
スレッド数  nps
 1       6/s
 2      11/s
 4      23/s
 8      42/s
12      63/s
16      85/s
bleu48 commented 3 years ago

時間が取れたときにこちらで対応を試してみます。