zoukankan      html  css  js  c++  java
  • 云主机搭建深度学习环境

    今天申请了一台云主机,一下是搭建深度学习环境的过程:

    整体还是很多坑的,基本上的思路就是遇到问题解决问题,每个人的环境不一样,网上基本都有解决方案

    1.确认机器到底有没有GPU

    运维有时候会搞错,可能给一台压根没有GPU的机器,这个可以用lspci命令来查看是否有GPU的信息

    2.确认机器有没有GPU的驱动

    执行nvidia-smi,如果找不到命令就是没有。

    安装过程:

    注意:

    a、执行命令 update-pciids

    b、查询nvidia的pci设备信息
           lspci |grep 3D -i |grep nvidia -i
           如:00:07.0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 PCIe 16GB] (rev a1) 此信息中包含了nvidia gpu型号Tesla V100 PCIe 16GB,则不需要继续查询
           如:00:07.0 3D controller: NVIDIA Corporation Device 1db4 (rev a1),此信息中没有包含nvidia gpu型号,只是显示设备id:1db4,则需要根据设备id继续第b步查询
    c、查询上述设备id 1db4是对应nvidia gpu型号
          https://pci-ids.ucw.cz/read/PC/10de

    以下可根据查出的nvidia gpu型号下载相应的驱动

    1、 获取GPU驱动安装包:

    (1)   进入 NVIDIA 官网

    (2)   手动查找适用于实例的驱动程序,并单击 搜索。筛选信息说明如下表所示。

     

    (3)   确认无误后,单击 下载 按钮,下图是centos7.4的驱动截图

     

    在centos7.4中也可以通过以下命令直接下载上述驱动:

          wget http://cn.download.nvidia.com/tesla/396.44/NVIDIA-Linux-x86_64-396.44.run 

    2、 安装GPU驱动:

    (1)   下载并安装kernel对应版本的kernel-devel和kernel-header包:

    通过 ”uname -r” 命令查看centos7.4中的kernel版本为:3.10.0-693.17.1.el7.x86_64

    对应的Kernel-devel下载地址:http://vault.centos.org/7.4.1708/updates/x86_64/Packages/kernel-devel-3.10.0-693.17.1.el7.x86_64.rpm

    对应的kernel-header下载地址:http://vault.centos.org/7.4.1708/updates/x86_64/Packages/kernel-headers-3.10.0-693.17.1.el7.x86_64.rpm

    ( 附 3.10.0-693.el7.x86_64 kernel, kernel-devel 和 kernel-header包下载地址:

    http://vault.centos.org/7.4.1708/os/x86_64/Packages/kernel-3.10.0-693.el7.x86_64.rpm

    http://vault.centos.org/7.4.1708/os/x86_64/Packages/kernel-devel-3.10.0-693.el7.x86_64.rpm

    http://vault.centos.org/7.4.1708/os/x86_64/Packages/kernel-headers-3.10.0-693.el7.x86_64.rpm )

    通过wget命令下载上面两个包,然后通过yum install安装。

    需要特别注意下载的kernel-devel,kernel-header版本要与当前运行的kernel版本完全一致,否则gpu驱动无法正常安装使用 ! ! !

    安装完成后,如下所示:

    # uname –r

    3.10.0-693.17.1.el7.x86_6

    # rpm -qa | grep 693.17.1

    kernel-devel-3.10.0-693.17.1.el7.x86_64

    kernel-headers-3.10.0-693.17.1.el7.x86_64

    kernel-3.10.0-693.17.1.el7.x86_64

    (2)按以下步骤关闭nouveau驱动,这个驱动如果不关是装不上的,因为和nvidia的驱动冲突。

    1. 运行 vim /etc/modprobe.d/blacklist.conf,添加 blacklist nouveau

    2. 运行 vim /lib/modprobe.d/dist-blacklist.conf,添加以下内容。 

    blacklist nouveau

    options nouveau modeset=0

    3. 运行 mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

    4. 运行 dracut /boot/initramfs-$(uname -r).img $(uname -r)

    (3)运行 reboot 重启系统。

    (4)运行yum install gcc 安装gcc 。

    (5)安装下载的gpu驱动

    # Chmod +x NVIDIA-Linux-x86_64-396.44.run

    # ./ NVIDIA-Linux-x86_64-396.44.run

    正确安装过程如下所示:

      

    安装完成后,执行:nvidia-smi,显示如下图所示,说明安装成功。

     

     3.安装cuda

    这里要确认一下自己使用的tensorflow版本,因为tf版本和cuda是要匹配起来的,网上可以找一下对应的关系,比如我用的1.14.0,cuda就是用10.0

    这里最简单的办法就是用conda装

    conda install cudatoolkit==xxx

    当然也可以去nvidia官网去下载对应的cuda版本,传到服务器上安装

    这里有个地方要注意就是安装的时候不要选择安装显卡驱动,因为前边已经装过了,另外这个驱动也不太行。

    4.安装cudnn

    这里不能用conda装了,因为conda有点傻,装cudnn的时候会一起安装cuda,而且经常两个版本还不匹配。

    最简单的方法就是去nvidia官网下载一个cudnn的安装包自己装,这里注意cudnn和cuda也是要匹配版本的,比如cuda10.0和cudnn7.x就可以。

    下载了rpm包,用yum install xxx.rpm安装就行

    5.测试是否可以用了,用tensorflow测试一下

    import tensorflow as tf

    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

    上边两个代码如果不报错,就问题不大了。正确安装应该显示:

    所有的信息都是成功就对了,可以看到这里是P40显卡。

    如果还不确定,可以跑一下程序试试

    import tensorflow as tf

     
    with tf.device('/cpu:0'):
        = tf.constant ([1.02.03.0], shape=[3], name='a')
        = tf.constant ([1.02.03.0], shape=[3], name='b')
    with tf.device('/gpu:1'):
        = + b
     
    # 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
    # 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
    sess = tf.Session(config=tf.ConfigProto (allow_soft_placement=True, log_device_placement=True))
    # sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    sess.run(tf.global_variables_initializer())
    print (sess.run(c))
    能运行出来就没问题了
     
     
    其他如果遇上一些问题了就google或者百度就行了
    可以参考https://blog.csdn.net/lzcong1986/article/details/81050639
  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/stAr-1/p/14213408.html
Copyright © 2011-2022 走看看