引言:本文安装
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
然后在下载处,右键复制链接地址即可
- 拼装好链接后就可以直接下载了
wget http://cn.download.nvidia.com/tesla/450.51.06/NVIDIA-Linux-x86_64-450.51.06.run
- 屏蔽默认带有的nouveau,修改
dist-blacklist.conf
配置文件
su root # 切换到root用户
vim /lib/modprobe.d/dist-blacklist.conf
- 将nvidiafb注释掉
# blacklist nvidiafb
然后添加以下语句:
代码语言:javascript复制blacklist nouveau
options nouveau modeset=0
- 重建initramfs image步骤
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
- 修改运行级别为文本模式,并重启
systemctl set-default multi-user.target
reboot
查看nouveau是否已经禁用,若没显示相关内容则已禁用
代码语言:javascript复制ls mod | grep nouveau
- 进入下载的驱动所在目录
chmod x NVIDIA-Linux-x86_64-450.51.06.run
- 安装驱动(注:①kernel-source-path地址需改为自己的地址;②一路ok accpet即可)
./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
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驱动.