Ubuntu下CUDA环境配置
Ubuntu下Cuda通用配置教程,以Ubuntu20.04.01+CUDA11.6.1+NVIDIA510.54为例。
本文为通用教程,以Ubuntu20.04.01+CUDA11.6.1+NVIDIA510.54为例。
一.Cuda下载
注:Ubuntu下也可以采用wget下载,终端输入以下指令,等待下载完成即可
2.其它版本下载地址
https://developer.nvidia.com/cuda-toolkit-archive
二.NVIDIA驱动
1.进入NVIDIA官网,查询对应驱动清单(本文以Geforce RTX 3080为例),选择合适的版本
本环境选择的是510.54版本,如下图中矩形框所示:
510.54版本下载链接:
https://cn.download.nvidia.cn/XFree86/Linux-x86_64/510.54/NVIDIA-Linux-x86_64-510.54.run
2.点击查看该版本支持的显卡型号
注意:CUDA和NVIDIA驱动有版本对应关系,如下节所示,若安装其它版本需注意
3.显卡驱动与CUDA版本对应关系
显卡驱动与Cuda版本对应关系https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
4.CUDA、Ubuntu 、GCC版本对应关系(for linux)
NVIDIA CUDA Archived Documentation 总的集合https://docs.nvidia.com/cuda/archive/
三.安装
1.准备
下载上述版本NVIDIA驱动和CUDA,先安装make和g++,如果系统安装过NVIDIA驱动,需先卸载
卸载指令:sudo apt-get remove nvidia-*
2.禁用nouveau
# 1.创建/etc/modprobe.d/blacklist-nouveau.conf文件,添加以下内容以阻止nouveau模块加载
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
# 2.添加
blacklist nouveau
options nouveau modeset=0
# 3.更新内核文件
sudo update-initramfs -u
# 4.重启计算机,查找nouveau模块,是否还存在
lsmod | grep nouveau
3.禁用图形界面服务
sudo /etc/init.d/lightdm stop 或 sudo service lightdm stop
如提示lightdm不存在或者未安装,先暂时跳过该步骤
4.赋予权限并安装CUDA
#cd到CUDA安装文件目录下
sudo chmod a+x cuda_11.6.1_510.47.03_linux.run
sudo sh ./cuda_11.6.1_510.47.03_linux.run
注意:安装过程中会提示是否安装自带的510.47.03驱动是,选择no,其它都是yes
## 1.接受许可,输入accept
## 2.不安装cuda自带的驱动,将Driver前面的X去掉
## 3.选择 Install 回车,等待安装完成
## 4.安装完成如下
5.安装显卡驱动
# 1.进入多用户-命令行模式
init 3 或者Ctrl +Alt +F2(F1~F6都可以)
#cd到驱动安装文件目录下
sudo sh ./NVIDIA-Linux-x86_64-510.54.run --no-x-check -no-nouveau-check -no-opengl-files
注意:不安装opengl是因为可能会影响桌面,过程中提示是否升级X config配置文件,如果独显做输出就选yes,否则就默认no,其它都默认
# 2.切回图行桌面
init 5 或者Ctrl +Alt +F7
# 3.验证驱动
nvdia-smi 或者watck nvidia-smi
扩展:watch -n 1 nvidia-smi 表示每隔0.5秒刷新一次GPU使用情况
nvidia-smi -l 1 同上,建议使用该命令,不太影响cuda使用
6.配置环境变量
sudo vim /etc/profile
# 1.在末尾添加以下内容
export PATH=$PATH:/usr/local/cuda-11.6/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
# 2.使环境变量立即生效
source /etc/profile
# 3.验证环境变量是否生效
nvcc -V
# 4.若正常输出cuda版本信息则表示成功
7.验证cuda和驱动
貌似新的cuda包不再安装例子程序了,即使选择了安装
# 1.cd 到实例目录
cd /usr/local/cuda-11.6/samples/1_Utilities/deviceQuery
make
./deviceQuery
8.禁用系统自动更新、内核更新(务必)
系统更新可能会升级内核,有时候会造成显卡驱动失效或者进系统黑屏等问题,带来不必要的折腾。
# 1.禁用系统更新:打开“Software & Updates ->Updates”,修改如下:
# 2.禁用内核更新:
##1.查看系统当前所用内核:
uname -a
## 2.用以下指令查看跟系统所用版本内核相关的文件(带linux-image、linux-headers的)
dpkg --get-selections | grep linux-image
dpkg --get-selections | grep linxu-headers
dpkg --list | grep linux-image
dpkg --list | grep linux-headers
ls /boot/
## 3.禁用内核更新:
带linux-image、linux-headers的对应版本的都执行sudo apt-mark hold,有比所用版本的新的要删除掉。
sudo apt-mark hold linux-headers-5.4.0-42
sudo apt-mark hold linux-headers-5.4.0-42-generic
sudo apt-mark hold linux-image-5.4.0-42-generic
## 4.进系统黑屏(有时候只有一个光标在左上角闪)、nvidia-smi提示如下信息等问题
最简单的办法就是重启系统,进入grub引导界面,选择“Advanced option for Ubuntu/Ubuntu高级选项”,回车,之后选择旧的内核版本(优先选择带恢复模式的)进入系统
正常情况上述操作都能恢复正常,nvidia-smi 提示“NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver......”,也可以通过如下操作解决:
## 1.安装dkms
sudo apt-get install dkms
## 2.查看本机连接不上的驱动版本(若能记得版本可跳过此步)
ls -l /usr/src/
## 3.重新生成对应版本的驱动模块
sudo dkms install -m nvidia -v 510.54
9.卸载
## 1.Nvidia卸载:通过ppa源安装的
sudo apt-get remove --purge nvidia*
## 2.Nvidia卸载:通过runfile安装的
sudo ./NVIDIA-Linux-x86_64-510.54.run --uninstall
新版的也可以通过:sudo /usr/bin/nvidia-uninstall
## 3.Cuda卸载,cd到Cuda 安装目录bin目录下,执行:
sudo ./cuda-uninstaller
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)