教你在Arch Linux安裝Nvidia、CUDA、cuDNN、TensorRT專有驅動程式

目錄
本文解說如何在Arch Linux安裝Nvidia專有驅動,以及相關的CUDA、cuDNN、TensorRT、NVIDIA Container Toolkit套件。
儘管Nvidia官方有詳細的驅動安裝文件,但壓根沒提到Arch Linux系的發行版。所幸Arch Linux還是可以安裝Nvidia推出的各式技術與產品的,多虧了全球社群的協助。
一般用戶玩遊戲只要裝完Nvidia專有驅動即可。要跑3D渲染、神經網路(Neural Network)、深度學習(Deep Learning)等AI相關程式的用戶才需要裝後面的CUDA、cuDNN、TensorRT套件。
另請參閱 此篇安裝Anaconda,可輕鬆解決Python版本問題。
1. 安裝Nvidia專有驅動 #
Arch Linux安裝Nvidia驅動只需要一行指令,安裝後nouveau應會自動被黑名單。接著重開機。
sudo pacman -S nvidia nvidia-utils
如果你常常換核心開機(例如linux-zen
),那裝DKMS版的Nvidia驅動會更為妥當:
sudo pacman -S nvidia-dkms nvidia-utils linux-zen-headers
建議安裝純文字工具"nvtop"用於查看顯示卡使用率
sudo pacman -S nvtop
安裝後使用nvidia-smi
指令檢查安裝狀況。Nvidia驅動應是開箱即用,無需手動調整X伺服器設定。
KDE Wayland的用戶可能得在/etc/default/grub
的GRUB_CMDLINE_LINUX_DEFAULT
加入nvidia_drm.modeset=1
才能正常進入Wayland工作階段。並更新GRUB設定:
sudo grub-mkconfig -o /boot/grub/grub.cfg
有Nvidia顯示卡的筆電安裝顯示卡驅動的方式跟桌上型電腦一樣。不過,Intel+Nvidia的雙GPU筆電,即使裝了Nvidia驅動也可能繼續用Intel的GPU渲染3D,導致3D性能低下。
這篇文章有討論過 PRIME的用法,或者用 Optimius Manager完全切換GPU渲染工作。
另外,如果使用Nvidia專有驅動導致tty黑螢幕的話,於/etc/default/grub
的GRUB_CMDLINE_LINUX_DEFAULT
引數加入nomodeset
。
2. 安裝CUDA #
CUDA (Compute Unified Device Architecture),在做深度學習、Blender渲染時常用到的技術。
本文撰寫時點CUDA最新版本為12.8。
安裝CUDA,重開機:
sudo pacman -S cuda
用nvcc --version
指令確認CUDA版本。
Arch Linux會將CUDA相關檔案安裝至/opt/cuda
,有需要的話可以將CUDA的PATH加到~/bashrc
,此路徑永遠指向最新版CUDA。
export PATH=/opt/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/opt/cuda/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
欲安裝舊版本CUDA,去 AUR找社群打包的就可以了。
例如現在最新版是CUDA 12.1,而你需要CUDA 11.1,就從AUR裝。舊版CUDA會安裝到/opt/cuda-版本號
。
yay -S cuda-11.1
CUDA可以多版本共存,改一下~/.bashrc
裡面的路徑,指向舊版就行了。
export PATH=/opt/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/opt/cuda-11.1/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3. 安裝cuDNN #
CUDA Deep Neural Network (cuDNN),用於加速神經網路的函式庫。
安裝cuDNN:
sudo pacman -S cudnn
同CUDA, AUR上也有舊版本cuDNN可以安裝。
4. 安裝TensorRT #
TensorRT是Nvidia推出的深度學習推理平台。
- 因為軟體授權限制,無法直接用yay裝,需要手動複製AUR儲存庫
sudo pacman -S base-devel
git clone https://aur.archlinux.org/tensorrt.git
然後到 Nvidia官網註冊帳號,下載
tar.gz
檔(注意版本需跟CUDA一致),放到tensorrt
目錄安裝python-oonx
yay -S python-onnx python-onnxruntime python-tensorflow-cuda
- 同步依賴套件,編譯安裝
cd tensorrt
makepkg --syncdeps
makepkg --install
5. 安裝NVIDIA Container Toolkit套件 #
設計給Docker容器用的Nvidia工具。
- 從AUR安裝
yay -S nvidia-container-toolkit
- 新增設定檔
sudo mkdir /etc/docker
sudo vim /etc/docker/daemon.json
- 填入以下內容
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
- 重新啟動Docker
sudo systemctl restart docker
- 拉取最新CUDA版本的映像檔,測試能否在容器執行
nvidia-smi
,印出Nvidia驅動的資訊。
sudo docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu20.04 nvidia-smi