ubuntu 18.04 安装 GPU + CUDA +cuDNN

一、 检测图形显卡和推荐的驱动程序的模型。执行命令

$ ubuntu-drivers devices

输出结果为:

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C8Csv00001558sd0000850Abc03sc02i00
vendor   : NVIDIA Corporation
model    : GP107M [GeForce GTX 1050 Ti Mobile]
driver   : nvidia-driver-450 - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-460 - distro non-free
driver   : nvidia-driver-460-server - distro non-free recommended
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

== /sys/devices/pci0000:00/0000:00:1c.6/0000:04:00.0 ==
modalias : pci:v00008086d00003165sv00008086sd00004010bc02sc80i00
vendor   : Intel Corporation
model    : Wireless 3165 (Dual Band Wireless AC 3165)
manual_install: True
driver   : backport-iwlwifi-dkms - distro free

从输出结果可以看出,gpu 的型号是GTX 1050 Ti 推荐的驱动版本是 nvidia-driver-460-server

二、安装新驱动之前先把 原来的驱动卸载掉

1、删除Ubuntu系统旧驱动

# 删除
sudo apt-get purge nvidia*


如果你想卸载显卡驱动的话,可以用这个命令来卸载:

sudo apt-get remove nvidia*

2、开始安装驱动
这里用自动更新驱动的命令就行了

优点:省事
缺点:一般是安装最新版本的驱动,所以可能不符合tf,paddle需要的cuda环境。

$ sudo ubuntu-drivers autoinstall


手动选择其中一个驱动安装过

$ sudo apt install nvidia-340

注:安装完成后重启一下
所以我们一般无用上面的方式进行安装! 我们采用下面的方式进行安装

三、安装CUDA(针对18.04)

注意: 安装CUDA之前要不之前安装的 显卡驱动卸载掉,否则会报错。
卸载命令如下:

sudo apt-get purge nvidia*

# Note this might remove your cuda installation as well
sudo apt-get autoremove

卸载CUDA

下面xxxx 表示当前电脑上所安装的cuda 的版本号,根据自己电脑上的版本进行替换

# 10.0 版本及以前 卸载
sudo /usr/local/cuda-xxxx/bin/uninstall_cuda_XXXXX.pl

# 10.0 以后的版本卸载
sudo /usr/local/cuda-xxxx/bin/cuda-uninstaller

删除卸载之后的残留文件

sudo rm -rf /usr/local/cuda-xxxx/

1、CUDA 安装包下载

CUDA下载地址

GPU服务器硬件拓扑 gpu服务器搭建_linux


目前cuda 最高版本为11.1.0,我们安装完CUDA 之后还需要安装cuDNN。

我们先来看一下 cuda 安装文件的命名 eg: cuda_11.1.0_455.23.05_linux.run, 从该文件名可以看出 第一个_后面的数字代表的是cuda的版本号,第二个_ 后面的数字代表的事所需安装的 显卡驱动的版本号。

《其他版本cuda 下载地址》

2、安装之前 需要安装 g++、gcc、make

sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install g++

注意: 安装10.1 版本的需要对应安装 7版本的 gcc 对于高版本的gcc 需要降级:

# 手动安装 gcc-7 命令
sudo apt-get install gcc-7 g++-7

# 安装完gcc-7,系统中就存在两个版本的gcc,因此要设置默认的gcc,命令如下:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1

# 此命令可以通过update-alternatives设置gcc各版本的优先级,优先级最高的为系统默认版本,可以用下述命令显示其优先级:
sudo update-alternatives --display gcc

# 设置默认的g++也是如此:
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1

# 显示g++优先级:
sudo update-alternatives --display g++

3、 安装命令

chmod +x xxx.run
sudo sh xx.run 或者 sudo ./ xx.sh

会进入下面的界面,第一行Driver 表示所安装的显卡的驱动,可以看到10.1 版本的cuda 需要安装 418.67 版本的显卡驱动, 这里需要用 ubuntu-drivers devices 命令来查看一下当前电脑是否支持该版本的驱动, 并且如果电脑上已经安装了对应版本的显卡驱动的话, 这里就不需要再勾选 Driver 了, 如果电脑上没有驱动在这里需要勾选 Driver 选项进行显卡驱动的安装。

GPU服务器硬件拓扑 gpu服务器搭建_ubuntu_02


之后设置环境变量。

终端输入 sudo vim ~/.bashrc 进入

在文件末尾添加

export CUDA_HOME=/usr/local/cuda-10.1
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

然后在命令行输入 source ~/.bashrc 使之生效

输入 nvcc --version,如果显示如下文字就说明安装成功了:

GPU服务器硬件拓扑 gpu服务器搭建_g++_03

如果没有这个指令, 他应该会提示没有找到

Command ‘nvcc’ not found, but can be installed with: sudo apt install nvidia-cuda-toolkit

然后根据提示安装即可。

sudo apt install nvidia-cuda-toolkit

4、验证cuda是否正常运行:
在安装的时候也也相应安装了一些cuda的一些例子,可以进入例子的文件夹然后使用make命令执行。从网上找了两个例子,
例一:

# 第一步,进入例子文件
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
# 第二步,执行make命令
sudo make
# 第三步
./deviceQuery

如果结果有GPU的信息,说明安装成功。

例二:

# 进入例子对应的文件夹
cd NVIDIA_CUDA-9.0_Samples/5_Simulations/fluidsGL
# 执行make
make clean && make
# 运行
./fluidsGL

当执行这个例子,我们会看到流动的图,刚开始可能看不到黑洞,需要等待一小段时间。
当运行这个程序的时候我们可以通过如下命令查看GPU是否在使用:

nvidia-smi

结果如下图:

GPU服务器硬件拓扑 gpu服务器搭建_CUDA_04

实时查看GPU使用情况的命令

watch -n 1 nvidia-smi

四、cuDnn安装

1、下载
cuDNN Archive官网

GPU服务器硬件拓扑 gpu服务器搭建_linux_05


GPU服务器硬件拓扑 gpu服务器搭建_ubuntu_06

下载与自己CUDA相对应的版本,这里我现在下载是v8.1.0

**注: 下载的时候需要在官网上注册账户;**不推荐下载使用.deb 文件进行安装,因为安装时候容易出现包依赖问题

2、cuDNN 安装

这个就是一个加速的文件,无需安装。

把准备好的cudnn文件复制到已经安装好的cuda文件夹里。cuda安装在usr文件夹里。点开主目录里下面的计算机就可以找到。但是在这里没有办法用拖拽的方式进行复制黏贴(因为没有超级权限),需要使用命令行的方式。安装过程参考自[3]

首先进入cudnn对应的文件夹里。之后敲如下命令:

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

为上述文件添加读取和执行权限:

sudo chmod 755 /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

五、安装Anaconda 及 其他相关的包 (pytorch、tensorflow 等)

六、安装ssh服务

Ubuntu下安装ssh与配置

服务端(必须)

1.安装ssh服务端

sudo apt-get install openssh-server

2.确认sshserver是否启动了

ps -e | grep ssh

如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了

3.启动sshserver

/etc/init.d/ssh start

4.SSH配置(如果需要)
修改配置文件/etc/ssh/sshd_config,这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号如32,然后重启服务

5.重启sshserver

/etc/init.d/ssh restart

客户端(非必须)

1. 安装客户端(客户端不是必须的)

apt-get install ssh

2.如果安装失败,则使用下面命令进行安装

apt-get install openssh-client

3. SSH登录(客户端)

ssh 192.168.159.128

ssh -l cookie 192.168.152.10

ssh cookie@192.168.152.10

Mac终端连接服务器

ssh 服务器名称@服务器ip地址 eg ssh duanxincheng@10.185.96.218

Mac 上传文件到服务器命令

scp -P 22 本地文件路径及文件名 服务器名称@服务器ip地址 服务器中文件的存放路径 (其中 22 为端口号)
Eg : scp -P 22 ./libcudnn8-dev_8.1.0.77-1+cuda11.2_amd64.deb duanxincheng@10.185.96.218:/home/duanxincheng

Demo:

下载文件夹

scp -r root@110.255.255.52:/root/htmltitle (远程目录) 『空格』/Users/xxx/Desktop (本地目录)

下载文件

scp root@110.255.250.52 :/root/htmltitle/htmltitle.html (远程目录) 『空格』 /Users/xxx/Desktop

注: 不是所有的文件都能下载 如: .h5 文件我就没有下载下来, 此种情况,我们可以将改文件 放入文件夹中,下载所在的文件夹即可,或者将文件进行压缩然后下载

上传文件『到文件夹下』

1 . 打开终端, 进入上传文件的目录。

输入下面的命令
scp -r htmltitle.cpp(文件名) root@139.59.250.52:/root/htmltitle

详细格式:

下载文件夹

scp -r 远程登录服务器用户名@远程服务器ip地址:/下载文件夹的目录 本地目录

下载文件

scp 远程登录服务器用户名@远程服务器ip地址:/下载文件的目录 本地目录

上传文件『到文件夹下』

1 . 打开终端, 进入上传文件的目录。

输入下面的命令
scp -r 本地目录 远程登录服务器用户名@远程服务器ip地址:/文件上传的目录地址