背景
想用GPU跑Tensorflow-gpu,买了块Tesla显卡,默认支持CUDA8.0以后版本。所以刚开始准备安装CUDA8.0,上官网搜索一圈,按照提示,通过apt-get安装,可是装好之后,运行Tensorflow,发现缺少libcusparse.so.8.0 库。
不得不寻找这个库,通过提示知道这个是CUDNN提供的一个库,于是希望下载CUDNN,(这个资源现在网上很难找到了),费尽千辛万苦,下载了CUDNN V6.0以及CUDNN V7.0,安装,然鹅,可是居然还是没有没找到libcusparse.so.8.0。
然后,就想到安装CUDA9.0版本,是不是会兼容。于是卸载 apt-get auto remove ***,再去安装9.0版本。这次学乖了,没有通过apt-get安装(说实话,不太习惯一个软件的东西被分散在各个地方,我喜欢一个软件的东西在一个文件夹),下载全部的资源包,本地安装。
下载了“cuda_9.0.176_384.81_linux.run.81_linux-run”,然后直接安装,顺利完成(如果安装这个出错,说明之前apt-get的卸载不干净,安装log提示卸载即可)。
然鹅,
居然还是没有libcusparse.so.8.0,但是有libcusparse.so.9.0,不过,Tensorflow不支持libcusparse.so.9.0,切CUDA的这个不向前兼容,虽然没成功,但是看到了胜利的曙光,卸载cuda_9.0,重新下载cuda_8.0,问题终于解决。
避免其他同学走坑,下面分享下我这里的正确步骤,一起学习:
1,首先要确认NVIDIA显卡正确的被安装上去了
2,下载CUDA_8.0驱动包cuda_8.0.44_linux.run,因为这个链接,非常难找到,所以分享出来
链接:http://pan.baidu.com/s/1o7EYEL0 密码:zphp
3,直接 sudo ./cuda_8.0.44_linux.run 安装,安装提示选择yes和默认选项即可。
4,设置环境变量
export CUDA_HOME=/usr/local/cuda-8.0
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}
export PATH=/usr/local/cuda-8.0/bin:${PATH}
执行
#source /etc/profile
5,配置lib地址
sudo vim /etc/ld.so.conf.d/cuda.conf
在打开的文件中添加如下语句:
/usr/local/cuda/lib64
保存退出执行命令行:
sudo ldconfig
使链接立即生效。
6,验证CUDA安装成功
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
返回GPU的信息则表示配置成功
7,运行Tensorflow-gpu,终于有libcusparse.so.8.0了,但是,缺少libcudnn.so.6,根据之前的安装过程,知道,这个是cudnn_8.0的库,所以直接下载cudnn-8.0-linux-x64-v6.0.0.tgz,这里也提供一个连接下载(感谢百度网盘)。
链接:http://pan.baidu.com/s/1pKEW7tp 密码:c5z5
8,再运行Tensorflow-gpu,终于可以正常跑了。
查看GPU状态(-l表示循环)
#nvidia-smi -l
9,OK,大功告成,希望对大家有所帮助。