已解决 | Linux系统中docker报错CUDA driver version is insufficient for CUDA runtime version

BUG千千万,笔者也是linux与docker小白一枚,仅在此记录下笔者碰到的问题和解决过程,希望对各位程序猿/媛有所帮助。

  • 已解决 | Linux系统中docker报错CUDA driver version is insufficient for CUDA runtime version
    • 问题描述
    • 原因:宿主机上未安装nvidia-docker
    • 附录
      • 将当前用户加入docker组(docker免sudo权限)
      • container文件夹挂载至宿主机文件夹
      • CUDA与Nvidia驱动对应关系

已解决 | Linux系统中docker报错CUDA driver version is insufficient for CUDA runtime version

在终端中运行命令nvidia-smi查看显卡驱动版本及CUDA版本。
也可使用cat /proc/driver/nvidia/version查看nvidia驱动版本;
使用nvcc --version查看CUDA版本

笔者系统及docker配置如下:
Host OS:

系统:Ubuntu 20.04 LTS
显卡驱动:nvidia 450.80.02
CUDA版本:11.0

Container OS:

系统:Ubuntu 18.04
显卡驱动:nvidia 450.80.02
CUDA版本:9.2

问题描述

1.在Host OS中使用命令nvidia-smi时正常显示结果;
在container OS中使用命令cat /proc/driver/nvidia/versionnvcc --version可正常显示显卡驱动版本及CUDA版本,但是使用命令nvidia-smi则报错:

bash: nvidia-smi: command not found

2.在程序调用gpus时,会出现报错:

Error: CUDA driver version is insufficient for CUDA runtime version

原因:宿主机上未安装nvidia-docker

参考了许多博客,很多人碰到该问题时都认为是CUDA版本与显卡驱动不匹配的问题,如要确认自己是否问题处在这里,可参考下文附录中的表格。(笔者不是这个问题)

(在已安装docker-ce的前提下)nvidia-docker安装步骤如下:
设置stable存储库和GPG密钥:

curl https://get.docker.com | sh \
  && sudo systemctl start docker \
  && sudo systemctl enable docker

安装nvidia-docker2及其依赖项

sudo apt-get update
sudo apt-get install -y nvidia-docker2
# 上一步骤中可能存在/etc/docker/daemon.json文件的覆写问题,如不想丢失原docker配置,注意备份

重新启动docker以完成安装:

sudo systemctl restart docker

快速测试container中nvidia-smi命令是否运行正常(测试完成后可在images中删除镜像nvidia/cuda:11.0-base):

docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

Reference : https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

在宿主机上测试nvidia-docker是否安装成功

nvidia-docker -v

在创建contianer时,创建命令如下:

# -v命令表示将容器中文件夹挂载到本地路径下文件夹,可实现文件共享(免传输)
docker run -it --gpus all ${imageName}:${tag} /bin/bash

附录

将当前用户加入docker组(docker免sudo权限)

sudo usermod -aG docker $USER
sudo service docker restart
# 重新登录
sudo su
exit

container文件夹挂载至宿主机文件夹

在创建contianer时,创建命令如下:

# -v命令表示将容器中文件夹挂载到本地路径下文件夹,可实现文件共享(免传输)
docker run -itv ${localPath}:${containerPath} --gpus all ${imageName}:${tag} /bin/bash

CUDA与Nvidia驱动对应关系

Reference : https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
已解决 | Linux系统中docker报错CUDA driver version is insufficient for CUDA runtime version_第1张图片

你可能感兴趣的:(Linux,Docker,docker,cuda,ubuntu)