如何在linux上搭建深度学习环境 :Ubuntu16.04 上显卡驱动、CUDA、cuDNN、tensorflow安装

时间:2023-02-14 17:21:09

1,首先要有台牛逼的主机,主机上要有英伟达的显卡 NVIDIA+CUDA目前在机器学习领域的地位还无人能够撼动

如何配主机请参照以下链接

https://www.zhihu.com/question/33996159/answer/102691414

2,Ubuntu系统安装好,考虑到大多数人都要装双系统具体可以参考以下链接

https://blog.csdn.net/chandoudeyuyi/article/details/59651406

3,NVIDIA显卡驱动安装

注意Ubuntu自带的驱动更新可以完成这样的操作而且不用输命令! 

点左边栏的设置,下面找到“Software & Updates”,在点上面的“Additional Drivers”,会发现会有一个显卡的驱动,恰好和要找的版本相同~选中之后确认更新即可。在这里新出的显卡核心都可以检测成功 ,自动安装驱动。不需要手动去下载驱动安装。

如何在linux上搭建深度学习环境 :Ubuntu16.04 上显卡驱动、CUDA、cuDNN、tensorflow安装

接下来安装CUDA 和cuDNN ,2018年五月版本应该是 cuDNN v7.0.5 for CUDA 9.0

4,安装CUDA

还是先进网页下载


我选的配置如下: 
如何在linux上搭建深度学习环境 :Ubuntu16.04 上显卡驱动、CUDA、cuDNN、tensorflow安装 
之后按照要求,运行:
  • sudo sh cuda_9.0.176_384.81_linux.run

之后会有三个提示:

  1. 是否安装驱动(装过的不要装)
  2. 是否安装CUDA(yes)
  3. 是否安装sample(看自己)

结束之后会有摘要:

=========== 
= Summary = 
===========

Driver: Not Selected 
Toolkit: Installed in /usr/local/cuda-version
Samples: Not Selected 

Please make sure that 
– PATH includes /usr/local/cuda-version/bin 
– LD_LIBRARY_PATH includes /usr/local/cuda-version/lib64, or, add /usr/local/cuda-version/lib64 to /etc/ld.so.conf and run ldconfig as root

接下来是添加到环境变量。 
首先打开文件:

  • sudo vim /etc/profile


在最下面添加两行:

  • export PATH=/usr/local/cuda-9.0/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH


至此CUDA安装结束~

5,安装cudnn

cuDNN v7.0.5 for CUDA 9.0

cuDNN(请检查兼容性再下载):https://developer.nvidia.com/rdp/cudnn-download

1.下载cuDNN压缩包; 

2.对下载文件进行解压:
  • tar -zxvf cudnn-9.0-linux-x64-v7.0.5.1.tgz


3.解压后会看到一个cuda文件夹,里面包含了include以及lib64两个子目录。我们需要做的就是将这两个字母里面的文件复制到cuda对应的安装目录。这里以cuda的安装目录为/usr/local/cuda/,这个目录下也会包含include/以及lib64/这两个文件夹,将之前目录的文件复制过来即可。

  • sudo cp -p cuda/include/cudnn.h /usr/local/cuda/include
    sudo cp -p cuda/lib64/* /usr/local/cuda/lib64/

6,tensorflow-GPU安装

pip install tensorflow-gpu

没有提示失败就成了,安装过程中有可能需要root权限,命令前加上 sudo就行了

在Python环境中输入:

import numpy  
import tensorflow as tf  
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')  
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')  
c = tf.matmul(a, b)  
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))  

之后就会出现详细的信息:

Device mapping:  
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K40c, pci bus  
id: 0000:05:00.0  
b: /job:localhost/replica:0/task:0/device:GPU:0  
a: /job:localhost/replica:0/task:0/device:GPU:0  
MatMul: /job:localhost/replica:0/task:0/device:GPU:0  
[[ 22.  28.]  
 [ 49.  64.]]  

出现GPU:0就是你的显卡,这样就能确定是显卡在工作了。