Tensorflow 多GPU并行计算报错

问题分析

在 Keras 中配置多 GPU 并行计算的时候,报错 libnccl.so.2 not found。简单的来说就是 Tensorflow 多 GPU 运行的话使用了一个 NCCL 2.x 的库,但是不是默认安装的,同时又由于NCCL 2.x是动态加载的,因此不会影响不调用NCCL原语的程序,也就是说直到你第一次尝试多 GPU 为止都不会发现这个问题。

解决

解决的方式当然是相当简单咯,安装就可以了,你可以选择从官网安装,也可以用如下操作来偷懒。 注:也有可能直接 sudo apt-get install libnccl2 就可以直接安装。

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb

wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
 
sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
 
sudo dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
 
sudo apt-get update
sudo apt-get install libnccl2

成功安装后,再次跑程序试试,不出意外就会成功啦。最后祝大家 Happy Coding。

  • 本文作者: Author:DeamoV
  • Github:https://github.com/Duan-JM
  • Email:vincent.duan95@outlook.com
  • 本文链接: Artical: Tensorflow 多GPU并行计算报错
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 版权声明: 原创文章如转载,请注明出处