驅動版本與庫檔案不匹配(Failed to initialize NVML: Driver/library version mismatch)導致nvidia驅動無法執行的解決思路(不重啟)

castall發表於2024-04-16

發現nvidia-smi沒法用了,但是之前啟動的訓練程序還沒掛,嘗試透過不重啟程序、顯示卡、伺服器的條件下解決問題。

  1. 使用nvidia-smi命令時提示報錯:Failed to initialize NVML: Driver/library version mismatch。提示驅動版本與庫檔案不匹配

  2. 使用命令檢視nvidia相關的安裝記錄

    cat /var/log/dpkg.log | grep nvidia
    

    發現確實存在對現有的NVIDIA相關的庫檔案進行改動的記錄,可能是他人安裝驅動失敗的結果。

  3. 根據命令的結果,查詢到現有驅動的版本

    cat /proc/driver/nvidia/version
    

    NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.54.03 Tue Jun 6 22:20:39 UTC 2023
    GCC version: gcc version 12.3.0 (Ubuntu 12.3.0-1ubuntu1~23.04)
    (現有目前的GCC版本也對不上號了,需要切換)
    使用如下命令後,輸入對應版本的數字並按回車,直接切換即可

     sudo update-alternatives --config gcc
    
    > $ sudo update-alternatives --config gcc
      [sudo] password for test: 
      There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
        Selection    Path             Priority   Status
      ------------------------------------------------------------
        0            /usr/bin/gcc-10   10        auto mode
      * 1            /usr/bin/gcc-10   10        manual mode
        2            /usr/bin/gcc-9    9         manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 
    
  4. 查詢並對應版本的驅動的安裝包

  5. 使用--no-kernel-modules配置,來執行.run檔案,實現只安裝驅動核心以外的部分來對庫檔案等部分進行更新

    sudo sh NVIDIA-Linux-x86_64-535.54.03.run   --no-kernel-modules
    
  6. 試用nvidia-smi命令,問題成功解決,並且原有程序依然存在,在沒有重啟和關閉GPU相關的程序的的前提下解決了問題。
    安裝選項可參考參考連結2,下面問題的選項可選No

    Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X?
    Any pre-existing X configuration file will be backed up.
    Yes No

參考連結

  1. Ubuntu 上切換多個版本的 GCC 編譯器_ubuntu 切換gcc-CSDN部落格
  2. Ubuntu在安裝NVIDIA驅動後黑屏無法啟動進入圖形桌面_would you like to run the nvidia-xconfig utility t-CSDN部落格

相關文章