美文网首页CentOS
centos7安装nvidia Titan X CUDA9.0

centos7安装nvidia Titan X CUDA9.0

作者: 草丛螳螂 | 来源:发表于2017-12-05 14:50 被阅读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驱动

    相关文章

      网友评论

        本文标题:centos7安装nvidia Titan X CUDA9.0

        本文链接:https://www.haomeiwen.com/subject/cutcixtx.html