0

ソースから PaddlePaddle を手動でインストールするためのドキュメントと比較して、PaddlePaddle の Docker デプロイ ドキュメントにはわずかな相違があります。

Docker Hub からコンテナーをプルした後の Docker デプロイのドキュメントには、次のように記載されています。

docker pull paddledev/paddle

環境変数を設定して、に含める必要がありますdocker run。つまり、次のようになります。

export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"
export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:gpu-latest

コマンドはとexportを探しているようですが、ソース コンパイルのドキュメントでは、 の場所は にあるはずです。libcuda*libnvidia*/usr/lib64/lib64//usr/local/cuda/lib64

とにかく、の場所は次のlib64/方法で見つけることができます。

cat /etc/ld.so.conf.d/cuda.conf

さらに、 export コマンドは、 を除いて、 のlibnvidia*どこにも存在しないように見えるものを探しています。/usr/local/cuda/libnvidia-ml.so

/usr/local/cuda$ find . -name 'libnvidia*'
./lib64/stubs/libnvidia-ml.so

CUDA_SOが探している正しいファイルは

  • /usr/local/cuda/lib64/libcudart.so.8.0
  • /usr/local/cuda/lib64/libcudart.so.7.5

しかし、そうですか?GPU サポートを使用して PaddlePaddle をデプロイするための環境変数は何ですか?CUDA_SO

変数を設定した後でもlibcudart*、docker コンテナーは GPU ドライバーを見つけられないようです。つまり、次のようになります。

user0@server1:~/dockdock$ echo CUDA_SO="$(\ls $CUDA_CONFILE/libcuda* | xargs -I{} echo '-v {}:{}')"
CUDA_SO=-v /usr/local/cuda/lib64/libcudadevrt.a:/usr/local/cuda/lib64/libcudadevrt.a
-v /usr/local/cuda/lib64/libcudart.so:/usr/local/cuda/lib64/libcudart.so
-v /usr/local/cuda/lib64/libcudart.so.8.0:/usr/local/cuda/lib64/libcudart.so.8.0
-v /usr/local/cuda/lib64/libcudart.so.8.0.44:/usr/local/cuda/lib64/libcudart.so.8.0.44
-v /usr/local/cuda/lib64/libcudart_static.a:/usr/local/cuda/lib64/libcudart_static.a

user0@ server1:~/dockdock$ export CUDA_SO="$(\ls $CUDA_CONFILE/libcuda* | xargs -I{} echo '-v {}:{}')"

user0@ server1:~/dockdock$ export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')

user0@ server1:~/dockdock$ docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:gpu-latest

root@bd25dfd4f824:/# git clone https://github.com/baidu/Paddle paddle
Cloning into 'paddle'...
remote: Counting objects: 26626, done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 26626 (delta 3), reused 0 (delta 0), pack-reused 26603
Receiving objects: 100% (26626/26626), 25.41 MiB | 4.02 MiB/s, done.
Resolving deltas: 100% (18786/18786), done.
Checking connectivity... done.

root@bd25dfd4f824:/# cd paddle/demo/quick_start/

root@bd25dfd4f824:/paddle/demo/quick_start# sed -i 's|--use_gpu=false|--use_gpu=true|g' train.sh 

root@bd25dfd4f824:/paddle/demo/quick_start# bash train.sh 
I0410 09:25:37.300365    48 Util.cpp:155] commandline: /usr/local/bin/../opt/paddle/bin/paddle_trainer --config=trainer_config.lr.py --save_dir=./output --trainer_count=4 --log_period=100 --num_passes=15 --use_gpu=true --show_parameter_stats_period=100 --test_all_data_in_one_period=1 
F0410 09:25:37.300940    48 hl_cuda_device.cc:526] Check failed: cudaSuccess == cudaStat (0 vs. 35) Cuda Error: CUDA driver version is insufficient for CUDA runtime version
*** Check failure stack trace: ***
    @     0x7efc20557daa  (unknown)
    @     0x7efc20557ce4  (unknown)
    @     0x7efc205576e6  (unknown)
    @     0x7efc2055a687  (unknown)
    @           0x895560  hl_specify_devices_start()
    @           0x89576d  hl_start()
    @           0x80f402  paddle::initMain()
    @           0x52ac5b  main
    @     0x7efc1f763f45  (unknown)
    @           0x540c05  (unknown)
    @              (nil)  (unknown)
/usr/local/bin/paddle: line 109:    48 Aborted                 (core dumped) ${DEBUGGER} $MYDIR/../opt/paddle/bin/paddle_trainer ${@:2}

  [1]: http://www.paddlepaddle.org/doc/build/docker_install.html
  [2]: http://paddlepaddle.org/doc/build/build_from_source.html

GPU をサポートする PaddlePaddle Docker コンテナーをデプロイする方法は?


また、中国語: https://github.com/PaddlePaddle/Paddle/issues/1764

4

1 に答える 1