Ubuntu16.04无法安装CUDA吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu16.04无法安装CUDA吗相关的知识,希望对你有一定的参考价值。

参考技术A Ubuntu 16.04安装 CUDA7.5
作者:autocyz

在介绍Ubuntu 16.04安装 CUDA7.5开始前,先辨析几个概念GPU、NVIDIA、NVIDIA驱动、CUDA、cudnn等,这些概念对于一个新手来说肯定是很晕的,正如我当初一样,所以我这里就稍微介绍一下这几个概念:
GPU:Graphics Processing Units,也就是我们常说的显卡。现在的笔记本或者台式机都会有显卡,但是能够让我们用来做并行计算的真正的GPU就只有NVIDIA出产的GPU了。
NVIDIA:GPU生产厂商,在运算GPU处于垄断地位。
NVIDIA驱动:就是NVIDIA生产的GPU想在电脑上正常使用所需的驱动。
CUDA:Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并-行计算架构,该架构使GPU能够解决复杂的计算问题。我们想使用GPU进行深度学习运算的时候,必须要用到这个运算平台。
cudnn:CuDNN是NVIDIA专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等.
Ubuntu 16.04安装cuda7.5
部分参照:http://www.afterimage.top/2016/05/%E9%85%8D%E7%BD%AEcuda7-5-ubuntu-16-04-opencv3-1/
在安装之前,先说一下本人工作站的设备配置(主要是GPU的):
设备上一共有三块GPU,一快是专门用来做显示的NVS310
两块用来做运算的GeForce GTX TITIAN X
第一步:选择最新的nvidia驱动(很重要!!!)
先打开计算机中的“软件和更新”,查看“附加驱动”,选择nvidia的驱动为最新的驱动。更新完之后最好重启一下。
我曾经遇到一些错误,就是因为我的NVIDIA驱动太老了,而cuda7.5则依赖于比较新的驱动。
第二步:下载cuda
去官网https://developer.nvidia.com/cuda-downloads 下载,选择Linux——ubuntu——15.04(我安装的时候还只支持到15.04,没有支持16.04版本的)——runfile(local)
第三步:安装PPA软件管理包工具
什么是 PPA?
PPA,表示 Personal Package Archives,也就是个人软件包集。
有很多软件因为种种原因,不能进入官方的 Ubuntu 软件仓库。 为了方便 Ubuntu 用户使用,launchpad.NET 提供了 ppa,允许用户建立自己的软件仓库, 自由的上传软件。PPA 也被用来对一些打算进入 Ubuntu 官方仓库的软件,或者某些软件的新版本进行测试。PPA 上的软件极其丰富,如果 Ubuntu 官方仓库中缺少您需要的某款软件,可以去 PPA 上找找看。
我们安装的cuda可能在Ubuntu仓库中木有,所以用PPA来下载。
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update

第四步:执行cuda的.run文件
cd到下载的.run文件夹执行:
sudo ./cuda_7.5.18_linux.run --override

第五步:选择安装选项
选择安装选项:(注意:应为之前已经安装过NVIDIA Display Driver的驱动了(如第一步),所以这里选择不安装NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39。如果选择安装会出现错误,并且导致安装CUDA失败。
Do you accept the previously read EULA? (accept/decline/quit): accept
You are attempting to install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]:
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-7.5
Installing the CUDA Toolkit in /usr/local/cuda-7.5 ...
Finished copying samples.

===========
= Summary =
===========

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-7.5
Samples: Installed in /usr/local/cuda-7.5

第六步: 添加cuda到环境变量里面
sudo nano /etc/profile.d/cuda.sh
export PATH=$PATH:/usr/local/cuda/bin
sudo nano /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
source /etc/ld.so.conf.d/cuda.confcd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery
sudo ldconfig

第七步:将GCC降级或者采用暴力的方式让cuda7.5支持高版本GCC。
由于cuda7.5不支持gcc4.9以上的版本,而ubuntu16.04默认的是gcc5,这会造成安装的失败,解决方法有两种,
1、对gcc进行降级,让系统采用低版本的GCC,但是这种方式有一定的问题,因为Ubuntu16.04很多系统文件默认是使用gcc5编译的,因此如果用降级的方法安装完cuda后,在后期安装caffe的时候,可能会报类似于undefined的错误,这是因为你的gcc版本低,其所需的系统文件找不到。.
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++

2、这种方式有点类似于黑箱方式,即强制让他不报错。编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:

#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为
//#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

上面就是设置gcc版本优先级的。20和10就代表你所使用的gcc、g++的版本优先级。
第八步:测试是否安装成功
执行如下指令,正常情况下会出现设备中所有的GPU,并把每个GPU的信息打印出来。
nvidia-smi

如果没有出现错误之类的话,就说明安装成功了。
第九步:测试cuda的Samples

cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery

如果显示的是一些关于GPU的信息,则说明安装成功了。
Ubuntu 14.04 安装配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04配置NVIDIA CUDA5.5实录 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu安装Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
关于Ubuntu 12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu 12.04 安装 CUDA-5.5
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm
在Ubuntu 14.04上配置CUDA+Caffe+cuDNN+Anaconda+DIGITS http://www.linuxidc.com/Linux/2016-11/136775.htm
Ubuntu16.04下CUDA8.0+Caffe安装配置过程 http://www.linuxidc.com/Linux/2017-01/139313.htm
Ubuntu 14.04下CUDA8.0 + cuDNN v5 + Caffe 安装配置 http://www.linuxidc.com/Linux/2017-01/139300.htm
Ubuntu 16.04+Nvidia GTX 1080+CUDA8.0 深度学习环境配置
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

cudarun文件可以删除吗

参考技术A 首先可以查看现在cuda版本
cat /usr/local/cuda/version.txt
即可显示当前cuda版本
卸载cuda时,如果是用run文件安装的,可以用如下命令卸载:
sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
然后将剩余的cudnn文件也删除
sudo rm -rf /usr/local/cuda-8.0
这样就完全删除了cuda8.0

以上是关于Ubuntu16.04无法安装CUDA吗的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu16.04安装cuda,无法定位软件包问题

ubuntu16.04 tensoflow使用服务器需要支持gpu吗

Ubuntu16.04安装NVIDA驱动和CUDA

ubuntu16.04 安装 CUDA

Ubuntu16.04 + cuda8.0 + GTX1080安装教程

ubuntu16.04 CUDA, CUDNN 安装