ubuntu16.04安装CUDA8.0+cuDNN5.1

1. 安装前的预备知识/Pre-installation Actions

CUDA是NVIDIA公司开发的一套并行计算平台和编程模型,它通过GPU(显卡)的强大计算能力显著地提高程序的运行速度。它实际上只是在C语言的基础上提供了一组扩展,所以其cuda代码的风格与C语言十分相似。

为了在你的Linux系统中使用CUDA,需要做以下准备工作:

  • 确认你的电脑上有一张支持CUDA的显卡

首先,只有英伟达的显卡才可以使用CUDA,可以在命令行输入命令:

lspci | grep -i nvidia

来确认是否是英伟达显卡。

只有英伟达的部分中高端显卡才支持CUDA,因此确认是英伟达的显卡之后,还要查看你的显卡型号是否包含在NVIDIA官网的CUDA GPUs列表里面,里面包含的显卡类型都支持CUDA。

  • 确认你安装的Linux发行版

Linux发行版数量繁多。但英伟达CUDA开发工具仅支持只有几个主流的Linux发行版,可以通过以下命令来查看你的部分系统信息:

uname -m && cat /etc/*release

查看CUDA支持的Linux版本,确认你的系统是否支持。

  • 确认你的系统安装了gcc编译工具

这个条件一般情况下是满足的,因为一般的Linux发行版在安装系统时就默认安装了gcc。运行CUDA程序的时候不需要gcc,但是在使用CUDA工具进行开发的时候需要用到它。可以在bash中输入以下命令确认:

gcc --version
  • 确认你的系统已经安装了正确的kernel headers and development packages

在安装CUDA驱动前,必须要安装好与你的Linux系统内核版本相匹配的内核头和开发包。比如你的系统内核版本是3.17.4-301,那么你必须也要安装3.17.4-301版本的内核头和开发包。

使用以下命令确认你的系统内核版本:

uname -r

比如我的系统内核版本是:

ys@ysubuntu:~$ uname -r 4.13.0-26-generic ys@ysubuntu:~$ uname -r 4.13.0-26-generic

然后根据你的系统内核版本使用apt命令安装对应的内核头和开发包。在ubuntu中使用以下命令:

sudo apt-get install linux-headers-$(uname -r) sudo apt-get install linux-headers-$(uname -r)

当然,如果你的系统本身就满足要求,输入这条命令不会安装新的东西,比如我的情况:

ys@ysubuntu:~$ sudo apt-get install linux-headers-$(uname -r) [sudo] ys 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 linux-headers-4.13.0-26-generic 已经是最新版 (4.13.0-26.29~16.04.2)。 linux-headers-4.13.0-26-generic 已设置为手动安装。 下列软件包是自动安装的并且现在不需要了: iucode-tool snap-confine 使用'sudo apt autoremove'来卸载它(它们)。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。 ys@ysubuntu:~$ sudo apt-get install linux-headers-$(uname -r) [sudo] ys 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 linux-headers-4.13.0-26-generic 已经是最新版 (4.13.0-26.29~16.04.2)。 linux-headers-4.13.0-26-generic 已设置为手动安装。 下列软件包是自动安装的并且现在不需要了: iucode-tool snap-confine 使用'sudo apt autoremove'来卸载它(它们)。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。

其他Linux发行版安装内核头和开发包的命令参考这里

  • 选择一种安装方法

CUDA Toolkit 可以使用2种不同的安装机制进行安装:

  1. 使用指定发行版的安装包,也就是常用的.rpm包或者.deb包。

  2. 使用runfile包,后缀名为.run文件。

两种安装方式的优缺点:

使用.run包的优点是支持更多的Linux发行版,不管是使用.deb格式的Ubuntu/Debian,还是使用.rpm格式的其他大多数Linux发行版;其缺点是无法更新Linux系统的本地包管理系统,也就是只能单机/standalone安装,无法在线更新,而且只支持64位的系统。

使用指定发行版的安装包的优缺点和使用.run包刚好相反。

  • 处理安装冲突的方法

这一点主要针对的是目前你要安装的CUDA Toolkit或者NVIDIA Driver和你电脑上以前安装的版本的冲突问题,如果你是第一次安装CUDA Toolkit和NVIDIA Driver,那么请跳过这一点。

如果你以前在你电脑上已经安装了另一个版本的CUDA Toolkit或者NVIDIA Driver,那就得注意了,因为现在安装的版本和以前安装的版本存在一个兼容性问题。看下图展示的CUDA和英伟达显卡驱动的兼容性表:


2018-01-17 12-21-45屏幕截图.png

内容很清晰,这里就不解释了。
如果存在冲突,则要先卸载之前安装的相应CUDA Toolkit或者NVIDIA Driver。
使用以下命令来卸载之前安装的.run格式的CUDA Toolkit:

sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

也就是运行/usr/local/cuda-X.Y/bin/文件夹下的uninstall_cuda_X.Y.pl文件。其中的X.Y是之前你安装的CUDA Toolkit的版本号,如果不清楚是多少,cd/usr/local/目录并使用ls命令来查看。
使用以下命令来卸载.run格式安装的显卡驱动:

sudo /usr/bin/nvidia-uninstall

使用下面的命令来卸载一个.rpm/.deb格式的版本:

sudo yum remove <package_name> # Redhat/CentOS 
sudo dnf remove <package_name> # Fedora 
sudo zypper remove <package_name> # OpenSUSE/SLES 
sudo apt-get --purge remove <package_name> # Ubuntu

2. 安装过程/Installation

参考自英伟达官网Package Manager Installation.
下面简单记录两种安装方式的安装过程,只针对ubuntu,其他发行版请参考上一行的链接。

2.0 各版本CUDA的下载地址

英伟达官网的NVIDIA CUDA Installation Guide for Linux提供的CUDA下载链接只能下载目前最新的CUDA9.1,但很多同学需要安装的是更早的CUDA8或者CUDA7.5,参考这篇博文:各个历史版本 cuda toolkit 下载链接,这里直接列出:

2.1 .deb格式的安装过程

.deb格式的安装又分为2种安装方式:deb(local)deb(network),也就是提供了2种类型的.deb包供下载,以CUDA Toolkit 8.0.61为例:
本地的.deb包很大,大约有1.9G,这种方式下,安装开始时,dpkg包管理器将会安装一个本地仓库,仓库中存放了实际的安装包文件,并将本地仓库路径添加到APT高级包管理工具的安装包源仓库列表中。

2018-01-17 13-48-40屏幕截图.png

而在线的.deb包则只有几个kb大小,同样使用dpkg安装,安装过程中,会告诉APT高级包管理工具到哪个在线源仓库去下载实际安装包文件。
2018-01-17 13-49-34屏幕截图.png

根据个人爱好,下载deb(local)或者deb(network)都可以。
然后直接根据下载页面提供的安装步骤进行安装。
如果你下载的本地.deb包,执行如下命令:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda

如果采用以上安装方式,在执行第一句dpkg命令之后,会在System Settings-->Software&Update中看到已经添加了一个本地安装源仓库:


Screenshot from 2018-03-12 09-50-04.png

如果你下载的在线.deb包,执行如下命令:

sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda

2.2 .run文件的安装过程

安装.run文件比较麻烦,在没有提前安装显卡驱动的情况下,参考英伟达官网的安装教程: Runfile Installation,最终出现了以下错误:
"The driver installation is unable to locate the kernel source. Please make sure that the kernel source packages are installed and set up correctly. If you know that the kernel source packages are installed and set up correctly,you may pass the location of the kernel source with the '--kernel-source-path' flag."
参考了很多文章之后,这个问题依旧没有解决,于是采用了以下的方法:

先在系统设置-》软件与更新-》附加驱动这里安装较新版本的英伟达显卡驱动:

2018-01-17 14-48-01屏幕截图.png

caffe官网里说道,.run文件中带的显卡驱动的版本通常已经过时,所以显卡驱动就用这个办法安装是最方便的,同时上图中下面一个未知驱动不要使用它,据说是CPU中自带的英特尔显卡驱动。
安装完显卡驱动之后,下载.run安装包,以CUDA Toolkit 8.0.61为例:
选择下载runfile格式:

2018-01-17 14-54-41屏幕截图.png
  • 禁止Nouveau驱动

有些教程中有这一步,使用gedit打开/etc/modprobe.d/blacklist-nouveau.conf文件:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在其中加入两行语句:

blacklist nouveau
options nouveau modeset=0

我打开时它是一个空文件,反正就照着做吧,没影响。
再执行下面这句命令:

sudo update-initramfs -u

运行完重启系统。

  • 执行runfile文件安装CUDA Toolkit
sudo bash cuda_8.0.61_375.26_linux.run sudo bash cuda_8.0.61_375.26_linux.run

开始时会出现一长段说明文档,直接按住Ctrl+C跳过这一段,直接进入安装选项。

Linux platform:
Do you accept the previously read EULA?
accept/decline/quit: accept
​
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n

注意,上面的第二个选项问是否安装显卡驱动,一定要写n,因为之前已经安装过显卡驱动了。其他部分就全部是y或者直接enter。
安装过程可能会遇到以下错误:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Missing recommended library: libGLU.so 
Missing recommended library: libXmu.so

网上搜索,说是缺少了几个依赖项,用以下命令安装:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

安装好后再重新执行:

sudo bash cuda_8.0.61_375.26_linux.run sudo bash cuda_8.0.61_375.26_linux.run

总之,如果不算显卡驱动,cuda就安装了两个工具:CUDA 8.0 Toolkit和CUDA 8.0 Samples。

无论其中哪一块安装出错,都可以使用以下命令将其卸载:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl   #卸载CUDA 8.0 Toolkit
​
sudo /home/ys/NVIDIA_CUDA-8.0_Samples/uninstall_cuda_samples_8.0.pl  #卸载CUDA 8.0 Samples

2.3 总结

以上两种安装方式都测试过(.run和.deb),其中使用.deb安装没什么讲究,可能需要先执行禁止Nouveau驱动那段,基本没遇到过问题。但是使用.run文件进行安装时,为了少折腾,最好先在系统设置-》软件与更新-》附加驱动(如果里面没有该选项,执行一下:sudo apt updatre)中安装显卡驱动,然后执行禁止Nouveau驱动那段,再运行.run文件安装,这样基本也不会出现什么问题。

3 后处理/Post-installation Actions

安装完后,需要进行环境变量的设置。使用gedit打开~/.bashrc文件:

sudo gedit ~/.bashrc

在文件最后加入:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

即添加一个PATH变量和一个LD_LIBRARY_PATH变量。使用source命令令配置更改生效:

source ~/.bashrc

最后依次执行以下命令,运行一个sample来验证cuda工具是否安装成功
若是安装的.run文件执行:

cd ~/NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
 make
 ./nbody

若是安装的.deb文件执行:

cd /usr/local/cuda/samples/5_Simulations/nbody
sudo make
 ./nbody

反正就是找到sample下的/5_Simulations/nbody/文件夹,编译并执行它。具体安装位置根据自己的情况而定。
执行完会出现以下窗口:


2018-01-17 16-12-50屏幕截图.png

4 安装cuDNN

cuDNN是英伟达开发的专门用于深度神经网络计算的GPU加速库。在CUDA工具基础上加上cuDNN能进一步加快那些基于英伟达GPU的深度模型的执行速度。也可以不用cuDNN库加速,就安装CUDA。

下面记录如何在CUDA里面加入cuDNN。

第一步肯定是下载cuDNN文件,网址在这里

下载得到此文件:cudnn-8.0-linux-x64-v5.1.tgz。

然后依次使用以下命令完成cuDNN的安装:

tar -xvf cudnn-8.0-linux-x64-v5.1.tgz       #解压cuDNN压缩包,得到cuda文件夹
cd cuda/include/                             
sudo cp cudnn.h /usr/local/cuda/include/    #复制cudnn.h文件到cuda对应的include文件夹
cd ../lib64/                                #cd到另一个目录
sudo cp lib* /usr/local/cuda/lib64/         #复制其下所有lib文件到cuda对应的lib64文件夹
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5       #删除这两个文件,-r是递归,-f表示强制
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #将libcudnn.so.5链接到libcudnn.so.5.1.10
sudo ln -s libcudnn.so.5 libcudnn.so        #将libcudnn.so链接到libcudnn.so.5

解释以下上面的命令,cuDNN的安装其实就是将其下include/文件夹下的cudnn.h文件和lib64/文件夹下的所有文件复制安装的CUDA下对应的文件夹。

原来的lib64/文件夹下有三个so文件:libcudnn.so、libcudnn.so.5和libcudnn.so.5.1.10,并且这3个点so文件大小都一样。其实都是软连接!libcudnn.so链接到libcudnn.so.5,而libcudnn.so.5.又链接到libcudnn.so.5.1.10。 真正的文件只有libcudnn.so.5.1.10,因此我们要将/usr/local/cuda/lib64下的以前的这样的链接替换掉。

使用rm -rf命令先删除原来两个链接文件;再使用ln -s命令重新建立软链接。

使用由于装cuda时,比如我装的是cuda8.0,那么在/usr/local/下会生成cuda-8.0/文件夹,以及一个cuda/文件夹,cuda/是软链接到cuda-8.0/的,所以这两个文件夹可以看成一个。往任意一个文件夹中添加东西,另一个文件夹都会有相同的东西。

使用ll命令(llls -l的缩写,功能是显示当前目录下文件详细信息)可以查看文件的软链接关系:

ys@ysubuntu:~$ cd /usr/local ys@ysubuntu:/usr/local$ ll 总用量 44 drwxr-xr-x 11 root root 4096 117 15:58 ./ drwxr-xr-x 12 root root 4096 114 19:58 ../ drwxr-xr-x 2 root root 4096 216 2017 bin/ lrwxrwxrwx 1 root root 19 117 15:58 cuda -> /usr/local/cuda-8.0/ # ->就代表了软链接 drwxr-xr-x 17 root root 4096 117 15:58 cuda-8.0/ ... ys@ysubuntu:~$ cd /usr/local ys@ysubuntu:/usr/local$ ll 总用量 44 drwxr-xr-x 11 root root 4096 117 15:58 ./ drwxr-xr-x 12 root root 4096 114 19:58 ../ drwxr-xr-x 2 root root 4096 216 2017 bin/ lrwxrwxrwx 1 root root 19 117 15:58 cuda -> /usr/local/cuda-8.0/ # ->就代表了软链接 drwxr-xr-x 17 root root 4096 117 15:58 cuda-8.0/ ...

至此,CUDA和cuDNN安装完毕。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预编译版,总体过程感觉还是挺简单的,但是由于在网上找的参考资料并没有和自己遇到的情况完全一样的,所以把自己的安装过程记录下来,方便和自己一样的后来人进行安装,同时也自己作个记录留作备忘。其实预编译版的CARLA本身几乎不用什么命令行进行安装,主要步骤只有解压缩和拷贝文件,和极少的命令行安装操作。但是相关依赖以及其它的CARLA所使用的一些工具需要一起安装好,下面一起来看看安装步骤吧。_ubuntu22.04安装carla
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载Ubuntu 20 安装包_ubuntu20下载
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装rally, pip3 install -r requirements.txt 时提示如下: 说明openssl 已安装。解决:1. pip3 install --upgrade pip , 结果输出如下 ..._error: command '/usr/bin/gcc' failed with exit code 1
文章浏览阅读1.1k次。自己刚踩坑装好的W11 WSL2 miniconda_wsl2 cuda
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no)上面的命令会在~/.vnc/目录下生成一个 passwd文件。具体端口号,可以查看vncserver -list返回结果中的RFB PROT。作用是vncserver启动的时候运行这些命令,把桌面程序启动起来。如果希望用某个用户比如 demo登录,就用su切换到这个用户。桌面版默认就已安装,服务器版需要手动安装,并启动。关闭某个会话可以用下面的命令。远程地址输入ip:port。查看全部的vnc会话。_ubuntu vncserver
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,如这里使用ubuntu进行安装code-server,那使用的就是ubuntu环境,如需要go,python,java开发,需要在Ubuntu安装相关环境,创建的文件夹和项目也是在Ubuntu里面.这种方式其实在访问vscode的时候利于可以随时随地进行连接使用,且不受设备影响。
安装Ubuntu上超好用的终端Terminator。通过添加软件源、更新源、安装Terminator等步骤完成。
文章浏览阅读1.1k次,点赞83次,收藏74次。不要嫌弃Ubuntu的单调的终端界面啦,快来试试这些有意思的命令_ubuntu系统有趣的玩法
文章浏览阅读2.5k次。在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。# bs 为块的大小,count 创建多少个块。# 执行命令后,删除创建的swap目录即可。#把生成的文件转换成 Swap 文件。2、创建一个swap文件。_ubuntu20修改swap大小
文章浏览阅读2.9k次,点赞2次,收藏10次。记录RV1126的SDK编译错误,以及解决处理_command exited with non-zero status 1
文章浏览阅读1.1w次,点赞22次,收藏101次。【记录】ubuntu20.04安装nvidia显卡驱动_ubuntu20.04安装nvidia显卡驱动
文章浏览阅读727次,点赞6次,收藏27次。在嵌入式Linux开发过程中,可能遇到uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)的问题。如果你使用的是较新版本的Ubuntu,那么其**默认内核将不支持nfs2**!而**uboot仅支持到nfs2**,因此我们需要修改系统内核以及nfs配置文件,开启nfs2服务。**此问题非常棘手**,因为问题出现的时间太近,并且使用的人少。由于是2023年后才出现的问题,**chatgpt也无法解答**!本文参考网络上多篇博客资料,是解决此问题的最新办法。
ubuntu系统下安装软件的方法有多种,包括使用apt工具、deb软件包安装、源码编译安装以及通过软件中心安装。还有一种以 .run 后缀的软件包也可以在ubuntu系统下安装。具体的安装方法可以通过百度搜索来获取。
文章浏览阅读814次。本篇目的:Xubuntu如何安装pkg-configpkg-config是一个计算机软件包,用于帮助开发人员查找、定位和使用依赖库。它通常用于构建软件时,开发人员需要指定程序所依赖的外部库的位置和版本信息。使用pkg-config,开发人员可以很容易地查找、检索和导出这些依赖库的信息,从而简化了软件的构建过程。_ubuntu中怎么下载pkg-config
文章浏览阅读2k次。ubuntu创建共享文件夹_ubuntu20.04共享文件夹
文章浏览阅读2.9k次,点赞74次,收藏73次。对于有长期远程桌面需求的用户,建议将cpolar套餐升级到专业套餐,支持配置固定的公网TCP端口,且带宽也会相应的增大,支持更高效便捷的远程桌面连接Ubuntu系统。【cpolar内网穿透支持http/https/tcp协议,支持永久免费使用,不限制流量,无需公网IP,也不用进入路由器设置,操作简单。隧道创建成功后,点击左侧仪表盘的状态——在线隧道列表,查看xrdp隧道的所生成的公网TCP端口地址,复制下来。,使用cpolar内网穿透映射3389端口,生成公网TCP端口地址,实现在公网环境下,_ubuntu 局域网桌面
文章浏览阅读3.2k次。而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。在系统中,创建新的用户或称为账号,一般需要多步操作。_ubuntu创建一个新用户
文章浏览阅读1.6w次,点赞4次,收藏23次。系统的许多日志文件都存储在 /var/log 目录中。你可以使用 ls /var/log 命令来列出可用的日志文件。/var/log/Xorg.0.log:包含 X 服务器的日志信息(图形界面)。打开DASH,搜索日志或者log,打开app,这个是/var/log的界面版。这将显示系统日志的末尾,并提供有关系统崩溃和错误的信息。/var/log/kern.log:包含内核日志信息。/var/log/dmesg:包含开机时的日志信息。/var/log/syslog:包含系统日志信息。_ubuntu查看系统日志
文章浏览阅读857次。首先将source.list复制为source.list.bak备份,然后将source.list内容改为需要的镜像源列表即可。Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。本节均为 Ubuntu 20.04 的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。_apt 国内源