背景:
前段时间把Cuda9.0 安装在服务器上了。接下来在安装Tensorflow-1.3-gpu的时候却发现不支持cuda9.0;于是只能在网上找资料解决:
build tensorflow for gpu faild#13918
Install tensorflow-gpu in Ubuntun16.04 meet some problem#13416
这两个最靠谱:
深度学习服务器环境配置: Ubuntu17.04+Nvidia GTX 1080+CUDA 9.0+cuDNN 7.0+TensorFlow 1.3
深度学习主机环境配置-ubuntu16-04-geforce-gtx1080-tensorflow
参考这两个进行了安装,尝试了无数次以后, 发现还是不行。 我只能退而求其次,安装Cuda8.0;
Cuda8.0在官网上找了半天也没有找到。我估计和jdk7一样, 是可以在官网上找到下载地址,但是不好找。无奈我就只能百度, 找到了Cuda8.0.44.XXX.run, 下载安装之(注意: 没有卸载Cuda9.0)
首先遇到的第一个问题是编译失败。 这是因为gcc 版本过高, 我的是6.3.X
error -- unsupported GNU version! gcc 4.5 and up are not supported!
找到一些关于降低gcc的版本到4.5.X 的方法:
cuda8.0+ubuntu16.04+theano、caffe、tensorflow环境搭建 中介绍了一种方法:
3、ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
gcc版本降到4.9以后, 我们继续安装:
你正在尝试安装在一个不支持的配置中,是否要继续安装?
注意这一步: 一定要选择no; 原因很简单: 这一步是问你是不是要安装GPU的驱动(driver);由于我们之前在安装Cuda9的时候,已经安装了一个384.XX版本的驱动了,这个367的驱动版本太低,不需要安装,即使要安装这个驱动,我们也需要把现在的驱动卸载掉才能安装; 卸载高版本的驱动对安装也起不了任何作用,徒增工作量,所以选择no
中间出了一个错误导致安装失败,仔细查看日志文件以后发现了错误原因 :Can't locate InstallUtils.pm in @INC XXXX
在Nvidia开发者论坛里面似乎已经有人解决了:
Can't locate InstallUtils.pm in @INC
在这里面我们发现这是软件自身产生的bug;在cuda8.0.44以后的版本中修改这个bug;
产生这个问题的原因是:以前的CUDA如7.5和8.0rc1使用Ubuntu RUN安装程序完美安装。 现在CUDA 8.0.44 报告它找不到名为“InstallUtils.pm”的perl模块。 该模块随附CUDA安装程序,但无法找到。 看来perl5不包括Debian上的当前目录,需要明确设置它:
我们可以这样做:
接下来继续安装:
按照上面的输出信息去修改shell文件即可。
good luck~
这样Cuda8 和Cuda9 就同时安装在服务器上了; 你可以在在shell文件中切换,也可以修改/usr/local/cuda的符号链接