Nvidia GPU驅動與CUDA、Ubuntu內核兼容性問題的解決日志

問題描述

最近,各個操作系統針對Intel CPU的Meltdown(熔斷)和Spectre(幽靈)這兩個芯片級的設計漏洞推出了安全補丁。在更新了新的Kernel之后,我們的AI服務器運行的Ubuntu 16.04系統的Linux Kernel升級到了4.13.0-31-generic。重啟之后,發現GPU無法正常使用,出現無法登錄系統、分辨率改變等問題,與Ubuntu 16.04安裝NVIDIA驅動后循環登錄問題中描述的癥狀一致。初步判斷原因是顯卡驅動(nvidia driver 387.26)和新的linux kernel(4.13.0-31-generic)不兼容導致的。去Nvidia的devtalk逛了一圈,確實很多人報告了這個問題。

  • 操作系統:ubuntu 16.04
  • 系統內核: Linux version 4.13.0-31-generic
  • GPU: GTX 1080
  • CUDA:cuda-9.1, cudnn-7.0.1,deb (local)安裝方式
  • nvidia driver: nvidia driver 387.26

Nvidia已經更新了驅動,只需要安裝新的驅動就可以解決linux kernel和nvidia driver不兼容的問題。不過,devtalk安裝的新驅動版本為nvidia driver 390,在嘗試了單獨下載該驅動的run文件安裝方式和deb (network)安裝方式之后,發現前一種安裝方式因為著名的nouveau問題而安裝失敗,后一種依舊安裝387.26版本的驅動,最終放棄了這兩種安裝方式,采用了第三種PPA的途徑。

解決方法

首先,在PPA GPU查看驅動的版本(Current official release: nvidia-387 (387.34)...)

  1. 卸載現有GPU驅動
$ sudo apt-get remove --purge nvidia-*
$ sudo apt-get autoremove
  1. PPA安裝新的GPU驅動
# 如果沒有add-apt-repository命令,安裝 software-properties-common即可
$ sudo add-apt-repository ppa:graphics-drivers
$ sudo apt-get update
# 安裝新的驅動nvidia-387.34
$ sudo apt-get install nvidia-387
  1. 重啟
  2. deb (network)的方式安裝CUDA 9.1。如果用deb local的安裝方式,還是會安裝舊的驅動版本。安裝好之后,不要忘記設置環境變量。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容