昨日、Windows11でCUDA on WSLを試したが、なぜかWindows上でdlshogiのNPSが低下する問題が発生した。
WindowsのCUDAのバージョンが古かったため、新しいバージョンで試してみた。
CUDAインストール
TensorRTの最新版(8.2.0.6)に対応した、CUDAの最新版(11.4)をインストールする。
昨日インストールしたドライバをそのままにして、CUDA 11.4をインストールしようとしたが、インストールでエラーが発生した。
そこで、CUDA on WSLに対応したドライバをアンインストールしてから、インストールしたところ、インストールできた。
ドライバは、CUDA11.4に付属するものをインストールした。
Windows上でのNPS測定
この状態で、dlshogiをCUDA、cuDNN、TensorRTの最新版とリンクするようにしてビルドし、NPSを測定した。
結果は以下の通り、昨日測定したWSLのDocker上で測定したNPSとほぼ同じになった。
info nps 40857 time 5022 nodes 205188 hashfull 20 score cp 72 depth 25 pv 2g2f 8c8d 2f2e 8d8e 7g7f 4a3b 8h7g 3c3d 7i8h 2b7g+ 8h7g 3a2b 6i7h 2b3c 3i3h 7a6b 3g3f 6c6d 5i6h 6b6c 9g9f 9c9d 1g1f 1c1d B*3a
Docker上での測定
この状態で、WSLのDockerでCUDAが使用できるか確認したが、問題なく使用できた。
CUDA on WSL対応のドライバのインストールは不要だったようである。
Docker上でも再度NPS測定してみた。
info nps 40301 time 5032 nodes 202796 hashfull 20 score cp 195 depth 29 pv 2g2f 3c3d 7g7f 8c8d 2f2e 8d8e 6i7h 8e8f 8g8f 8b8f 2e2d 2c2d 2h2d 4a3b 2d3d 2b3c 5i5h 5a5b 3g3f 8f7f 8h7g 7f7d 3d7d 7c7d P*2h P*8b 7i6h 3a4b P*7b
Windows上とほぼ同じNPSがでている。
まとめ
CUDA on WSLに対応したドライバを使用すると、Windows上での古いバージョンのCUDAの性能が低下する問題が発生した。
CUDA on WSLに対応したドライバしてアンインストールして、CUDA11.4に付属のドライバをインストールすることで、Windows上で性能が低下しなくなった。
また、WSLのDocker上でも問題なくCUDAが使用でき、性能が低下しないことがわかった。