快轉到主要內容

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

Linux系統 Linux使用技巧 Arch Linux Nvidia
✍ 切換正體/簡體字
Ivon Huang
作者
Ivon Huang
目錄

本文解說如何在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/grubGRUB_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/grubGRUB_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推出的深度學習推理平台。

  1. 因為軟體授權限制,無法直接用yay裝,需要手動複製AUR儲存庫
sudo pacman -S base-devel
git clone https://aur.archlinux.org/tensorrt.git
  1. 然後到 Nvidia官網註冊帳號,下載tar.gz檔(注意版本需跟CUDA一致),放到tensorrt目錄

  2. 安裝python-oonx

yay -S python-onnx python-onnxruntime python-tensorflow-cuda
  1. 同步依賴套件,編譯安裝
cd tensorrt
makepkg --syncdeps
makepkg --install

5. 安裝NVIDIA Container Toolkit套件 #

設計給Docker容器用的Nvidia工具。

  1. 從AUR安裝
yay -S nvidia-container-toolkit
  1. 新增設定檔
sudo mkdir /etc/docker
sudo vim /etc/docker/daemon.json
  1. 填入以下內容
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
  1. 重新啟動Docker
sudo systemctl restart docker
  1. 拉取最新CUDA版本的映像檔,測試能否在容器執行nvidia-smi,印出Nvidia驅動的資訊。
sudo docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu20.04 nvidia-smi

參考資料 #

相關文章

Arch Linux安裝多重Python版本,使其共存
Linux系統 Linux使用技巧 Arch Linux
Arch Linux連接Airpods Pro藍牙耳機和查看電量
Linux系統 Linux使用技巧 KDE Plasma Arch Linux
Linux 螢幕縮放比例 & 個別程式縮放(scale)的方法
Linux系統 Linux使用技巧 Linux GNOME KDE Plasma

留言板

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

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。