0%

GPU

主要记录从安装显卡驱动到cudnn的过程。

前言

这篇博客主要记录自己安装显卡驱动到cudnn的过程,只能当作工作记录,不可以作为参考手册。

整个过程主要分为:

  • 显卡驱动
  • cuda
  • cudnn
  • ananconda
  • pytorch
  • tensorflow
  • matlab
  • 分辨率
  • cuda、cudnn卸载升级

显卡驱动

显卡驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn

官方参考手册:

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4RD7GVh1d

禁止自带的 nouveau nvidia 驱动(官方参考手册4.3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ctrl+alt+F1

# 判断 nouveau nvidia 驱动是否被禁止
lsmod | grep nouveau
# 有输出表示没有禁止 ,执行 禁止 nouveau nvidia 驱动
# 没有输出表示禁止成功,执行 安装 nvidia 驱动

# 禁止 nouveau nvidia 驱动
sudo vi /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

# 更新或者重启电脑
sudo update-initramfs -u

# 判断是否成功禁止
lsmod | grep nouveau
# 有输出表示没有禁止 ,重新执行 禁止 nouveau nvidia 驱动
# 没有输出表示禁止成功,执行 安装 nvidia 驱动

安装 nvidia 驱动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# ctrl+alt+F1

# 关闭 x-windows 服务
sudo systemctl stop lightdm

# 如果曾经安装过NVIDIA驱动,需要先卸载再安装
# 卸载 nvidia 驱动
sudo apt-get --purge remove nvidia-*

# 检查文件完整(可选)
md5sum ./NVIDIA-Linux-x86_64-410.78.run # 有输出表示完整

## 安装 nvidia 驱动
sudo sh ./NVIDIA-Linux-x86_64-410.78.run
# 如果出现循环登录,使用该方法安装
sudo sh ./NVIDIA-Linux-x86_64-410.78.run –no-x-check –no-nouveau-check –no-opengl-files
# –no-x-check 安装驱动时关闭X服务
# –no-nouveau-check 安装驱动时禁用nouveau
# –no-opengl-files 只安装驱动文件,不安装OpenGL文件
# 在弹出来的选项中,基本选择默认的即可。
# 32-bit : 否
# new module DKMS: 否

# 测试
nvidia-smi
# 有输出表示安装成功,
# 没有输出表示不成功,重新执行 安装 nvidia 驱动

sudo systemctl start lightdm

CUDA

CUDA下载:https://developer.nvidia.com/cuda-toolkit-archive

实际显卡驱动需要大于等于cuda所需显卡驱动版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
## 安装必备文件
# gcc
gcc --version
# 有输出表示gcc安装成功
# 没有输出表示需要安装gcc
# 安装gcc命令
sudo apt-get install gcc
# 内核
sudo apt-get install linux-headers-$(uname -r)

## 安装CUDA
sudo sh cuda_9.0.176_384.81_linux.run
# EULA: accept
# NVIDIA Acceerated Graphics Driver: n
# CUDA Toolkit: y
# Toolkit: 回车
# symbolic link: y
# Samples: n

# 安装后,如果出现提示信息,表示缺少几个库,安装
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

# 设置环境变量
sudo gedit ~/.bashrc

# CUDA-9.0
export CUDA_HOME=/usr/local/cuda-9.0
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
# 如果有多个cuda,那么可以写成
export CUDA_HOME=/usr/local/cuda-9.0:$CUDA_HOME
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$:$LD_LIBRARY_PATH

# 刷新
source ~/.bashrc

# 验证
nvcc -V # 有输出表示成功,反之表示失败,重新安装cuda

cuDNN

cuDNN: https://developer.nvidia.com/rdp/cudnn-archive

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 解压
tar -zxvf cudnn-9.0-linux-x86-v7.1.tgz
# or
cp cudnn-9.0-linux-x86-v7.1.solitairetheme8 cudnn-9.0-linux-x86-v7.1.tgz
tar -zxvf cudnn-9.0-linux-x86-v7.1.tgz

# copy
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*

# 软连接(可选),
sudo chmod +r libcudnn.so.7.0.5
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig

# 测试
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

ananconda

下载: Anaconda3-5.2.0-Linux-x86_64.sh

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sh ./Anaconda3-5.2.0-Linux-x86_64.sh

# 路径,删除conda安装时写的路径
sudo gedit ~/.bashrc

# anaconda3
export PATH=/home/zbp/anaconda3/bin:$PATH

source ~/.bashrc

# 清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

# 测试
which python

pytorch

pytorch 官网 previous version 查看 cuda 版本对应信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 离线安装
conda install xxx
# or
pip install xxx

# 清华源,不需要 cudatoolkit=10.0, -c pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install pytorch torchvision

# 测试
ipython
import torch as t
print(t.cuda.is_available())
print(t.__version__)
print(t.version.cuda)

# True

Tensorflow

安装:在官网找到安装命令即可,如果速度太慢,可以 ctrl+c 之后复制链接到其他电脑上手动下载并安装离线包。tensorflow-gpu 需要和 CUDA 严格对应。可以通过建立虚拟环境的形式或者tensorflow会自动安装对应版本的cuda、cudnn来解决。

安装离线包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 离线安装
conda install xxx
# or
pip install xxx

# 清华源安装
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
# conda安装
conda install tensorflow-gpu # 会自动匹配到适合的cuda版本


# 测试
ipython
import tensorflow as tf
print(tf.__version__)
print(tf.test.gpu_device_name())

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

matlab

我使用的是分成两部分的matlab,参考
https://blog.csdn.net/qq_36982160/article/details/78397514

matlab要比前面复杂一些,需要要有耐心。

挂载:

1
2
mkdir /media/matlab
sudo mount -t auto -o loop R2016b_glnxa64_dvd1.iso matlab/

安装:

1
2
cd /media/matlab
sudo ./matlab/install
  • 选项:第二个,使用文件安装密钥,不需要Internet连接
  • 选项:是(y)
  • 密钥:crack的readme的第一个数字串
  • 文件路径:默认
  • 下一步
  • 安装

安装进行到80%左右的时候,会弹出一个提示框,说请插入dvd2,这时候我们需要重新开一个终端,把dvd2挂载到matlab文件夹中:

1
sudo mount -t auto -o loop R2016b_glnxa64_dvd2.iso /media/matlab/

点击OK继续

激活:

1
2
cd /usr/local/MATLAB/R2016b/bin
./matlab
  • 在弹出的界面中选择: Activate manually without the internet,点击next
  • 文件路径选择:./license_standalone.lic

把Crack文件夹中R2016b/Linux/R2016b/bin/glnxa64四个文件,复制到/usr/local/MATLAB/R2016b/bin/glnxa64目录下

1
sudo cp Crack/R2016b/bin/glnxa64/lib* /usr/local/MATLAB/R2016b/bin/glnxa64

至此,Matlab已经安装并激活。

环境变量

1
2
3
4
5
sudo gedit ~./bashrc
# 输入
# matlab
export PATH=/usr/local/MATLAB/R2016b/bin:$PATH
# 以后直接在命令框中输入matlab即可启动

创建快捷方式

1
2
3
4
5
6
7
8
9
10
11
sudo gedit /usr/share/applications/Matlab.desktop
# 写入
[Desktop Entry]
Type=Application
Name=Matlab
GenericName=Matlab 2016b
Comment=Matlab:The Language of Technical Computing
Exec=sh /usr/local/MATLAB/R2016b/bin/matlab -desktop
Icon=/usr/local/MATLAB/Matlab.png
Terminal=false
Categories=Development;
  • Exec代表应用程序的位置
  • Icon代表应用程序图标的位置
  • Terminal为false表示启动时不启动命令行窗口,为true表示启动命令行窗口

此时会在/usr/share/applications中看到matlab(和文件Name对应)的快捷方式

分辨率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看分辨率
xrandr
# VGA1

# 自定义分辨率
cvt 1920 1080
# "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

# 设置分辨率
sudo gedit /etc/profile

xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode VGA1 "1920x1080_60.00"

# 刷新
source /etc/profile

cuda、cudnn的卸载

1
2
3
4
5
6
7
# 卸载cuda
sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
# 删除cuda
sudo rm -rf /usr/local/cuda-9.0
# 卸载cudnn
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn

teamviewer for Linux 的安装与卸载

第一种方法

参考: https://www.cnblogs.com/fxust/p/8040706.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 1. 卸载
dpkg -l |grep xxx
#xxx就是安装的软件名
sudo dpkg --purge xxxx
rm -rf ~/.local/share/xxxx
# 然后把所有teamviewer的文件,尤其是log文件

# 2. 安装
sudo dpkg -i teamviewer_13.0.5693_amd64.deb
# 2.1 如果出现错误
#添加架构依赖
sudo dpkg --add-architecture i386
#更新软件库
sudo apt-get update
#执行强制安装
sudo apt-get -f install
#再安装
sudo dpkg -i teamviewer_13.0.5693_amd64.deb
# 配置文件可以修改,可以不改

第二种方法

https://blog.csdn.net/gaowu959/article/details/80460815

1
2
3
4
5
sudo gedit /etc/init.d/rc.local

sudo /sbin/ifconfig eth0 down
sudo /sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE(新的MAC地址)
sudo /sbin/ifconfig eht0 up

点击右上角网络连接->编辑连接->以太网
在克隆MAC地址一栏输入00:AA:BB:CC:DD:EE(新的MAC地址)