快轉到主要內容

如何在Debian系統安裝Nvidia驅動、CUDA、cuDNN

Debian Nvidia
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

本文解說如何在Debian GNU/Linux系統安裝Nvidia驅動程式與CUDA套件。系統版本為Debian11 (Bullseye,Stable分支)。

安裝方法參考自Debian Wiki與Nvidia官方文件,以APT套件管理員線上安裝(Network Installation)為主,方便升級與解除安裝。

在安裝Debian的時候,如果有Nvidia顯示卡,預設會安裝開源的nouveau驅動。但是要使用CUDA技術,就得安裝Nvidia的專有驅動。

lspci | egrep 'VGA|NVIDIA'確認電腦顯示卡型號,應會看到如下輸出。

01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)

用指令lsmod | grep nouveau查看目前使用的驅動程式是否為nouveau,應會顯示已載入nouveau核心模組

nouveau

nouveau是含在mesa套件裡面的,一般不需要刪除套件,在安裝Nvidia專有驅動後nouveau就會自動被停用。

另外,需要多版本Python共存的請安裝 Anaconda

1. 安裝Nvidia專有驅動
#

Debian官方非自由(non-free)的套件庫有收錄Nvidia驅動的套件。

  1. 首先要啟用非自由的套件庫
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository contrib
sudo add-apt-repository non-free
sudo apt update
  1. 接著以DKMS安裝Nvidia驅動
sudo apt install nvidia-driver firmware-misc-nonfree
  1. 安裝後重開機,執行nviia-smi指令查看目前驅動版本。

Debian Stable提供的nvidia-driver套件版本可能有點舊,這沒有關係,下面安裝CUDA的時候會自動裝上新版驅動。

2. 安裝CUDA
#

Debian有收錄CUDA套件:nvidia-cuda-devnvidia-cuda-toolkitnvidia-visual-profiler,但是要取得最新版本得用Nvidia官方的儲存庫。

  1. 取得Nvidia提供的儲存庫金鑰。$distro是Debian版本號碼,$arch是作業系統架構。
distro=debian11
arch=x86_64
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.0-1_all.deb
  1. 安裝CUDA套件,目前最新版CUDA為12.1。
sudo apt-get update
sudo apt-get -y install cuda
# 或是指定舊版CUDA
sudo apt-get install cuda-11.8
  1. CUDA會安裝至/usr/local/,以VIM編輯~/.bashrc
vim ~/.bashrc
  1. 將以下二行加到檔案末尾,這樣系統才找得到CUDA 12的檔案
export PATH=/usr/local/cuda-12/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  1. 重開機,執行nvcc --version指令查看CUDA版本
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0

3. 安裝cuDNN
#

  1. 安裝gcc, zlib1g, libfreeimage
sudo apt-get install build-essential zlib1g libfreeimage-dev
  1. 加入Nvidia官方的儲存庫
OS=debian11
wget https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin 
sudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/ /"
sudo apt-get update
  1. 安裝cuDNN執行時
# 如果找不到套件請用apt search libcudnn8查找其確切版本號碼
cudnn_version=8.8.1.3
cuda_version=cuda12.0
sudo apt-get install libcudnn8=${cudnn_version}-1+${cuda_version}
sudo apt-get install libcudnn8-dev=${cudnn_version}-1+${cuda_version}
  1. 要驗證cuDNN安裝的方法就是嘗試編譯官方給的範本…但Nvidia好像忘了給Debian提供範本,只有Ubuntu才找得到libcudnn8-samples

  2. Nvidia官網,註冊登入,手動下載CUDA套件庫Local Installer for Debian 11 (Deb),並安裝範本:

OS=debian11
cudnn_version=8.8.1.3
cuda_version=cuda12.0
sudo dpkg -i cudnn-local-repo-${OS}-${cudnn_version}_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn8-samples=${cudnn_version}-1+${cuda_version}
  1. 嘗試編譯範本,顯示Test passed!代表cuDNN安裝成功。
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd  $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

參考資料
#

相關文章

以CPU only模式跑Stable Diffusion WebUI
開源AI人工智慧應用 Stable Diffusion教學 Stable Diffusion WebUI
Android手機寫Python:Termux安裝Anaconda環境 (miniforge)
智慧型手機 Termux教學 Anaconda Python Android
如何在Android手機Termux跑Stable Diffusion,用於AI繪圖
開源AI人工智慧應用 Stable Diffusion教學 Stable Diffusion Android Termux Python

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。