记录一下自己解决linux系统安装nvidia遇到的问题 

问题描述:在linux服务器上运行docker容器需要使用服务器上的gpu,docker容器已经准备好。但是在检查nvidia驱动时报错:Failed to initialize NVML Driver/library version mismatch

步骤一:检查服务器nvidia驱动

命令:

nvidia-smi

1.驱动器正常,出现下图:

2.我遇到的问题报错: 

Failed to initialize NVML Driver/library version mismatch

问题原因:Ubuntu自动更新Linux内核导致nvidia显卡驱动无法加载

步骤二:解决以上问题

1.卸载原有nvidia

sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*

直到下面命令不输出任何内容      

sudo dpkg --list | grep nvidia-*

2.下载安装nvidia

        nvidia官方网站下载nvidia的.run文件驱动,下载连接

         https://developer.nvidia.com/cuda-toolkit-archive

        1.给驱动run文件赋予执行权限:

$ sudo chmod a+x NVIDIA-Linux-x86_64-xxxxxxx.run

        2.安装驱动文件

$ sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files

        -no-x-check:安装驱动时关闭X服务
        -no-nouveau-check:安装驱动时禁用nouveau
        -no-opengl-files:只安装驱动文件,不安装OpenGL文件 

        验证:nvidia-smi出现步骤一表示安装成功

3.安装cuda

        进入nvidia开发者网站的CUDA下载页面下载cuda的.run文件

        3.1 使用命令安装

$ sudo sh cuda_10.1.168_418.67_linux.run

 去掉下图的Driver勾选,因为刚才已经安装过nvidia驱动了,光标到Install,按下回车

 完成之后

sudo gedit ~/.bashrc

 在文件最后一行添加:

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

注:PATH后的路径要根据自己实际安装的路径修改

使配置生效

$ source ~/.bashrc

进入/usr/local/cuda-11.1/samples/1_Utilities/目录

$ cd deviceQuery
$ sudo make
$ ./deviceQuery

 输出如下,说明安装cuda成功

 至此nvidia/cuda安装完成

步骤三:运行docker容器

命令

docker run -d --gpus all 容器号

报错:docker: Error response from daemon: exec: "nvidia-container-runtime-hook": executable file not found in $PATH.

找了很多才知道是cuda的依赖包没装上

sudo apt install安装下面依赖包

libnvidia-container1
libnvidia-container-tools
nvidia-container-toolkit
nvidia-container-runtime
nvidia-docker2

步骤四:解决问题过程的补充问题

1:查看nouveau

         1. 禁用nouveau

$ sudo vim /etc/modprobe.d/blacklist.conf

        2. 末尾添加

blacklist nouveau
options nouveau modeset=0

        3. 验证nouveau是否已经被禁用

lsmod | grep nouveau

2. 查看显卡型号

lspci |grep -i nvidia

3. 安装nvidia/cuda基础依赖环境

yum -y install gcc kernel-devel kernel-headers

4. 在Nvidia官网下载相应驱动
官网下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn

解决问题过程中的参考资料:

 Ubuntu18中安装Nvidia驱动和CUDA和cuDNN库加速_想要有趣的灵魂的博客-CSDN博客_ubuntu18安装cudnn

 "nvidia-container-runtime-hook": executable file not found in $PATH · Issue #1337 · NVIDIA/nvidia-docker · GitHub

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐