说明
内容包含以下几块:
- 1 ubuntu安装Cuda的一般方法
- 2 ubuntu安装GTX1060 铭影GTX1060
- 3 ubuntu安装3060Ti
- 4 使用docker安装cuda
整个过程就算顺利也要2~3小时,我第一次花了8个小时
1 内容
1.1 CUDA与CUDNN
这部分内容参考这篇文章
CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
NVIDIA CUDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
CUDA与CUDNN的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
CUDNN的安装不会对CUDA产生影响(插拔件)
1.2 CUDA的版本
这部分内容参考这篇文章
CUDA作为基础工作台,提供了一些基础功能,例如“CUDA9.0不支持gcc7.x”。因此在引用其他任务库的时候需要配置相同的CUDA版本,避免出错
一台机器可以支持多个版本的CUDA
,具体内容可以再百度一下。
要安装什么版本的CUDA取决于显卡驱动的版本,越新的驱动支持的CUDA版本越多。
1.3 显卡驱动
显卡驱动的安装有几种方式:
- 1 ubuntu窗口软件
- 2 ppa安装
- 3 官网下载驱动安装(run文件),希望不会用到
这个是nvidia官网的驱动网址:
1.4 整体安装过程
- 1 确保整机电源满足加载显卡的要求。(可能要从给显卡插上pin口供电,所以买电源的时候也可以适当关注一下)
- 2 将显卡插上开机。就算没有安装驱动,显卡也应该会有显示,只是分辨率奇怪一点。(我的老主机Z97芯片组,14年买的,一开始黑屏,之后不知道怎么跳到了bios开始自动升级就好了)
- 3 安装ubuntu18(插上u盘,按F10?进入BIOS界面,选择从U盘启动。还有F2和F12的作用我忘了是什么)
- 4 更新apt源,这个后面安装应该有作用。
- 5 安装显卡驱动
- 6 安装CUDA
- 7 安装CUDNN
- 8 安装tensorflow_gpu
前三部基本上没什么软件的事,不用介绍。从第四步开始,我做一些简单的介绍。用脚本来进行修改,安全又方便。
更新apt源,这个后面安装应该有作用。
apt_source_set.sh
脚本主要讲现有的源列表备份,然后将阿里云的源附加(注意不是替换)在原文件后面
#!bin/bash
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 阿里云源
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse">>/etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse">>/etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse">>/etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse">>/etc/apt/sources.list
# ##測試版源
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse">>/etc/apt/sources.list
# # 源碼
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse">>/etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse">>/etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse">>/etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse">>/etc/apt/sources.list
##測試版源
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse">>/etc/apt/sources.list
apt-get update
apt-get upgrade
整个过程等等就好。
安装显卡驱动
Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,也没能得到NVIDIA的认可与支持。虽然Nouveau Gallium3D在游戏速度上还远远无法和NVIDIA官方私有驱动相提并论,不过确让Linux更容易的应对各种复杂的NVIDIA显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,所以,很多Linux发行版默认集成了Nouveau驱动,在遇到NVIDIA显卡时默认安装。企业版的Linux更是如此,几乎所有支持图形界面的企业Linux发行版都将Nouveau收入其中。
一般我也不用ubuntu界面,没太找到驱动控制在哪。用命令安装如下
# 先看本机有没有nouveau(第三方的英伟达驱动,被diss)
# 如果没有输出,那就没有。有的话自行查询关闭。
lsmod | grep nouveau
# 查看推荐的驱动
ubuntu-drivers devices
---
└─ $ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C04sv000010DEsd00001C04bc03sc00i00
vendor : NVIDIA Corporation
model : GP106 [GeForce GTX 1060 5GB]
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-440-server - distro non-free
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-450 - distro non-free
driver : nvidia-driver-455 - distro non-free recommended
driver : nvidia-driver-450-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
---
# 选择合适的驱动安装
# ubuntu-drivers autoinstall
apt install nvidia-430
退一步海阔天空。版本不必太新。
我第一次自动安装,是455版本驱动,然后就黑屏了。后来安装430, 但是自动帮我切到450版本,没有问题。
黑屏(驱动安装失败)怎么办?首先不要慌,问题不大。
首先重启机器,按F10,然后进行advance模式,选择root shell。
执行命令清除后重启就可以了。
apt-get remove –purge nvidia*
检查显卡驱动是否安装成功(可以看到我的显卡正在跑数)
nvidia-smi
---
└─ $ nvidia-smi
Thu Dec 3 14:39:48 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 106... Off | 00000000:01:00.0 Off | N/A |
| 48% 65C P2 95W / 120W | 5006MiB / 5055MiB | 100% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1180 G /usr/lib/xorg/Xorg 27MiB |
| 0 N/A N/A 1234 G /usr/bin/gnome-shell 60MiB |
| 0 N/A N/A 26361 C /usr/bin/python3 63MiB |
| 0 N/A N/A 26457 C /usr/bin/python3 4851MiB |
+-----------------------------------------------------------------------------+
这篇文章是关于驱动安装的做备份参考,不太建议使用。(我觉得还是稍微复杂)
通过上面的命令我们看到了CUDA11.0, 难道CUDA自动装好了?No。
其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。
现在看到的CUDA和我们的软件没什么关系,反正不影响就好了。
两种cuda版本可以参考这篇文章
确定CUDA + CUDNN + Tensorflow的版本组合
这个要看你的应用需要什么版本tensorflow, 然后选择一套。另外有个小插曲是有可能要调整gcc版本,但我觉得通常是不用的。
└─ $ gcc --version
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
有关这方面内容可以参考,这篇文章
最终我根据需要选择了CUDA10.0 + CuDNN7.6.5 + Tensorflow-GPU==1.14
- CUDA: 类似软件的安装
- CuDNN:类似配置文件的拷贝
- Tensorflow:pip安装
CUDA的安装
整体上可以参考这篇文章
- 1 先去官网下载
- 2 运行安装
- 3 配置环境变量
在~/.bashrc里增加
export PATH="/usr/local/cuda-10.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"
查看是否装好
└─ $ cat /usr/local/cuda/version.txt
CUDA Version 10.0.130
也可以使用nvcc -V
查看,但要安装个几百兆的插件,我觉得没有特殊需求就算了
apt install nvidia-cuda-toolkit
如果显示版本不一致可能是bashrc里写错了,参考这篇文章
CUDNN的安装
这里和CUDA比可能要多一步英伟达的注册。
具体可参考这篇文章 主要的命令执行这两步
cp cuda/include/cudnn*.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
查看是否安装成功
└─ $ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
安装tensorflow
先安装python
apt-get install python3.6
再安装pip3
apt-get install python3-pip
再安装tensorflow
pip3 install -i https://pypi.douban.com/simple/ tensorflow_gpu==1.14
如何测试安装成功可参考这篇文章
import tensorflow as tf
hello=tf.constant(‘hello,world’)
sess=tf.Session()
print(sess.run(hello))
到这里就安装成功了
关于GTX1060
安装3060ti和docker调用的后续再补