大家好,欢迎来到IT知识分享网。
一、显卡驱动的卸载
CentOS / RHEL
方法一:找到旧版本显卡驱动.run文件:
sh NVIDIA-Linux-x86_64-418.126.02.run --uninstall
方法二:清除所有nvidia相关文件和依赖
yum remove nvidia-*
进一步清除(把nvidia-driver的相关组件都清理掉):
rpm -qa|grep -i nvid|sort yum remove kmod-nvidia-*
清除cuda
yum remove "*nvidia*" yum remove "*cublas*" "cuda*"
卸除驱动重启
sudo reboot
Ubuntu LTS
sudo apt-get purge nvidia-* sudo apt-get --purge remove cuda
二、显卡驱动的安装
基本知识
前置条件
# 查看自己的显卡信息 lspci | grep -i nvidia # GPU驱动版本,driverAPI(支持的最高cuda版本) nvidia-smi # 动态监控显卡状态 watch -t -n 1 nvidia-smi # cuda版本,timeAPI(运行时API) nvcc -V
本文选取的是NVIDIA-driver-515.105加cuda-11.7。
安装NVIDIA显卡驱动(NVIDIA Driver)
chmod +x NVIDIA-Linux-x86_64-515.105.01.run ./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check
在安装过程中可能会显示问题,选择No
继续。
如果出现警告可以不用理会,直接接续,直到安装完成。
> Install NVIDIA's 32-bit compatibillity libraries? > Yes [No]
如有问题检查是否卸载驱动或看问题1:./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check
测试显卡驱动是否安装成功
nvidia-smi
安装CUDA
chmod +x cuda_11.7.1_515.65.01_linux.run ./cuda_11.7.1_515.65.01_linux.run
安装完会出现:
=========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-11.7/ Please make sure that - PATH includes /usr/local/cuda-11.7/bin - LD_LIBRARY_PATH includes /usr/local/cuda-11.7/lib64, or, add /usr/local/cuda-11.7/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-11.7/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-11.7/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 515.105 is required for CUDA 11.7 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
配置环境变量,将以下内容添加到~/.bashrc
文件中。
打开文件
vim ~/.bashrc
在文件末尾添加如下两行,可以将cuda版本11.7替换成安装的版本,如cuda-12.2
。
export PATH=/usr/local/cuda-11.7/bin${
PATH:+:${
PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使用以下命令刷新~/.bashrc
配置文件,使得配置生效。
source ~/.bashrc
测试、查询nvcc版本检查是否安装成功
nvcc -V
安装cudnn
下载cuDNN 下载地址。
rpm -i cudnn-local-repo-rhel7-8.9.2.26-1.0-1.x86_64.rpm
三、Docker显卡适配
NVIDIA-Container-Toolkit架构
知识补充(如无需要,可以直接跳到离线下载安装章节):
NVIDIA Container主要组件包括 nvidia-container-runtime
, nvidia-container-runtime-hook
, libnvidia-container
,和安装时需要提前装好的 CUDA驱动
;
在3.6.0版本后,runtime包成为一个只依赖于toolkit
包(指container-toolkit而不是nvidia CUDA toolkit)的包,在官网中也指出,对于一般的应用而言,nvidia-container-toolkit
能够满足绝大多数需求。~
nvidia-container-toolkit-base 现包含在 nvidia-container-toolkit 内部里 ,并且不再需要安装nvidia-container-runtime。(之前的nvidia-docker需要多安装两个包nvidia-container-runtime和nvidia-docker2。)
安装包依赖关系
官网文档依赖图如下。
├─ nvidia-container-toolkit (version) │ ├─ libnvidia-container-tools (>= version) │ └─ nvidia-container-toolkit-base (version) │ ├─ libnvidia-container-tools (version) │ └─ libnvidia-container1 (>= version) └─ libnvidia-container1 (version)
按照上文依赖关系,需要安装四个软件包,顺序为
libnvidia-container1 --> libnvidia-container-tools --> --> nvidia-container-toolkit-base --> nvidia-container-toolkit
也就是说我现在只需要从下面网址下载安装这几个包,然后按依赖顺序安装即可。(版本自行选择,这里下载的是centos7中的包)
离线下载安装
下载步骤:
这里下载安装包离线安装。需要下载以下四个离线包。
libnvidia-container1 libnvidia-container-tools nvidia-container-toolkit-base nvidia-container-toolkit
安装步骤:
四个包都下载好后导入系统,选择到对应文件夹下安装。
rpm包安装方式,安装文件夹下所有rpm安装包
rpm -ivh *.rpm
deb包安装方式
dpkg -i *.deb
装完重启docker服务。
systemctl restart docker systemctl status docker
成功!可以--gpus all
启动一个容器测试下是否容器使用GPU是否正常。
四、测试
使用docker run --gpus all
启动一个容器,进入容器内部测试下使用GPU是否正常。
在python里检查,也是大家用的最多的方式,检查GPU是否可用(但实际并不一定真的在用)
import torch torch.cuda.is_available() # setting device on GPU if available, else CPU device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') print('Using device:', device) print() #Additional Info when using cuda if device.type == 'cuda': print(torch.cuda.get_device_name(0)) print('Memory Usage:') print('Allocated:', round(torch.cuda.memory_allocated(0)/10243,1), 'GB') print('Cached: ', round(torch.cuda.memory_reserved(0)/10243,1), 'GB')
五、错误汇总
1.ERROR: You appear to be running an X server; please exit X before installing. For further details, …
sudo chmod +x NVIDIA-Linux-X86_64-515.105.run sudo ./NVIDIA-Linux-X86_64-515.105.run -no-x-check
在后面加上-no-x-check
,不对Xserver进行检查的命令,就可以安装成功!
方法2:修改运行级别为文本模式:升级nvidia驱动程序 – EchoZQN – 博客园
2.Error response from daemon: could not select device driver “” with capabilities: [[gpu]]
Nvidia Docker安装后,使用镜像创建容器时出错,错误提示:
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
需要安装:NVIDIA Container Toolkit
服务器nvidia驱动已安装,GPU使用没问题,但是docker无法使用GPU,这时就需要检查一下NVIDIA Container Toolkit是否已安装。NVIDIA Container Toolkit允许用户构建和运行GPU加速Docker容器(docker 版本 19之后,18之前使用nvidia-docker命令),所以只有安装了这个之后,才可以在docker内使用GPU。
根据你的系统,在官网上查找对应的安装命令。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
官网写的非常详细,一步步走下来就可以。
章节三中写的十分详细
3.file /usr/lib64/libnvidia-container.so.1 from install of libnvidia-container1-1.13.5-1.x86_64 conflicts with file form package libnvidia-container1-1.0.0-0.1.beta.1.x86_64
sudo yum remove libnvidia-container1-1.0.0-0.1.beta.1.x86_64
4.ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution’s docum…
这个问题是由于系统当前正在使用 Nouveau 显卡驱动导致的,而 NVIDIA 驱动与 Nouveau 驱动不兼容。为了解决这个问题,需要禁用 Nouveau 驱动。
方法一:通过 blacklisting 禁用 Nouveau 驱动
1)在/usr/lib/modprobe.d/dist-blacklist.conf中添加两行内容:
blacklist nouveau options nouveau modeset=0
2)给当前镜像做备份
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
3)建立新的镜像
dracut /boot/initramfs-$(uname -r).img $(uname -r)
4)重新启动
sudo init 6
方法二:添加参数
添加参数--no-opengl-files
./NVIDIA-Linux-x86_64-515.105.01.run --no-opengl-files
5.docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Runing hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver rpc error: timed out: unknown.
很奇怪的一个错误,启动容器的时候加载显卡--gpus all
就会报错。这个链接给出了解答,原因是显卡资源没有打开Persistence Mode。
通过查阅大量资料,发现网上有位大神咨询过英伟达,英伟达给出的解释是:“显卡资源没有打开Persistence Mode”,输入下面的命令即可解决:
nvidia-smi -pm ENABLED
如果上面的命令回车后,出现提示,就按提示安装,安装完之后再次执行上面的命令,就可以了。
参考内容
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128945.html