之前能正常在gpu上跑的程序,突然速度下降了一百倍,发现是没在gpu上跑起来
问题检查:
warning信息:
2020-10-14 11:05:44.327061: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327136: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327200: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327262: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327322: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327384: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudnn.so.7'; dlerror: libcudnn.so.7: 无法打开共享对象文件: 没有那个文件或目录
2020-10-14 11:05:44.327394: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1641] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
1.编译cuda自带的samples,测试cuda功能是否正常:
cd /home/xxx/NVIDIA_CUDA-10.0_Samples
make
等待一段时间,编译成功后
cd /home/lxxx/NVIDIA_CUDA-10.0_Samples/bin/x86_64/linux/release
./deviceQuery
出现上面这样的结果,输出下面命令行
./bandwidthTest
这样的结果说明没问题。
2.nvcc -V可以查看目前cuda的版本,结果显示目前是10.0
注意,用
sudo nvidia-smi
这个命令查看时候右上角显示的是目前显卡可以用的最高cuda版本,而不是目前的cuda版本,我的结果如下
3.查看目前tensorflow-gpu版本是1.15.0,tensorflow和cuda的版本对应可以在以下链接查看:
https://tensorflow.google.cn/install/source
可以看出应该不存在版本不对应的问题
最后结论:cuda应该是没问题,只是pycharm查找动态库的默认路径不对
尝试解决办法:
默认情况下,系统只会在/usr/lib、/usr/local/lib目录下查找.so文件。为了能够让系统找到我们的liba.so,我们要么把liba.so放到上述两个目录中,要么使用LD_LIBRARY_PATH环境变量将liba.so所在的目录添加为.so搜索目录。
尝试把这些文件粘贴到/usr/lib目录下
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cudnn/cuda/lib64/libcudnn.so.7 lib/libcudnn.so.7
[sudo] qichang 的密码:
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cuda-10.0/lib64/libcusparse.so.10.0 lib/libcusparse.so.10.0
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cuda-10.0/lib64/libcusolver.so.10.0 lib/libcusolver.so.10.0
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cuda-10.0/lib64/libcurand.so.10.0 lib/libcurand.so.10.0
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cuda-10.0/lib64/libcufft.so.10.0 lib/libcufft.so.10.0
qichang@qichang-TUF-Gaming-FA506IV-FA506IV:/usr$ sudo cp local/cuda-10.0/lib64/libcublas.so.10.0 lib/libcublas.so.10.0
然后就解决了上面的问题
应该也可以通过添加环境变量的方法把环境变量路径改成usr/local/cuda-10.0/lib64
最后再在执行程序时候看一下GPU利用率,确定确实使用了GPU
(虽然解决了上面的问题,但是一模一样的程序原来只要半秒钟!现在还是要三分钟!真的不知道什么鬼!!!!!!)