安裝 nVidia 驅動及 Cuda

本篇撰寫於 2024/09/07,到目前為止各種所需的版本如下 :

ubuntu : 24.04
Python : 系統預設為 3.12.3
cuda : 最新可支援的版本 12.6
tensorflow : 最新版為 2.17.0
PyTorch : 最新版為 4.1

安裝相關驅動程式

底下會全自動安裝相關驅動程式,但不會安裝顯卡驅動

sudo ubuntu-drivers autoinstall

安裝nVidia 顯卡驅動程式 for Ubuntu 24.04

nVidia 已開放顯卡驅動程式原始碼,open source 的效能跟官網的驅動不相上下,建議安裝 open source driver。

🔒 完整內容請註冊並登入會員。

免費註冊登入

gpu-unlock

AI 模型在顯示卡上做矩陣運算時,常見的做法是使用 FP16 或 BF16 格式輸入,然後再用精度較高的 FP32 累加結果,而 GeForce 卡在這種模式下只跑專業卡一半的速率。

gpu-unlock 是一個開源的 nVidia 顯示卡解鎖工具,主要用途是讓部分 GeForce 顯示卡提高 Tensor Core 的特定運算吞吐量,尤其是 FP16、BF16 等運算。它不是一般的顯示卡超頻工具,也不會直接增加顯示卡的 VRAM,而且不會增加電力消耗。

GPU Unlock 的做法是,在 nVidia 驅動程式接管顯示卡之前,先透過 Linux 核心模組改寫 GPU 內部的速度選擇設定,接著讓顯示卡重置一次,再交給原本的 NVIDIA 驅動正常初始化。整個過程有幾個特點:

  • 不需要超頻,也不必刷顯示卡 BIOS
  • 不修改 NVIDIA 原廠驅動程式,驅動更新後也不用重新打補丁
  • 主要改善 FP16、BF16 等矩陣運算效能,也能讓部分 TF32 工作負載受益
  • 一般 FP32 與純 INT8 矩陣運算的直接加速效果不明顯

經測試 RTX 3080 可增加 71% 的算力。

官方網址如下 :  https://github.com/Zagitta/gpu-unlock

支援型號

支援 RTX 30、40、50 系列安裝

安裝相關套件

安裝 gpu-unlock 需編譯原始碼,編譯前需先安裝如下套件。

sudo apt update
sudo apt install -y git build-essential dkms linux-headers-$(uname -r) devscripts debhelper

下載、編譯及安裝 gpu-unlock

使用如下步驟下載、編譯並進行安裝。

git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install

修改 grub

sudo vim /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 新增 gpu_unlock_targets=all

GRUB_CMDLINE_LINUX_DEFAULT="gpu_unlock.targets=all"

儲存後,執行 sudo update-grub,然後重新啟動。

測試是解鎖

執行如下指令,如果有如下結果表示解鎖成功。

modinfo -n gpu_unlock

結果
/lib/modules/6.8.0-147-generic/updates/dkms/gpu_unlock.ko.zst
sudo journalctl -k -b | grep -i gpu_unlock

結果
......
pr2=0x1ffffe00:0x0 ss0=0x88888888 ss1=0x8 plm=0xffffffff cmd=0x3 devsta=0x0 chip=0xb72000a1
Oct 28 12:42:56 xxxx kernel: pci 0000:01:00.0: gpu_unlock: stage=handoff ret=0 state=4 retained=0 pages=0/20606 cleanup=0
Oct 28 12:42:56 xxxx kernel: pci 0000:01:00.0: gpu_unlock: unlocked

效能

解鎖後,在 Python 使用 tensorflow 或 pytorch 架構的程式不會有任何效率的增長。

但 ComfyUI 執行 z-image-trubo 的 KSampler 明顯快很多。生成一張1920*1080 圖片,未解鎖需 23 秒,解鎖後直接縮短到 11  秒。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *