Ubuntu 16.04 上 CUDA_10.0及cuDNN的安装

本文详细介绍了如何在Ubuntu系统上安装CUDA 10.0,包括禁用nouveau驱动、runfile安装方式、环境变量设置、验证安装及cudnn安装流程。
部署运行你感兴趣的模型镜像

GPU:Geforce GTX1060
驱动版本:418.56
cuda版本:CUDA_10.0

  • cuda版本:cuda_10.0.130_410.48_linux.run
  • cudnn版本:cudnn-10.0-linux-x64-v7.3.1.20.tgz

注意:nvidia与cuda需相匹配,如下图所示。

如果CUDA要求的驱动版本高于电脑实际驱动版本会出现以下报错:

一、安装方式

CUDA提供两种安装方式:package manager安装和runfile安装, package manager 安装方式相对简单一些,但是我在阅读别人博客的过程中发现选择这种方式在安装过程中问题可能多一点,失败的概率较大。为了减少不必要的麻烦我选择runfile安装方式。

下载cuda安装包:cuda官网下载(https://developer.nvidia.com/cuda-10.0-download-archive),根据系统信息选择对应的版本,runfile安装的话最后一项要选择 runfile文件,如下图片。

下载完后,用MD5 检验,如果序号不和,得重新下载

输入命令:$  md5sum cuda_10.0.130_410.48_linux.run

二、runfile安装cuda

1) 禁用 nouveau驱动(在安装Nvidia驱动时已禁用)


终端中运行:$  lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。

Ubuntu的nouveau禁用方法:
a、在/etc/modprobe.d中创建文件blacklist-nouveau.conf

输入命令:$  sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi编辑器编辑和保存文件)

在文件中输入一下内容:

blacklist nouveau
options nouveau modeset=0

b、执行:
$ sudo update-initramfs –u

c、再执行:
$  lsmod | grep nouveau
若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。

注:vi(或者用gedit)是Linux终端下或控制台下常用的编辑器,基本的操作方式为:vi /路径/文件名
例如:vi /etc/fstab表示显示/etc/fstab文件的内容。使用键盘上的Page Up和Page Down键可以上下翻页;按下Insert键,可以见到窗口左下角有“Insert”字样,表示当前为插入编辑状态,这时从键盘输入的内容将插入到光标位置;再按下Insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键盘输入的内容将替换光标位置的内容。编辑完内容后,按下Esc键,并输入“:wq”,然后回车就可以保存退出。
如果不想保存而直接退出,则按下Esc键后,输入“:q!”,然后回车即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改强行退出。

以下操作建议手机拍照,建议把下载的cuda_10.0.130_410.48_linux.run文件重命名为cuda.run并移动到Home文件夹下(为了安装方便)

2) 重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按Ctrl+Alt+F1进入文本模式(命令行界面),登录账户。

3) 输入 $ sudo service lightdm stop 关闭图形化界面

4) 切换到cuda安装文件的路径:$  cd Home/

运行$ sudo sh cuda.run

首先会显示用户许可证信息,按空格键直至进度条显示到100%
然后按照提示一步步操作accept-n(driver,此前已安装过驱动)-y-y-y


5) 输入 $ sudo service lightdm start 重新启动图形化界面。


同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。


如果你遇到了重复登陆情况,不用急着重装系统,官方教程上有提及,原因上一步的注中有提及,在安装openGL时你可能不注意选择了yes,请卸载cuda,然后重装。
卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)

在登陆界面状态下,按Ctrl + Alt + f1,进入TUI
执行
$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
$ sudo /usr/bin/nvidia-uninstall
然后重启
$ sudo reboot
重新安装.run   再次安装时请一定留意,在提示是否安装OpenGL时,你的是双显卡应该选则n。

6) 重启电脑,检查Device Node Verification。

执行
$ ls /dev/nvidia*
可能出现a、b两种结果,请对号入座。

a、若结果显示
/dev/nvidia0      /dev/nvidiactl      /dev/nvidia-uvm

或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-nvm的),则安装成功(我的是直接安装成功,如下图所示)。

b、也可能会是这样(因为我的是a里面的情况,所以该部分引用的其他人的解决方案)
ls: cannot access/dev/nvidia*: No such file or directory
或是这样的,只出现
/dev/nvidia0     /dev/nvidiactl
a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。
不用着急也不用急着重装系统,官方指导中有详细的解决方案,但是我的方法和官方稍微有些出入。

首先要添加一个启动脚本(添加启动脚本的方法大致有两种,我采用最直接的方法,另一种可以先创建一个文件然后通过mv的方式移动到启动文件夹下,可自行百度)
执行

$ sudo vi /etc/rc.local
如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是
#!/bin/sh -e
把-e去掉(这步很重要,否则它不会加载这文本的内容)
然后把下列内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出。

#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
#Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done

mknod -m 666 /dev/nvidiactl c 195 255

else
exit 1
fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then
#Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi


下次重启时,你应该能直接看到/dev目录下的三个nvidia的文件
输入:$ ls /dev/nvidia*
结果显示:/dev/nvidia0       /dev/nvidiactl       /dev/nvidia-uvm

成功!

7) 设置环境变量。

终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。
64位系统:

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

32位系统:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\
                                                   ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。

这里有点与官方安装文档稍有不同,需要说明:
官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。

8) 重启电脑,检查上述的环境变量是否设置成功。

a、 验证驱动版本
敲入 $ cat /proc/driver/nvidia/version 结果显示

b、 验证CUDA Toolkit
敲入 $ nvcc -V       会输出CUDA的版本信息

 如果是这样的:
The program ‘nvcc’ is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是环境配置没有成功,请重复上述步骤7)。

五、 尝试编译cuda提供的例子

1)打开终端输入:$   cd /home/xxx/NVIDIA_CUDA-9.0_Samples        其中xxx是你自己的用户名,通过命令cd进入NVIDIA_CUDA-9.0_Samples目录。
然后终端输入:$ make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。

第一次运行时可能会报错,提示的错误信息可能会是系统中没有gcc,

解决办法就是通过命令重新安装gcc就行,在终端输入:$ sudo apt-get install gcc 安装完gcc后, 再make就正常了。

如果编译成功,最后会显示Finished building CUDA samples,如下图所示。
<

2)运行编译生成的二进制文件。
编译后的二进制文件 默认存放在NVIDIA_CUDA-9.0_Samples/bin中。
接着在上一个终端中输入 :$  cd /home/xxx/NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release       其中xxx是你自己的用户名
然后在终端输入 :$ ./deviceQuery  

结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL

3)最后再检查一下系统和CUDA-Capable device的连接情况
终端输入 : $ ./bandwidthTest 看到类似如下图片中的显示,则代表成功

三、cudnn的安装

cudnn的安装比较简单

(1)下载安装文件
按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

(2)安装cudnn
我们从Nvidia官网上下载下来的cudnn for linux的文件格式是.solitairetheme8,想要解压的话需要先转成tgz格式再解压:

cp  cudnn-10.0-linux-x64-v7.3.1.20.solitairetheme8 cudnn-10.0-linux-x64-v7.3.1.20.tgz
tar -xvf cudnn-10.0-linux-x64-v7.3.1.20.tgz

解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

(3)查看cudnn版本
在终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果出现下图所示版本信息,说明安装成功。

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 在 Ubuntu 16.04安装 NVIDIA CUDA 10.0 #### 准备工作 在开始安装之前,需确认硬件和软件环境满足以下条件: - 支持 CUDA 的 NVIDIA 显卡。 - 已安装Linux 内核版本应低于 4.15(通常建议使用 4.4.0),因为高版本内核可能不兼容 CUDA 10.0[^4]。 - GCC 版本不超过 7.x。 如果当前系统不符合这些要求,请先完成必要的升级或降级操作。 --- #### 卸载旧版驱动程序和 CUDA 为了防止冲突,卸载现有的 NVIDIA 驱动和 CUDA 软件包。执行以下命令: ```bash sudo apt-get --purge remove "*nvidia*" "cuda*" ``` 接着删除残留文件并清理配置: ```bash sudo rm -rf /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u ``` 重启计算机以应用更改: ```bash sudo reboot ``` --- #### 安装 NVIDIA 驱动 访问官方下载页面获取适合的驱动版本[^2]。对于 CUDA 10.0,推荐使用的驱动版本为 `NVIDIA-Linux-x86_64-410.xx` 或更高版本。 通过 `.run` 文件手动安装驱动时,注意关闭图形界面服务以防干扰: ```bash sudo service lightdm stop chmod +x NVIDIA-Linux-x86_64-*.run sudo ./NVIDIA-Linux-x86_64-*.run ``` 当被询问是否覆盖现有 OpenGL 库时,选择 **No** 以免破坏其他依赖项[^3]。 完成后重新启动 X Server 并验证驱动状态: ```bash nvidia-smi ``` 此命令应当返回 GPU 使用情况及相关参数。 --- #### 下载与安装 CUDA Toolkit 从 NVIDIA 开发者网站下载适用于 Ubuntu 16.04CUDA 10.0 套件及其补丁文件[^2]。可以选择基于 `.deb(network)` 的在线安装方法或者离线 `.run` 文件形式。 ##### 方法 A: 使用 .deb(network) 进行在线安装 更新本地APT源索引表后运行如下指令来指定特定版本号避免默认抓取最新版问题发生: ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub sudo apt-get update sudo apt-get install cuda-10-0 ``` ##### 方法 B: 利用 .run 文件实现完全控制权下的部署流程 停止显示管理器进程以便顺利加载新模块: ```bash sudo systemctl set-default multi-user.target sudo shutdown -r now ``` 切换至纯文本终端 (Ctrl+Alt+F1),继续执行解压后的脚本: ```bash sudo sh cuda_10.0.*_linux.run --toolkit --silent --override ``` 恢复初始引导目标设定: ```bash sudo systemctl set-default graphical.target sudo shutdown -r now ``` 无论采取哪种途径都务必记得调整 PATH 和 LD_LIBRARY_PATH 环境变量指向正确路径下工具链位置: ```bash echo 'export PATH=/usr/local/cuda-10.0/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` 测试编译样例工程验证设置无误与否: ```bash cd /usr/local/cuda-10.0/samples/1_Utilities/deviceQuery make ./deviceQuery ``` 正常情况下会打印出设备属性列表证明一切就绪. --- #### CuDNN 的集成 前往 cuDNN 归档区选取匹配于所选 CUDA 版本之档案资料[^5]: ```tar xvzf cudnn-*-*-v*.tgz && cd cuda && sudo cp lib64/* /usr/local/cuda-10.0/lib64/ sudo chmod a+r /usr/local/cuda-10.0/lib64/* ``` 至此整个构建链条搭建完毕可供后续框架调用了! ---
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值