Nvidia公司針對各種Linux發行版提供套件庫(repository),方便使用者安裝最新版Nvidia驅動與CUDA Toolkit。
支援的Linux發行版包含:Ubuntu、Debian、KylinOS、Fedora、RHEL、Rocky Linux、Amazon Linux、Azure Linux、SUSE Linux。
本文以Ubuntu為例。
注意:根據Nvidia官網建議,使用者應該優先使用Linux發行版套件庫打包的Nvidia驅動套件,比較穩定,參見Ubuntu安裝Nvidia驅動教學。真的需要新功能的時候才使用這裡的驅動。
1. 檢查Nvidia顯示卡相容性#
- 確認Nvidia是否仍支援你的顯示卡驅動,到Nvidia官網查詢。只要不是十年以上的舊卡,Nvidia閉源驅動應該都會繼續提供支援。如果有支援,那麼就直接安裝最新版Nvidia閉源驅動。如果你的顯示卡已經停止支援,那麼頂多只能裝到特定舊版本的驅動。
舉例來說:NVIDIA GeForce GTX 1050屬於Turing架構以前的舊卡,那麼最高就只能裝到580版本的驅動。在Turing架構以後推出的NVIDIA GeForce GTX 1650,可以直接裝最新版的590驅動。
想知道目前電腦是使用哪一個主顯示卡,開啟終端機,安裝套件:
sudo apt install vulkan-tools,再使用指令:vulkaninfo --summary指令查看,GPU0欄位應會印出Nvidia。一些發行版,例如Ubuntu,可能在你第一次安裝系統的時候就自動裝好Nvidia驅動了。如何確認你現在是否已經安裝Nvidia閉源驅動程式?開啟終端機,執行
nvidia-smi指令,看是否會印出Nvidia驅動版本。若有Nvidia顯示卡但沒有安裝Nvidia閉源驅動,Linux預設應該會載入開源nouveau驅動。這可以用指令
sudo lshw -C display確認,driver區段會顯示"nouveau"
2. 新增Nvidia套件庫#
Nvidia官方套件庫,裡面含有各種CUDA版本與最新Nvidia閉源驅動。在你新增Nvidia套件庫之後,nvidia-driver-*相關套件的優先度會被替換為以Nvidia套件的為主,Ubuntu套件庫的次之。這點可以透過apt policy nvidia-driver-*指令確認。
- 安裝GCC與kernel headers
sudo apt install build-essential
sudo apt install linux-headers-$(uname -r)- 如果有的話,刪除過期的套件庫金鑰
sudo apt-key del 7fa2af80- 加入套件庫
# 使用環境變數os指定系統版本,系統太新可能會沒得下載
os=ubuntu2404
# 使用環境變數arch指定系統架構
arch=x86_64
# 取得套件庫鑰匙圈
wget https://developer.download.nvidia.com/compute/cuda/repos/$os/$arch/cuda-keyring_1.1-1_all.deb
# 安裝鑰匙圈
sudo apt install ./cuda-keyring_1.1-1_all.deb- 重新整理套件庫
sudo apt update3. 安裝Nvidia驅動#
- 搜尋可用的Nvidia套件版本
sudo apt search nvidia-driver- 以DKMS安裝Nvidia驅動
例如Turing架構以後的顯示卡,可以直接裝nvidia-open驅動
sudo apt install nvidia-openTuring架構以前的顯示卡,要裝特定版本的舊版驅動。不過要注意的是,Nvidia套件庫可能不會收錄舊版驅動。
sudo apt install nvidia-driver-580- 重開機,確認Nvidia驅動版本。
nvidia-smi4. 安裝CUDA#
必須先裝Nvidia專有驅動才能裝CUDA。
- 從Nvidia套件庫,安裝最新的CUDA Toolkit。由於Nvidia官方套件庫有最新版本驅動,若Ubuntu的Nvidia驅動版本對不上,在安裝CUDA的過程會強制升級。
sudo apt install cuda-toolkit重開機。用
nvcc --version指令確認CUDA版本如果顯示
Command nvcc not found,則編輯~/.bashrc。
vim ~/.bashrc- 加入以下兩條指令,將CUDA的路徑加入環境變數,撰文當下為CUDA 13-1。由於CUDA版本會一直更新,你可能要執行
ls /usr/local/查看CUDA的真正路徑,依照你的實際情況做修改。
export PATH=/usr/local/cuda-13-1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-13-1/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}- 再嘗試檢查一次版本
source ~/.bashrc
nvcc --version附錄:如何安裝舊版本CUDA?
如果裝了CUDA 12,才發現你需要的其實是CUDA 11,那就將其移除重裝。
註:如果常常需要在多個版本的CUDA之間切換,建議直接用Docker配合Nvidia Container Toolkit,每個容器有各自的CUDA版本,就不會受到宿主機的CUDA版本影響了。
- 刪除目前已安裝的Nvidia驅動與CUDA
sudo apt purge *nvidia*
sudo apt purge remove *cuda*
sudo apt autopurge- 重新加入Nvidia CUDA套件庫
os=ubuntu2404
arch=x86_64
wget https://developer.download.nvidia.com/compute/cuda/repos/$os/$arch/cuda-keyring_1.0-1_all.deb
sudo apt install ./cuda-keyring_1.0-1_all.deb
sudo apt update- 查看可用的CUDA版本。如果找不到舊版CUDA套件,那就是目前的系統不支援安裝舊版CUDA。
sudo apt search cuda- 安裝舊版CUDA,例如CUDA 11.8
sudo apt install cuda-11-8- 編輯
~/.bashrc,將PATH修改為指向CUDA 11.8的路徑
export PATH=/usr/local/cuda-11/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}- 確認CUDA版本是否為11.8
source ~/.bashrc
nvcc --version

