Skip to content

ベンチマーク

DLManaka と Manaka の現在速度を、同じ手順で測定した記録です。現在の速度値はこのページを正本とし、設計資料や過去の実験記録に残る古い値は性能比較に使いません。

測定コミットは 360398d。各エンジン固有の説明は DLManaka ベンチマークManaka ベンチマーク を参照してください。

測定環境

GPUドライバCompute CapabilityCPU
RTX 4070 Ti 12 GB595.848.9Core Ultra 7 265KF
A100-SXM4-80GB580.126.098.0EPYC 7742
RTX 5060595.8412.0Core i5-14400

GPU 測定は、実行前後にホスト側の nvidia-smi で他プロセスがいないことを確認したものだけ採用しています。A100 のホストは共有環境なので、小さいバッチの値は他よりばらつきます。

最良設定

GPU

処理RTX 4070 TiA100RTX 5060
DLManaka 学習6,818 pos/s, 256×4, torch.compile21,396, 4096×1, torch.compile3,854, 256×4, torch.compile
DLManaka 推論9,728 pos/s, バッチ 12819,602, バッチ 512測定不可
Manaka 学習104,579 pos/s, バッチ 4096117,059, バッチ 204858,080, バッチ 2048

DLManaka 学習では、測定した全条件で torch.compile が有効でした。最適なバッチ幅は GPU と処理ごとに違うため、別マシンの設定をそのまま流用しないでください。

RTX 5060 で DLManaka 推論が動かないのは、ort が使うビルド済み ONNX Runtime に sm_120 のカーネルイメージがないためです。同じ GPU で PyTorch 学習が動くこととは矛盾しません。

CPU探索

search_speed、既定の d128_o3_h512_pair16、5,000シミュレーション、1 コア:

CPUsims/snpsevals/s
Core Ultra 7 265KF P-core22,32922,33429,608
Core i5-1440016,41116,41423,736
EPYC 77424,4114,41211,006

EPYC の値は共有ホストが高負荷の状態で測ったため、CPU 同士の厳密な比較には使えません。

265KF では、1 つのパラメータ表を共有するスレッド方式が最もよく伸び、20 スレッドで 371,498 sims/s。20 個の独立プロセスでは 246,556 sims/s でした。manaka-selfplay は既に共有表方式を使っています。

条件を揃えた推論速度

Manaka の evals/s と DLManaka の pos/s は、そのままでは比較できません。eval_throughput では Manaka も異なる局面を 1 回ずつ評価します。

評価器スループットハードウェア
Manaka、毎回アキュムレータを再構築19,389 pos/s265KF 1 コア
Manaka、差分更新28,550 pos/s265KF 1 コア
DLManaka バッチ 1917 pos/sRTX 4070 Ti 1 枚
DLManaka 4070 Ti 最良9,728 pos/sRTX 4070 Ti 1 枚、バッチ 128
DLManaka A100 最良19,602 pos/sA100 1 枚、バッチ 512

構造比較では Manaka の再構築側を使います。ONNX の残差ネットワークは、Manaka のようにノード間で差分状態を保持できないためです。この条件では A100 1 枚と 265KF 1 コアの局面処理速度がほぼ同じです。棋力比較ではありません。

学習側の要点

  • DLManaka: 小さいバッチでは A100 を使い切れない。torch.compile の効果も 4070 Ti より大きい。
  • Manaka: バッチ幅を調整しても A100 の優位は小さく、残差 CNN と同じ伸び方はしない。
  • GPU 使用率だけでは飽和を判断できない。 99% と表示されていても改善余地はあり得る。
  • 比率は複数回の中央値で判断し、競合プロセスがいた測定は捨てる。

測定ルール

  1. コミット・処理・手順が揃った数値だけ比較する。
  2. CUDA が実際に使われていることを確認する。ONNX Runtime は CPU へ自動フォールバックすることがある。
  3. GPU の競合確認はコンテナ内ではなくホスト側で行う。
  4. 非単調なバッチ曲線を平滑化したり、数%の単発差から結論を出したりしない。
  5. 現在の絶対速度には、このページの値を使う。