系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)

简介: 系统类配置(二)【深度学习装机详细教程-ubuntu16.04下安装cuda9.0+nvidia-384+cudnn7.1.4+tensorflow1.9。】(下)

之后我们再切换到我们cuda文件的位置,在我这里就是在当前目录下,然后我们运行它:

sudo sh cuda_9.0.xx_xx_linux.run

对应自己的文件名称。之后我们进入nvidia的协议里面,需要我们看他的协议:

我们敲回车,敲到100%

之后它显示问我们是不是接受这个东西,我们在终端输入accept。

然后提示是否安装nivdia的驱动,我们不需要安装这个,输入n,之后敲回车:

遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU在工作需要选择no,否则可以yes),其他都选择yes或者默认即可。(如果您的电脑是双显卡且在这一步选择了yes,那么你极有可能安装完CUDA之后,重启图形化界面后遇到登录界面循环问题:输入密码后又跳回密码输入界面。 这是因为你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则你正在使用的那块GPU(非NVIDIA的GPU)的OpenGL Libraries会被覆盖,然后GUI就无法工作了。)

安装成功后,会显示installed,否则会显示failed。

之后我们重新启动图形化界面:

sudo service lightdm start

如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。如果不能进入的话,参考以下方案,否则跳过:

如果你遇到了重复登陆情况,不用急着重装系统,官方教程上有提及,原因上一步的注中有提及,在安装openGL时你可能不注意选择了yes,请卸载cuda,然后重装。

卸载:由于登陆进入不到图形用户界面(GUI),但我们可以进入到文本用户界面(TUI)

在登陆界面状态下,按Ctrl + Alt + f1,进入TUI

执行

$ sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl

$ sudo /usr/bin/nvidia-uninstall

然后重启

$ sudo reboot

重新安装.run   再次安装时请一定留意,在提示是否安装OpenGL时,你的是双显卡应该选则n。

 

进入ubuntu之后我们重启电脑:

sudo reboot

之后检查Device Node Verification

ls /dev/nvidia*

包含一个类似/dev/nvidia-uvm的,则安装成功。

大多数结果可能会是这样

ls: cannot access/dev/nvidia*: No such file or directory

或是这样的,只出现

/dev/nvidia0     /dev/nvidiactl

a中的一个或两个,但没有/dev/nvidia-num,即文件显示不全。

不用着急也不用急着重装系统(我在安装时就是这种情况),官方指导中有详细的解决方案,但是我的方法和官方稍微有些出入。

首先要添加一个启动脚本(添加启动脚本的方法大致有两种,我采用最直接的方法,另一种可以先创建一个文件然后通过mv的方式移动到启动文件夹下,可自行百度)

执行

$ sudo vi /etc/rc.local

如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是

#!/bin/sh -e

把-e去掉(这步很重要,否则它不会加载这文本的内容)

然后把下列内容除了#!/bin/bash外复制到其中,(before exit 0 )保存退出。

 

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

下次重启时,你应该能直接看到/dev目录下的三个nvidia的文件

输入:$ ls /dev/nvidia*

结果显示:/dev/nvidia0       /dev/nvidiactl       /dev/nvidia-uvm

成功!

 

由于我这里是一次成功,所以上述方案仅供参考,并没有实践过。

接下来我们设置环境变量:

sudo gedit /etc/profile

上述命令会打开一个文件,我们在末尾添加两行:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\

                                                  ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

我这里装的是cuda9.0如果你们装的不是的话,这个cuda-9.0这个目录就还得改一下。

如果是32位系统的话:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib\

                                                  ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

之后我们选择重启电脑:

sudo reboot

a.之后我们检查上述环境是否设置成功:

cat /proc/driver/nvidia/version

得到上述结果。

b.再验证CUDA Toolkit:

nvcc -V

得到下图结果:

如果你的是:

The program 'nvcc' is currently not installed. You can install it by typing:

sudo apt-get install nvidia-cuda-toolkit

这样的话,那就表明环境变量没有添加成功,你需要按照上文中说的添加环境变量,再去添加一下。

接下来我们尝试编译一下cuda的例子:

我们首先需要进入NVIDIA_CUDA-9.0_Samples这个文件夹下面,在这下面打开终端,然后make一下:

我这里的话也是一次就成功了,如果出现没有gcc报错的话,我们可以安装一下:

sudo apt-get install gcc

如果编译成功,最后会显示Finished building CUDA samples,如下图所示:

之后的话,我们运行编译生成的二进制文件:进入到这个NVIDIA_CUDA-9.0_Samples/bin/x86_64/linux/release文件夹下面,输入:./deviceQuery  

./deviceQuery

结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL:

最后再检查一下系统和CUDA-Capable device的连接情况:

终端输入 : $

./bandwidthTest

看到类似如下图片中的显示,则代表成功:

4.安装cudnn:

我们需要进入nvidia的官网:https://developer.nvidia.com/rdp/cudnn-archive,区选择我们需要的版本:

然后提示我们登录,有帐号的话就登录,没有的话就注册一个:

之后我们点击上图的安装包进行下载:

我们将其解压,解压之后名称会变为cuda:

之后我们将其移入home文件夹下面,然后进入cuda的include文件夹下面,执行下面这个命令复制头文件:

sudo cp cudnn.h /usr/local/cuda/include/

之后在终端进入cuda/lib64文件夹下面,运行以下命令:

#复制动态链接库

sudo cp lib* /usr/local/cuda/lib64/

#删除原有动态文件

1. cd /usr/local/cuda/lib64/
2. sudo rm -rf libcudnn.so libcudnn.so.7

#生成软衔接

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7

#生成软链接

sudo ln -s libcudnn.so.7 libcudnn.so

随后需要将路径/usr/local/cuda/lib64 添加到动态库:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件里面输入:

/usr/local/cuda/lib64

终端下接着输入命令使链接生效:

sudo ldconfig

之后查看一下是否链接成功:

sudo ldconfig -v

可以看到,我们这里是有这个文件的。ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

之后用下面这个命令查看是否安装成功:

5.安装Tensorflow

我们首先看一下有没有python:

一般都有,没有的话安装一下:

之后安装一下pip:

sudo apt-get install python-pip

更新一下pip:

sudo pip install -U pip

安装tensorflow-gpu 1.9.0:

sudo pip install tensorflow-gpu==1.9.0

之后进入python输入以下命令:

1. import tensorflow as tf
2. print(tf.__version__)

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
2天前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
|
2天前
|
Ubuntu Shell 网络安全
【专栏】如何在 Ubuntu 22.04 上安装 KubeSphere?
【4月更文挑战第28天】在Ubuntu 22.04上安装KubeSphere的指南:确保系统至少有4GB内存和2核CPU,安装Docker和docker-compose。下载安装脚本`curl -sSL https://kubesphere.io/install.sh | bash`,根据提示选择安装选项,等待完成。安装后,通过访问控制台验证安装效果。解决可能出现的错误、网络问题和性能问题,利用KubeSphere提升容器管理效率。本文为顺利安装和使用提供参考。
|
7天前
|
人工智能 Ubuntu Shell
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
【Ubuntu工具】安装教程:Ubuntu系统上源码编译安装QT5.15.13(有坑)
26 0
|
7天前
|
人工智能 Ubuntu C语言
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
【Ubuntu工具】详细图文教程:Ubuntu系统上安装QT6.2
16 0
|
7天前
|
人工智能 Ubuntu
【Ubuntu工具】踩坑记录:Ubuntu18.04安装FlameShot截图工具及使用方法
【Ubuntu工具】踩坑记录:Ubuntu18.04安装FlameShot截图工具及使用方法
20 0
|
4月前
|
机器学习/深度学习 人工智能 API
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
73 0
|
4月前
|
机器学习/深度学习 存储 人工智能
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(3)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(3)
81 0
|
4月前
|
机器学习/深度学习 Dart TensorFlow
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(5)
73 0
|
13天前
|
机器学习/深度学习 运维 监控
TensorFlow分布式训练:加速深度学习模型训练
【4月更文挑战第17天】TensorFlow分布式训练加速深度学习模型训练,通过数据并行和模型并行利用多机器资源,减少训练时间。优化策略包括配置计算资源、优化数据划分和减少通信开销。实际应用需关注调试监控、系统稳定性和容错性,以应对分布式训练挑战。
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
Python中的深度学习:TensorFlow与PyTorch的选择与使用
Python中的深度学习:TensorFlow与PyTorch的选择与使用