【異常修復】Docker啟動容器時無法使用GPU


硬件配置

顯卡:Tesla V100

問題呈現

  1. 某次重啟后,發現服務器nvidia-docker無法start已有的部分容器
$ docker start ******
Error response from daemon: failed to create shim: OCI runtime create failed
: container_linux.go:380: starting container process caused
: process_linux.go:545: container init caused
: Running hook #0:: error running hook: exit status 1, stdout: , stderr
: nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown
Error: failed to start containers: ******
  1. 為排查問題的可能原因,嘗試另行啟動容器,發現啟動時無法使用GPU
$ docker run -it --gpus all [Image_Name]:[Image_Tag]
docker: 
Error response from daemon: failed to create shim: OCI runtime create failed
: container_linux.go:380: starting container process caused
: process_linux.go:545: container init caused
: Running hook #0:: error running hook: exit status 1, stdout: , stderr
: nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown.
  1. 為了進一步排查問題的可能原因,使用nvidia-smi命令查看顯卡情況,發現異常
$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. 
Make sure that the latest NVIDIA driver is installed and running.

問題定位

docker報錯中包含nvml error: driver not loaded: unknown,因此問題產生原因可能是顯卡驅動被擠掉了

解決方案

  1. 查驗現狀
    nvcc -V確認顯卡驅動存在
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Wed_Jul_22_19:09:09_PDT_2020
Cuda compilation tools, release 11.0, V11.0.221
Build cuda_11.0_bu.TC445_37.28845127_0
  1. 查看已安裝驅動的版本信息
$ ls /usr/src | grep nvidia
nvidia-450.51.06
  1. 安裝一個不知道什么東西,再安一個不知道什么東西(注意需要sudo權限,無權限聯系管理員處理)
$ sudo apt-get install dkms
$ sudo dkms install -m nvidia -v 450.51.06 # 注意這個版本號和上一步查到的相對應
  1. 完成操作后,docker和Nvidia-SMI均恢復正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM