Skip to content

v1.5

Compare
Choose a tag to compare
@KunihitoHoki KunihitoHoki released this 22 Oct 11:50
· 81 commits to release since this release
7141f62

【ビルド済みバイナリ】
aobazero-1.5-w64-opencl.zip : 64ビット版 Windows で GPU を利用したい方はこちらのファイルをダウンロードしてください。
aobazero-1.5-w64-cpu-only.zip : 64ビット版 Windows で GPU を利用したくない方はこちらのファイルをダウンロードしてください。

【主な変更点】
ニューラルネットワークを順方向に計算する OpenCL のコードの効率化のため、

・バッチを組んでタスク粒度を大きく
・複数のコマンドキューを利用してタスクを連続処理
・出力が 3x3 の Winograd Transforms を使って 9x9 の将棋盤の畳み込み演算を評価
・半精度浮動小数点数を部分的に利用して行列積を計算

するようにした。

【覚え書き】
OpenCLを使う場合に3倍から10倍程度、高速になりました。
初回起動時(エンジン登録時)にOpenCLのチューニングを行うため3分ほど時間がかかります。
2回目以降は10秒から50秒程度で起動できます。

ShogiGUIで動作するように。ただエンジン登録時に30秒を超えると失敗するので
将棋所で登録させた後だと成功しやすいです。
ノートPCのバッテリ動作だと間に合わない場合がありますので電源を繋ぐなどして下さい。
ShogiGUIでも動作しますが、engineに送られてくる局面が初期局面からの手順(position startpos moves ...)ではなく、
現在局面のみ(position sfen ...)なので、過去7局面をNNの入力に必要とするAobaZeroの本来の実力は出せません。

OpenCL版で複数のGPUを使えるように(2枚なら "-u 0 -u 1" など)。
OpenCL版でバッチ数とスレッド数を指定できるように("-b 7 -t 21" など)。
OpenCL版ではGPUが遅いのでスレッドの数は論理CPUの数を超えても大丈夫です。
バッチ数の2倍から4倍程度にスレッド数を指定すると効率がよいです。
バッチ数は 3,7,14,28 が効率がよいです。GPUごとに最適な設定は異なります。
標準(指定なし)では "-b 7 -t 21" です。
Windows版ではスレッド数が35を超えるとプロセスの起動に失敗する場合があります。

IntelのCPUに内蔵GPUとNVIDIAのGPU、など複数のOpenCLデバイスが見える場合は
最適なものを自動で選べないことがあります。bin\ocldevs.bat を実行して動かしたい環境、
Platform ID: 1 なら "-u 1" とオプションを指定して下さい。

GTX 1650, 1660, 1650 SUPER, 1660 SUPER では "-h 2" を指定した方が高速に動作します。

CPU版でマルチスレッドに対応。標準ですべてのスレッドを使います。
思考時間で打ち切るオプションの追加( "-s 3.5" で1手3.5秒)。
floodgate用に宣言勝ちを256手以内にしやすくするオプションの追加("-drawmove 256")。
宣言勝ちオプションの追加。有効にするには"-i"を付けて下さい。

詳細は zip に含まれる readme.txt , aobaz.bat をご覧下さい。