CentOS

centos7安装nvidia Titan X CUDA9.0

2017-12-05  本文已影响1187人  草丛螳螂

因工作原因,需要离线安装CUDA9.0。

采用的步骤如下:

1.用另一台联网的笔记本到官网上下载cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm,

2.然后采用yum install --downloadonly --downloaddir=tmp cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm将所有的依赖包下载到tmp目录下

3.将cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm和所有的依赖包复制到nvidia Titan X的那台设备上

4.在nvidia Titan X设备上使用yum install tmp/*.* 安装依赖包我的环境中,因为有内部yum源,依赖包所需要的相关包能从内部yum源中找到,如果找不到,还需要从外网下载再复制进来)

5.使用yum install cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm安装cuda的rpm,完成后,并没有安装nvidia Titan X的驱动

6.使用yum install cuda,这一步会真正安装驱动,并将nvidia模块安装到内核。

7.这时使用nvidia-smi命令,能看到显卡信息,表明cuda安装成功。


安装过程中,也并未一帆风顺,以上7个步骤是反复实验后的总结。前面因为不熟悉,遇到了很多坑,其中有一次是这样的,

安装cuda时,可以成功,但在执行nvidia-smi 时,总是报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

按照http://blog.csdn.net/yijuan_hw/article/details/53439408教程开始debug...

1.1 查看显卡状态

lspci | grep -i nvidia  可见1块显卡,正常

1.2 检测安装包无误

md5sum cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm与官网的checksum对比,无误。

1.3 检查系统依赖

yum info dkms

yum info libvdpau

yum info kernel-devel

1.4 检查内核安装是否安装了nvdia模块

dkms status

nvidia, 384.81: added

发现并未安装。

modinfo nvdia

也未发现nvidia模块。

1.5 按教程去dkms build -m nvidia -v 384.81,发现也失败了。于是重新检测,究竟是哪一步导致内核没有加载nvidia模块,查询安装记录发现如下error:

Your kernel headers for kernel 3.10.0-327.el7.x86_64 cannot be found at

/lib/modules/3.10.0-327.el7.x86_64/build or /lib/modules/3.10.0-327.el7.x86_64/source.

Error! echo

Your kernel headers for kernel 3.10.0-327.el7.x86_64 cannot be found at

/lib/modules/3.10.0-327.el7.x86_64/build or /lib/modules/3.10.0-327.el7.x86_64/source.

warning: %post(nvidia-kmod-1:384.81-2.el7.x86_64) scriptlet failed, exit status 1

Non-fatal POSTIN scriptlet failure in rpm package 1:nvidia-kmod-384.81-2.el7.x86_64

kernel-devel有两个版本,我应该是用的kernel-devel-3.10.0-327.el7.x86_64(系统自带),而在yum download那步,yum给我下载了一个kernel-devel-3.10.0-693.5.2.el7.x86_64.rpm。

于是从tmp目录中去掉kernel-devel-3.10.0-693.5.2.el7.x86_64.rpm,重新安装,安装成功。


此外,有文章说开源的软件驱动nouveau和nvidia不兼容,需要在/usr/lib/modprobe.d/dist-blacklist.conf添加如下信息

blacklist nouveau

options nouveau modeset=0

本人在安装过程中,发现这一步可以省略,因为在cuda的安装过程中,会自动添加/usr/lib/modprobe.d/blacklist-nouveau.conf文件

# RPM Fusion blacklist for nouveau driver - you need to run as root:

# dracut -f /boot/initramfs-$(uname -r).img $(uname -r)

# if nouveau is loaded despite this file.

blacklist nouveau

这个文件会自动帮我们添加屏蔽nouveau。


cuda的历史版本在https://developer.nvidia.com/cuda-downloads页面的Legacy Releases。


参考链接

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver

centos7安装cuda-8.0报错modprobe: FATAL: Module nvidia-uvm not found

CentOS中禁用nouveau驱动

上一篇下一篇

猜你喜欢

热点阅读