Ubuntu16.04+cuda10.1官方安装指导的补充说明

                          cuda10.1官方安装指导的补充说明

cuda安装容易踩着坑,一踩就是无底洞。为了避免大家踩坑,请大家一定按照官方指导文件流程进行操作。下面也给出我的一些理解,给大家讲解一些该注意的地方,增加大家的理解。一定要按照官方文件操作

1、支持框架验证

必须强调一下,一定检查自己的系统版本、显卡、gcc、Linux内核是否支持cuda10.1。下图是支持cuda10.1的系统要求。使用以下指令查询自己的显卡、gcc、Linux内核

$  lspci | grep -i nvidia
$  uname -m && cat / etc / * release
$  gcc --version
$  uname -r

举个例子,按照我的电脑给大家讲一下如何匹配。

GPU            :Quadro K620

GPU驱动来源:Nouveau(在系统设置----附加驱动可以看到)

linux             :Ubuntu 14.04 x86(64位)

Linux kernel :4.4

gcc               :5.4.0

a、系统版本、kernel的验证:官方文件中,虽然说,当系统版本和内核不满足上述要求时,不需要更换内核。但是啊,还是尽量满足吧,不然问题多多。比如,我的系统就不合适,14.04需要搭配kernel3.13才可以,有两种方案,更换系统内核或者升机系统版本,前者很容易使得系统崩溃。所以我选择后者,升机系统版本,使得系统到达16.04,这样一来就可以完美匹配cuda10.1要求。下图是系统升级指令,或者打开系统设置--软件和更新--更新。

$ do-release-upgrade
$ sudo apt-get download apt dpkg
$ do-release-upgrade

b 、gcc版本:如果目前系统版本不符合要求,可以通过降级 或者升级方式

c、GPU驱动来源查询:在系统设置---附加驱动中可看到目前你的驱动。一般有三个文件、Nouveau库自带的,两来自稳定版的驱动。切换回--Nouveau库的驱动。(尽量这样做吧,不然后续的禁止启动操作,就无效了)

2、安装

(1)执行上文1的框架验证,完成相应操作。

(2)下载cuda toolkit https://developer.nvidia.com/cuda-downloads,按照自己的版本选择,下面是我根据自己的电脑系统选择的,其中installer type(安装类型)runfile是整个安装包包含了所有的库,适用本地系统。deb是另一种安装形式,也适合本地系统。后面的,作为学习者,不常用,具体的细节可以去官方指导文件阅读。我推荐大家选择runfile文件形式安装cuda。本文也是按照这个文件按照的。

(3)禁用Nouveau库驱动

创建  blacklist-nouveau.conf 黑名单禁用文件,,我是直接使用 vim创建编辑

$ sudo vim /usr/lib/modprobe.d/blacklist-nouveau.conf 

在blacklist-nouveau.conf里面写入下面代码

blacklist nouveau
options nouveau modeset=0

重新生成内核initramfs:

$ sudo update-initramfs -u

如果不放心,那么来个狠的。把nouveau.ko 改为  .org ,隐藏起来。

$  mv /lib/modules/*******-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko \
 /lib/modules/*******-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
  
$ update-initramfs -u

 

(4)重启reboot

注意事项:1、当系统至grub引导项(即选择起用哪个系统),按住 e  进入 引导加载程序文档,在splash 后,插入 :

3 nomodeset

运行级别3,无显卡启动。

由于尚未安装NVIDIA驱动程序,文本终端可能无法正确显示。暂时将“nomodeset”添加到系统的内核引导参数可能会解决此问题。需要重新启动才能完全卸载Nouveau驱动程序并阻止加载图形界面。加载Nouveau驱动程序或图形界面处于活动状态时,无法安装CUDA驱动程序。

                  2、Ctrl+Alt+F1进入命令行界面

(5)停用图形界面,卸载所有显卡驱动

首先停掉图形界面,验证是否nouveau启用,没用显示即表示没有启用。

最后啊,一定要卸载所有驱动nvidia* ,不管是你自己安装的驱动,还是带着驱动。还是统统卸载吧。我第一安装的时候就没有停用自己的nvidia驱动,虽然不是nouveau驱动,但是,GPU设备和Linux内核不通信。以下是相关指令

$ sudo service lightdm stop
$ lsmod | grep nouveau
$ sudo apt-get remove --purge nvidia*

(6)安装cuda 10.1

注意事项:整个系统最好是英文系统,因为切换至纯命令行界面,有可能出现乱码,或者不显示。

1、找到你下载的 cuda_10.1.168_418.67_linux.run ,一般位于Download文件夹内

2、运行安装包,默认安装模式。去掉 --silent 即可自己选择按照内容。

sudo sh cuda_10.1.168_418.67_linux.run  --silent

3、启用GPU产生 xconfig,便于修改分辨率等。也可以不用这个步骤,视情况而定,如果你的电脑是标准的,就是默认的。如果是多个GPU,就需要打开xconfig文件修改里面的内容。可以参照这个文件的说明具体操作。

$ sudo nvidia-xconfig

(7)重启系统reboot,加载图形界面

(8)验证节点设备 是否产生成功

可以在路径  /dev/nvidia*  查看所有包含nvidia名字文件,如果没有,需要创建脚本运行以产生。如果运行后没有nvidia-num文件。请查看是否有/proc/devices文件。

#!/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

(9) 添加环境变量 

建议 vim 进入profile

需要添加两个路径

注意:NsightCompute-2019.3是你自己的cuda文件包含的例子,2019.3会变化。cd usr/local/cuda-10.1/进去,看一下自己的cuda例子是多少。是2019.1还是 2019.3

$ export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.3${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

刷新profile

重启一下最好。

3、验证cuda是否安装成功

1、验证驱动,是否是nvidia驱动

 cat /proc/driver/nvidia/version

2、cuda版本查询

$ nvcc --V

会输出 10.1版本的信息

3、实例编译

cd ~/NVIDIA_CUDA-10.1_Samples

进入后

$ make

如果报错,查看报错内容,根据提示解决即可。如果没有错误,会一直编译,十几分钟编译完成。生成的二进制文件将放在〜/ NVIDIA_CUDA- 10.1 _Samples / bin。

编译后 :cd ~/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release

运行: ./deviceQuery,会看到以下信息

运行:

$ ./bandwidthTest

会看到

恭喜你,完成安装!~!!!!!!!

如果错误:出现以下信息。啥也别说了,一定是驱动安装错了,重来吧。切记要完全卸载nvidia驱动和nouveau驱动。

$ ./deviceQuery
./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 999
-> unknown error
Result = FAIL

  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值