CentOS下的CUDA安装和使用指南

2021-09-18 15:15:04 浏览数 (1)

引言:本文安装CUDA主要用于在GPU上训练深度学习模型,编程语言为Python,与C/C 不同,使用Anaconda安装很方便,没有包管理的冲突。

安装步骤

  • 安装 Anaconda如果有则跳过此步骤
  • 安装 NVIDIA Driver,即显卡驱动
  • 使用 conda 安装 CUDA Toolkit
  • 使用 Python 扩展库进行 GPU 加速的 CUDA 编程

一、安装Anaconda(若已安装请忽略)

Linux的版本在官网上找合适版本的软件包,然后右键复制链接地址,通过wget命令下载。 官网:https://repo.anaconda.com/archive/

这里我以2019年版本为例,我下载的是shell脚本(对应.sh文件)

代码语言:javascript复制
wget https://repo.continuum.io/archive/Anaconda3-2019.07-Linux-x86_64.sh

执行该shell脚本,进行Anaconda的安装

代码语言:javascript复制
sudo sh Anaconda3-2019.07-Linux-x86_64.sh

安装完毕后,查看镜像源

代码语言:javascript复制
conda config --show channels

如果只有default,则需要修改channels添加国内清华镜像源以加速下载要安装的包

代码语言:javascript复制
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
代码语言:javascript复制
conda config --set show_channel_urls yes

之后再show一下就能看到

二、下载安装 NVIDIA Driver

首先检查系统是否有支持 CUDA 编程的 GPU,使用如下命令查看当前GPU的型号。系统版本为 CentOS 7.8,GPU 为 NVIDIA Tesla K80 (2个)

代码语言:javascript复制
lspci | grep -i nvidia

2.1 安装基础依赖环境

代码语言:javascript复制
yum install kernel-devel

注意需要保证内核版本和源码版本一致,否则会报错。

代码语言:javascript复制
# 查看内核版本
ls /boot | grep vmlinu
# 查看源码版本
rpm -aq | grep kernel-devel

如下两者版本一致

2.2 下载 NVIDIA Driver

在官网中输入自己GPU相关信息和OS类型(比如我的设置如下),即可搜索出相应的NVIDIA Driver下载链接 官网:https://www.nvidia.cn/Download/index.aspx?lang=cn

然后在下载处,右键复制链接地址即可

  • 拼装好链接后就可以直接下载了
代码语言:javascript复制
wget http://cn.download.nvidia.com/tesla/450.51.06/NVIDIA-Linux-x86_64-450.51.06.run
  • 屏蔽默认带有的nouveau,修改dist-blacklist.conf配置文件
代码语言:javascript复制
su root  # 切换到root用户
vim /lib/modprobe.d/dist-blacklist.conf 
  • 将nvidiafb注释掉
代码语言:javascript复制
# blacklist nvidiafb 

然后添加以下语句:

代码语言:javascript复制
blacklist nouveau
options nouveau modeset=0
  • 重建initramfs image步骤
代码语言:javascript复制
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r) 
  • 修改运行级别为文本模式,并重启
代码语言:javascript复制
systemctl set-default multi-user.target
reboot

查看nouveau是否已经禁用,若没显示相关内容则已禁用

代码语言:javascript复制
ls mod | grep nouveau
  • 进入下载的驱动所在目录
代码语言:javascript复制
chmod  x NVIDIA-Linux-x86_64-450.51.06.run 
  • 安装驱动(注:①kernel-source-path地址需改为自己的地址;②一路ok accpet即可)
代码语言:javascript复制
./NVIDIA-Linux-x86_64-450.51.06.run --kernel-source-path=/usr/src/kernels/3.10.0-1127.19.1.el7.x86_64/

安装成功后,使用如下命令可以看到安装好的驱动版本号(Driver Version)

代码语言:javascript复制
nvidia-smi

三、使用conda安装CUDA Toolkit

这里只需要一路accept即可,很简单,需要花点时间

代码语言:javascript复制
conda install -c anaconda cudatoolkit

Numba 是 Anaconda 自带的扩展库之一。在输入如下命令可查看硬件信息、操作系统信息、Python 版本、CUDA 版本信息。

代码语言:javascript复制
numba -s

【本机硬件信息】:

【本机操作系统信息】:

【本机CUDA信息】:

四、使用Pytorch CUDA进行GPU加速的Python 编程

先查看conda list中是否有已安装的torch

代码语言:javascript复制
 conda list | grep torch

若没有,则进行一步安装

代码语言:javascript复制
conda install pytorch torchvision -c pytorch

在IPython中输入如下测试代码

代码语言:javascript复制
import torch  
torch.cuda.is_available() 

返回True则说明torch可用GPU

【参考文献】: [1] Centos7安装独立显卡驱动. [2] 知乎.Linux 下的CUDA安装和使用指南. [3] linux命令行下适配NVIDIA驱动.

0 人点赞