Skip to content
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

採点用サーバーにおけるのcudaのバージョンについて #20

Closed
KoichiSasano opened this issue Dec 15, 2020 · 15 comments
Closed

Comments

@KoichiSasano
Copy link

物体認識をyoloを使って行っているのですが、先日採点用サーバーにpushしたところ
うまく動作しませんでした。
HostPCではうまく動作したので、採点用サーバーとのcuda等々のバージョンの違いが原因ではないかと考えています。

HostPCのスペックは、
・Ubuntu:18.04LTS
・nvidia-driver:455.45.01
・CUDA:10.1
・cuDNN:v7.6.5
となっております。

また、採点用サーバーのcudaやcupyのバージョンはこちらが指定することは可能でしょうか。
ご確認、よろしくお願いいたします。

@yosuke
Copy link
Member

yosuke commented Dec 15, 2020

採点サーバではCUDA11が動いているのですが、それ以下のバージョンであれば問題なく動くはずです。
Dockerfileに以下の各行が必要ですが、書かれているでしょうか?

ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility

@yosuke
Copy link
Member

yosuke commented Dec 15, 2020

cudaやcupyについては、Dockerfileを編集して自分でインストールする形になります。
このあたりが参考になると思います。
https://github.com/hsr-project/tmc_wrs_docker/blob/master/Dockerfile.nvidia#L8-L22

@KoichiSasano
Copy link
Author

ありがとうございます。
提示して頂いた通りにDockerfileを作成したのですが、以下のようなエラーがでてしまいました。
物体認識にはchainer v6.0.0を用いております。

RuntimeError: CUDA environment is not correctly set up (see https://github.com/chainer/chainer#installation).CuPy is not correctly installed. If you are using wheel distribution (cupy-cudaXX), make sure that the version of CuPy you installed matches with the version of CUDA on your host. Also, confirm that only one CuPy package is installed: $ pip freeze If you are building CuPy from source, please check your environment, uninstall CuPy and reinstall it with: $ pip install cupy --no-cache-dir -vvvv Check the Installation Guide for details: https://docs-cupy.chainer.org/en/latest/install.html
重ねて質問させていただきたいのですが、
現在採点用サーバーにて複数のノードを起動すると
結果が帰ってくるまでに15分以上かかってしまいます。より早く結果を返すことはできるでしょうか。

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

Dockerfileの該当部分(cudaとcupyのインストール部分)を貼り付けていただけますでしょうか?
おそらく今はシミュレーションの強制タイムアウト(シミュレーション時間で20分強=実時間で18分ぐらい)までプロセスが動き続けてタイムアウトしてようやく返ってくるという感じになっているのではないかと思います。エラーが出た場合にプロセスを終了させるようにプログラムを書けばもっと早く結果が返ります。

@KoichiSasano
Copy link
Author

KoichiSasano commented Dec 16, 2020

返信ありがとうございます。
該当の部分は、以下のとおりです。
`
ENV CUDA_VERSION 10.1.105
ENV CUDA_PKG_VERSION 10-1=$CUDA_VERSION-1
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility,graphics
ENV NVIDIA_REQUIRE_CUDA "cuda>=10.1 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411 brand=tesla,driver>=418,driver<419"
ENV NCCL_VERSION 2.4.8
ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs
ENV CUDNN_VERSION 7.6.5.32

RUN apt-get install -y curl

RUN apt-get update && apt-get install -y --no-install-recommends
gnupg2 curl ca-certificates &&
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub | apt-key add - &&
echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list &&
echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list

RUN apt-get update && apt-get install -y --no-install-recommends
cuda-cudart-$CUDA_PKG_VERSION
cuda-compat-10-1
&& ln -s cuda-10.1 /usr/local/cuda

RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf &&
echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf

RUN apt-get update && apt-get install -y --no-install-recommends
cuda-libraries-$CUDA_PKG_VERSION
cuda-npp-$CUDA_PKG_VERSION
cuda-nvtx-$CUDA_PKG_VERSION
libcublas10=10.2.1.243-1
libnccl2=$NCCL_VERSION-1+cuda10.1
&& apt-mark hold libnccl2

RUN apt-mark hold libcublas10

RUN apt-get update && apt-get install -y --no-install-recommends
cuda-nvml-dev-$CUDA_PKG_VERSION
cuda-command-line-tools-$CUDA_PKG_VERSION
cuda-nvprof-$CUDA_PKG_VERSION
cuda-npp-dev-$CUDA_PKG_VERSION
cuda-libraries-dev-$CUDA_PKG_VERSION
cuda-minimal-build-$CUDA_PKG_VERSION
libcublas-dev=10.2.1.243-1
libnccl-dev=2.4.8-1+cuda10.1
&& apt-mark hold libnccl-dev

RUN apt-mark hold libcublas-dev

LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"

RUN apt-get update && apt-get install -y --no-install-recommends
libcudnn7=$CUDNN_VERSION-1+cuda10.1
libcudnn7-dev=$CUDNN_VERSION-1+cuda10.1
&& apt-mark hold libcudnn7

RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py &&
python2 get-pip.py &&
rm get-pip.py &&
pip install -U pip

RUN source ~/.bashrc &&
pip install -U cupy-cuda101==6.0.0
chainer==6.0.0
chainercv

`
update/upgrade, autoremoveなどの部分は省略しております。
よろしくお願いいたします。

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

試しに動かしてみたのですが、確かにエラーが出ますね、、、。
yosuke/test-cupy@4ea471a

再現したのでサーバ側を改良してみます(ローカルのnvidia-dockerだと動くのでDockefileが悪いわけでは無さそうです)。

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

nvidia/cudaイメージを使ってnvidia-smiを実行するところまでは動く。
yosuke/test-cupy@680f73e

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

cupyは公式Dockerイメージを使ってもだめ
yosuke/test-cupy@415e413

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

関連するかもしれない情報
https://qiita.com/tymob/items/f706b39f5a008831cfcf

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

この解決法が一番きれいな気がする。
Kaggle/docker-python#361 (comment)

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

@KoichiSasano
こちらのテストでは無事に動きました。サーバ側のnvidia-dockerでcompute capabilityの追加が必要だったようです。
もう動くと思うので試してみてください。
yosuke/test-cupy@ac5220f

@KoichiSasano
Copy link
Author

ありがとうございます。
試してみたところ、おそらくうまく行ってるとは思うのですが、採点の結果がdockerfileのbuild successだけ返ってきて、その後の実行できたどうかが返ってこない状況です。
この状況が何を意味しているのか教えていただきたいです。
何度も対応していただき本当にありがとうございます。

@yosuke
Copy link
Member

yosuke commented Dec 16, 2020

採点サーバ上ではシミュレーション時間上で20分で競技がタイムアウトして競技が終了するはずなのですが、そのタイムアウト後のアルゴリズムの強制終了がうまくできていない症状です。
こちらの方でも調整してみます。

@yosuke
Copy link
Member

yosuke commented Dec 17, 2020

タイムアウト時の挙動を調整してみました。
まだうまくいかないなどあったら、こちらに書き込んで教えてください。

@KoichiSasano
Copy link
Author

返信ありがとうございます。
先ほど確認したところ、無事想定通りの結果が出力されました!

これにて、closeとさせていただきます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants