WCSC33 で公開されたソフトを使う

WCSC33 終了後に多くのソフトウェアが公開されたので、現時点で無料で利用できるソフトウェアをまとめておく。

* 探索部
    * [YaneuraOu](https://github.com/yaneurao/YaneuraOu)
    * [FukauraOu](https://github.com/yaneurao/YaneuraOu)
    * [dlshogi](https://github.com/TadaoYamaoka/DeepLearningShogi)
* NNUE 系
  * HalfKP-256×2-32-32（標準NNUE）型 (`YANEURAOU_ENGINE_NNUE` でコンパイル)
    * YaneuraOu-7.63+/[水匠５](https://github.com/mizar/YaneuraOu/releases/tag/v7.5.0)（推奨 `FV_SCALE=24`）
    * YaneuraOu-7.63+/[Blossom](https://twitter.com/senninha_a/status/1654675205464399872)（推奨 `FV_SCALE=24`）(YaneuraOu-7.63/水匠５よりR+34.6(たややん氏による))
    * YaneuraOu-7.63+/[SQMZ_Cendrillion2](https://twitter.com/Grampus_ef/status/1654436704013651970)
    * YaneuraOu-7.63+/[Háo (tanuki-.halfkp_256x2-32-32.2023-05-08)](https://github.com/nodchip/tanuki-/releases/tag/tanuki-.halfkp_256x2-32-32.2023-05-08)（推奨 `FV_SCALE=20`） (YaneuraOu-7.63/Blossom よりR+40.1(たややん氏による))
  * HalfKP-1024×2-8-32 型 (`YANEURAOU_ENGINE_NNUE_HALFKP_1024X2_8_32` でコンパイル)
    * [Lí (tanuki- wcsc33)](https://github.com/nodchip/tanuki-/releases/tag/tanuki-wcsc33-2023-05-04) (YaneuraOu-7.63+/tanuki-.halfkp_256x2-32-32.2023-05-08 と同等の強さ (nodchip氏による))
  * HalfKP-KSDG 型
    * [W@nderER-wcsc33](https://twitter.com/ihme_vaeltaa/status/1659868386736898049)
* 深層ニューラルネットワーク系
  * FukauraOu-7.63+/[dlshogi-dr2-exhi](https://tadaoyamaoka.hatenablog.com/entry/2021/08/17/000710) （オープンソフトウェアではないので注意）
  * [Lightweight](https://rheinmetall.hatenablog.com/entry/2023/05/06/120000)（オープンソフトウェアではないので注意）
  * [ponkotsu-wcsc33](https://jj1guj.hatenablog.com/entry/2023/05/13/203405)（オープンソフトウェアではないので注意）
* 定跡
  * [s-book_black](https://twitter.com/mztn7_fan)
  * [たややん角換わり定跡](https://www.youtube.com/watch?v=7ghUbNtuJtQ)
  * [HoneyWaffleBook-wcsc33](https://github.com/32hiko/HoneyWaffleBook/releases/tag/wcsc33)

TODO: YaneuraOu のビルド方法、dlshogi のビルド方法をまとめる。

## YaneuraOu のビルド方法

```bash
git clone git@github.com:git@github.com:yaneurao/YaneuraOu.git
cd YaneuraOu/source
make tournament # YanueraOu/source に実行ファイル YaneuraOu-by-gcc が生成される。
```

ファイル配置

```text
.
├── engine_options.txt
├── YaneuraOu-by-gcc
└── eval
    └── nn.bin
```

```text:engine_options.txt
option name USI_Hash type spin default 使用するメモリ(MB) min 1 max 1048576
option name Threads type spin default 使用するスレッド数 min 1 max 512
option name FV_SCALE type spin default 適切な数値 min 1 max 128
```

定跡なしで使う場合はこの設定を基本として使えば良いと思う。

## dlshogi のビルド方法

### Prerequirement

* NVIDIA 社の GPU
* CUDA
* cuDNN
* TensorRT

```bash
git clone git@github.com:TadaoYamaoka/DeepLearningShogi.git
cd DeepLearningShogi/usi
make # DeepLearningShogi/usi/bin に実行ファイル usi が生成される。
```

ファイル配置

```text
.
├── model.onnx
└── usi
```

## FurakuraOu のビルド方法

Ubuntu 上で

```bash
git clone git@github.com:git@github.com:yaneurao/YaneuraOu.git
cd YaneuraOu
make -C source YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_TENSOR_RT_UBUNTU COMPILER=g++
```

または[ここ]()より、 macOS 上で M1 なら

```bash
git clone git@github.com:git@github.com:yaneurao/YaneuraOu.git
cd YaneuraOu
make -C source YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_COREML TARGET_CPU=APPLEM1
```

Intel なら、

```bash
make -C source YANEURAOU_EDITION=YANEURAOU_ENGINE_DEEP_COREML TARGET_CPU=APPLEAVX2
```

## onnx ファイルを mlmodel ファイルに変換する

Python 3.8 で

```bash
pip install coremltools==5.2 "protobuf >= 3.1.0, <= 4.0.0"
pip install onnx
```

```python
import coremltools
model = coremltools.converters.onnx.convert("model.onnx")
model.save("model.mlmodel")
```

ponkotsu を変換しようとしたがまだ上手くいっていない。

## TensorRT のインストール

古い CUDA バージョンを使うときは、パッケージマネージャを使うのではなく、 tar からインストールすること。