centos7 tensorflow 1.13.1 . cuda 10 cudnn 7.3.1

4615 ワード

tensorflow .もうすぐ2.0バージョンが出ますが、現在インストールされている最新のバージョンは1.13です.1【2019-03-9】centos 7にNVIDIA Teslaのグラフィックスカードをインストールしました.Tesla P 100-PCIE-16 GB
TensorFlow GPUトレーニングを使用する場合、グラフィックスカードだけではいけません.NVIDIAのグラフィックスドライバとcudaとcudnnをインストールする必要があります.元のrpmでcudaをインストールしようとすると、もともと9をインストールする必要があることがわかりました.インストールが完了するのは10.1、TensorFlow 1.13です.1は10.1をサポートしていませんが、ログにはcuda 10がサポートされています.の発見cudaのインストールはまだ比較的に煩雑で、cudaのインストールはハードディスクの2-3 Gのアンインストールを占めてまだ便利ではありませんて、1つのアンインストールスクリプトPerlがあって、/usr/local/cuda-10.0/bin/uninstall_cuda_10.0.plがない場合は、rm-rf/usr/local/cuda*rm/etc/profile.d/cuda.shでもよい
では、cudaをインストールする方法が最も簡単なのはcondaを使うことです.anacondaは普通ではありません.condaはpython仮想環境だけでなく、Rもインストールできます.cudaとcudnnもインストールできます.TensorFlow-gpu pythonパッケージもインストールします.まず、pythonをアクティブにする仮想環境を作成して環境に入ります.
conda install cudatoolkit
conda install cudnn
pip  install  tensorflow-gpu

ただし、condaがインストールするcudaはグローバルなcudaではなく、現在アクティブなpython環境でのみ有効であることに注意してください.condaがインストールするjupyterとRもこのような参考です.https://github.com/tensorflow/tensorflow/issues/26182【ImportError:libcublas.so.10.0:cannot open shared object file:No such file or directory】インストール時に小さなエラーが発生しました
ChunkedEncodingError('Connection broken:OSError('(104,'ECONNRESET')')',OSError('(104,'ECONNRESET')))は実はネットワークの問題のようで、繰り返して再インストールすればいいのです
TensorFlowがgpuを使用できるかどうかをテストするにはどうすればいいですか?
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

         gpu  ,     gpu。 
    :        ,   nvidia-smi     gpu      。

      
import tensorflow as tf
 
with tf.device('/cpu:0'):
    a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
    b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:1'):
    c = a+b
   
#  :allow_soft_placement=True  :         ,        ,   。
#               GPU ,         GPU       GPU ,    。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
#sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))

  :

[ 2.  4.  6.]

TensorFlowが現在のバージョンのcudaをサポートしていない場合は、「まずTensorFlow-gpuパッケージをインストールする」とエラーが表示されます.
import tensorflow as tf
ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

GPUの使用状況の表示方法
nvidia-smi

もう1つは、cudaをアンインストールして新しいバージョンを再インストールすると、エラーが表示されます[#NVIDIA NVML Driver/library version mismatch]https://stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch
As @etal said, rebooting can solve this problem, but I think a procedure without rebooting will help.

For Chinese, check my blog -> [   ](https://comzyh.com/blog/archives/967/)

The error message

> NVML: Driver/library version mismatch

tell us the Nvidia driver kernel module (kmod) have a wrong version, so we should unload this driver, and then load the correct version of kmod

## How to do that ?

First, we should know which drivers are loaded.

> lsmod | grep nvidia

you may get


nvidia_uvm 634880 8 nvidia_drm 53248 0 nvidia_modeset 790528 1 nvidia_drm nvidia 12312576 86 nvidia_modeset,nvidia_uvm

our final goal is to unload `nvidia` mod, so we should unload the module depend on `nvidia`

> sudo rmmod nvidia_drm
> sudo rmmod nvidia_modeset
> sudo rmmod nvidia_uvm

then, unload `nvidia`

> sudo rmmod nvidia

## Troubleshooting

if you get an error like `rmmod: ERROR: Module nvidia is in use`, which indicates that the kernel module is in use, you should kill the process that using the kmod:

> sudo lsof /dev/nvidia*

and then kill those process, then continue to unload the kmods

## Test

confirm you successfully unload those kmods

> lsmod | grep nvidia

you should get nothing, then confirm you can load the correct driver

> nvidia-smi

you should get the correct output


https://tensorflow.google.cn/install/source
https://comzyh.com/blog/archives/967/
cuda 9をインストールする場合はhttps://blog.veir.me/2018/03/17/centos7-install-cuda9/
またはcudaのdocker環境https://www.cnblogs.com/yxfangcs/p/8438462.html
cudaの公式ダウンロードhttps://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmnetwork
TensorFlowはいったいそれらのバージョンのcudaとcudnnと適しているのか、主にlibcudnnを見ている.so libcublas.soの現在のインストールTensorFlowでサポートされているバージョンlibcublas.so.10.0 libcudnn.so.7はTensorFlow 1.13.1必要なバージョンは、それ以上でなければなりません.