ubuntu20.04算法服务器cuda 环境搭建

cuda 版本:10.1
nvidia驱动版本:Driver Version: 440.118.02
系统环境:ubuntu20.04
kernel: 5.4.0-62-generic

参考文档:
cuda10.1官方安装指导
Ubuntu16.04+cuda10.1官方安装指导的补充说明
Ubuntu 20.04 CUDA&cuDNN安装方法

一、安装前准备

在Linux上安装CUDA工具包和驱动程序之前,必须采取一些行动:

1、验证系统是否有支持cuda的GPU。
algorithm_team_admin@algorithmserver:~$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)
02:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
02:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
02:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
02:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)
2、验证系统运行的是支持的Linux版本。
algorithm_team_admin@algorithmserver:~$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
3、检查系统是否安装了gcc。

因为Ubuntu20.04自带的gcc版本为9.3,而cuda10.1不支持gcc-9,因此要手动安装gcc-7,命令如下:

#关键点:gcc降级
#因为Ubuntu20.04自带的gcc版本为9.3,而cuda10.1不支持gcc-9,因此要手动安装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++
查看当前gcc版本
algorithm_team_admin@algorithmserver:~$ gcc --version
gcc (Ubuntu 7.5.0-6ubuntu2) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4、检查系统是否安装了正确的内核头文件和开发包。
#运行以下命令可以找到您的系统正在运行的内核版本:
uname -r
# 当前运行的内核可以使用以下方式安装内核头文件和开发包:
sudo apt-get install linux-headers-$(uname -r)
 
 
#查看Linux中安装了哪些内核:
dpkg --get-selections | grep linux  或者 dpkg --list |grep linux
5、禁用Nouveaunon
# 1、如果下面的命令打印了任何东西,就会加载Nouveaunon驱动程序:
$ lsmod | grep nouveau
# 2、若上述命令有输出,则创建文件 /etc/modprobe.d/blacklist-nouveau.conf 包含以下内容
blacklist nouveau
options nouveau modeset=0
# 3、重新生成内核initramfs:
algorithm_team_admin@algorithmserver:~$ sudo update-initramfs -u
[sudo] password for algorithm_team_admin:
update-initramfs: Generating /boot/initrd.img-5.8.0-38-generic   #注意,确认更新的版本与当前系统版本(uname -r)是否一致,若不一致跳至步骤5
# 4、执行下面命令查看是否禁用成功
$ lsmod | grep nouveau
 
# 5、若以上配置未禁用成功,修改当前系统内核的配置文件/usr/lib/modprobe.d/blacklist_linux_5.4.0-39-generic.conf,添加如下内容后重启
blacklist nouveau
options nouveau modeset=0
# 6、重启
$ sudo reboot
# 7、执行下面命令查看是否禁用成功
$ lsmod | grep nouveau
6、安装nvidia 驱动
# 查看可以驱动版本
algorithm_team_admin@algorithmserver:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:02:00.0 ==
modalias : pci:v000010DEd00001E04sv00001B4Csd00001323bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU102 [GeForce RTX 2080 Ti]
manual_install: True
driver   : nvidia-driver-455 - third-party free
driver   : nvidia-driver-460 - third-party free recommended
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-418 - third-party free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-450 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
# 卸载现在安装的驱动
sudo apt-get purge nvidia*
#把显卡驱动加入ppa(个人软件包文档,仅支持Ubuntu):
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
# 重新安装驱动:
sudo apt-get install nvidia-driver-440 nvidia-settings nvidia-prime
# 验证驱动,是否是nvidia驱动
cat /proc/driver/nvidia/version
# 安装后执行命令查看
algorithm_team_admin@algorithmserver:~$ nvidia-smi
Wed Jan 27 16:48:35 2021      
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.118.02   Driver Version: 440.118.02   CUDA Version: 10.2     |  # cuda版本大于10.1,支持cuda10.1版本
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  On   | 00000000:01:00.0 Off |                  N/A |
| 34%   24C    P8     7W / 257W |     28MiB / 11019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 208...  On   | 00000000:02:00.0 Off |                  N/A |
| 34%   22C    P8    13W / 257W |     23MiB / 11019MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                                
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1279      G   /usr/lib/xorg/Xorg                             7MiB |
|    0      1389      G   /usr/bin/gnome-shell                           8MiB |
|    1      1279      G   /usr/lib/xorg/Xorg                            10MiB |
+-----------------------------------------------------------------------------+

二、cuda 安装

1、从官网下载安装包,本地安装包路径 /home/algorithm_team_admin/Downloads

在这里插入图片描述
由于网络封锁,现需vpn下载后上传至服务器
在这里插入图片描述

2、下载完成后执行安装
sudo sh cuda_10.1.243_418.87.00_linux.run

当安装界面启动,选择continue。
在这里插入图片描述
然后输入accept,回车。
在这里插入图片描述
由于你的系统中已经有了NVIDIA显卡驱动,如果不想安装CUDA 10.1中附带的驱动,移动到Driver选项上,按空格键将该项取消。如下图。
图缺失
移动到Install选项,回车,等待安装完成。

当出现如下信息时,表示安装成功

===========
= Summary =
===========
 
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-10.1/
Samples: Installed in /home/algorithm_team_admin/
 
Please make sure that
- PATH includes /usr/local/cuda-10.1/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root
 
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.1/bin
 
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.1/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
 
Logfile is /var/log/cuda-installer.log
3、配置可执行文件及库路径

安装完成后,需要为CUDA 10.1配置环境。

首先修改家目录下的~/.bashrc 文件

再修改全局环境配置/etc/profile 文件

在文件的末尾添加如下内容:


export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

添加完成后 执行命令


#更新环境变量配置
$ source /etc/profile
$ source ~./bashrc
#查看cuda 版本
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

三、cuDNN 安装

从https://developer.nvidia.com/cudnn下载相应版本的cudnn,需要登陆。

在这里插入图片描述
本地下载好的安装包如下图:
在这里插入图片描述
在这里插入图片描述


#下载解压之后,将cuda/include/cudnn.h文件复制到usr/local/cuda/include文件夹,将cuda/lib64/下所有文件复制到/usr/local/cuda/lib64文件夹中,并添加读取权限:
 
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp -r cuda/lib64/* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

至此cuDNN安装完成

四、demo验证安装

demo 源码目录/home/algorithm_team_admin/NVIDIA_CUDA-10.1_Samples

cd /home/algorithm_team_admin/NVIDIA_CUDA-10.1_Samples
#实例编译
make

如果报错,查看报错内容,根据提示解决即可。如果没有错误,会一直编译,十几分钟编译完成。生成的二进制文件将放在〜/ NVIDIA_CUDA- 10.1 _Samples / bin。

#编译后 :
$ cd ~/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release
 
#运行: 
$ ./deviceQuery
#会看到以下信息

在这里插入图片描述
至此:安装完成!!!
报错:出现以下信息,一定是驱动安装错了,重来吧。切记要完全卸载nvidia驱动和nouveau驱动。

$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 999
-> unknown error
Result = FAIL
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值