-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
マルチGPUで探索中にクラッシュする #10
Comments
[update 20/03/10 11:40] 追記:シングルGPU、シングルスレッドでも落ちる
でも落ちます。やはり落ちる前に
と言ったログが吐かれます。私の理解が正しければ、1GPU、1スレッドでmutexのlockが意味をなすことはないと思ってたのですが、lockの解除待ちに時間がかかってる原因はわからないです(makefileはデフォルトを使ってるので最適化の過程で変なことをしてるとか?) 追記2 cudaのバージョンを10.0にしても落ちる
追記3CPUは32コアを使っています。体感的にCPUのコア数を落とすとクラッシュの頻度が落ちる気がします。 追記4 ubuntu16 + cuda10.1 + cudnn7.6でも落ちる
todo
|
以下のような手順でUbuntuでマルチGPUで動作できています。GPUはTesla V100です。 適当な作業ディレクトリで git clone https://github.com/TadaoYamaoka/DeepLearningShogi.git viインストール vi Makefile make cd bin/ apt install wget wget https://github.com/TadaoYamaoka/DeepLearningShogi/releases/download/wcsc29/dlshogi-wcsc29.zip apt install unzip unzip dlshogi-wcsc29.zip ./usi position startpos 将棋所などのGUIソフトから実行する場合は、以下のようにbatファイルを作成する。 |
ありがとうございます。頂いた条件で動くことを確認しました。加えて 今まで動かなかった原因を検証したところ
が悪さをしていたようです。一応2^nに属している( |
8388608で遅くなるのは物理メモリが不足してスワップが発生しているためではないかと思います。 |
ありがとうございます。内部構造への理解が足りていなくて恐縮ですが、dlshogiは対局中に追加で動的にメモリを取得するような作りになっているのでしょうか? また、その場合、メモリサイズに対してHashの値はどのようにして決めればよいでしょうか? |
動的に変更はしていませんが、C++のnewは仮想メモリから確保するため、物理メモリ以上のサイズの場合、ハッシュが埋まるとページアウトが発生します。 |
うっ、不勉強で申し訳ありませんでした。色々騒ぎ立てましたが、つまるところ
ということだったのだと思われます。お手数をおかけしたお詫び and せめてものお礼として、ここまでのやり取りを纏めたdlshogi動かすマニュアルを作るので、良ければお使いいただければ幸いです(今晩辺りに完成させる予定です)。 |
ハッシュ以外の原因でクラッシュするマルチGPUで顕在化するバグがありましたので、修正しました。 |
ありがとうございます。今更ながら動かし方を纏めたwikiページ(の雛形的なもの)を作ってみました。今までdlshogiをユーザ目線で動かしてきた経験を元に書いています。間違いや追加のリクエストがございましたらよろしくお願いします。 |
ありがとうございます!🙏 |
マルチGPUで対局が行えない
wcsc29の条件を再現しようとしましたが、マルチGPUを利用しようとすると対局中にクラッシュしてしまいます。以下に実験条件を記載します。もし原因に心当たりありましたらアドバイスをいただけると幸いです。
対局の途中、かつ再現性無くクラッシュします。エンジンを再起動し、クラッシュした局面をもう一度読ませても無事に読めてしまいます。頻度としては1対局に1度ぐらい(まともに対局を終了できない程度)です。
落ちた局面の一例
用いたGPU
V100 2台
対戦環境
やねうら王と1手2秒対局。ponderなし。定跡なし。dlshogi側は一定時間対局モード。
usiの設定
wcsc29で配布していたものを使用。コードはdlshogiのmasterにある最新のものを使用。
OS, cudaのバージョン, cudnnのバージョン
FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
を元に構成。OSはUbunutu18、cudnnのバージョンは7、cudaは10.1その他試したこと
FP16をon/offにしても何れのケースでもクラッシュします
UCT_Threadsを1や2や4に変えても何れのケースでもクラッシュします。
クラッシュする前から、2秒固定モードであるにもかかわらず、1手指すのに2秒以上かかるという予兆があることがあるようです(いきなりクラッシュすることもあるし、1手4秒とかかかるようになってからクラッシュすることもある)
nn->foward
(forwardのtypo?)が遅くなっているようです。具体的にはUctSearch.cpp
のnn_foward
をのように書き換えると
のような出力が得られます。クラッシュする予兆が出る前はこのような出力はでてこないこと、too slow calc gpuが先にでてくることが特徴です。
The text was updated successfully, but these errors were encountered: