安裝部署說明書
2 服務器環境配置(Ubuntu20.04以上 ~ 24.04)
1. Nvidia顯卡驅動安裝
#下载驱动程序
wget https://download.nvidia.com/XFree86/Linux-x86_64/550.120/NVIDIA-Linux-x86_64-550.120.run
All versions :https://download.nvidia.com/XFree86/Linux-x86_64/
chmod +x NVIDIA-Linux-x86_64-550.120.run
# 安装需要gcc编译环境,如果没有则需要安装build-essential
sudo apt-get install build-essential -y
#执行安装
sudo ./NVIDIA-Linux-x86_64-550.120.run
注:最低版本依賴
| 驅動 | 版本 | 支持架構 | 操作系統 |
|---|---|---|---|
| NVIDIA Linux Driver | 545.23.08 | x86_64, arm64-sbsa, POWER | Linux |
| NVIDIA Windows Driver | 546.12 | x86_64 (Windows) | Windows, WSL |
2. Docker以及Nvidia顯卡支持安裝
# 服务器安装docker
sudo apt update
sudo apt install docker.io
# 安装nvidia容器化支持
# 方式1
#按照最新的官方安装文档执行:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
# 方式2
# 如果中国大陆地区,在线安装方式可能由于网络问题等无法成功
# 从 镜像站 https://mirror.cs.uchicago.edu/nvidia-docker/ 下载libnvidia-container1, libnvidia-container-tools, nvidia-container-runtime, nvidia-docker2的.deb文件
# 我们提供了一个所需deb包的临时下载地址:https://cdn-bukbb1.xgrids.cloud/static/nvidia/docker-nvidia-support-ubuntu.zip
# 得到所有deb文件后执行安装:
sudo dpkg -i ./*.deb # 安装所有下载的deb包
#重启docker
sudo systemctl restart docker
# 运行测试容器检测GPU是否正常:
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base nvidia-smi
#docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
"registry-mirrors": ["https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu"]
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 特殊配置(必須!)
1)修改Docker的cgroupdriver為cgroupfs
NVIDIA顯卡在容器中使用有一個已知問題:容器在運行過程中會突然丟失顯卡 (Containers losing access to GPUs with error: "Failed to initialize NVML: Unknown Error")
目前該ISSUE的官方狀態是尚未解決。參考:
https://github.com/NVIDIA/nvidia-docker/issues/1730
https://github.com/NVIDIA/nvidia-container-toolkit/issues/48
確認服務器是否受此ISSUE影響的方式:
$ docker info
...
Cgroup Driver: systemd # 如果看到Cgroup Driver = systemd,则可能发生此问题
Cgroup Version: 1
英偉達官方提供的解決辦法:
手工修改/etc/docker/daemon.json 添加參數 "exec-opts": ["native.cgroupdriver=cgroupfs"]然後重啟Docker。
(Set the parameter "exec-opts": ["native.cgroupdriver=cgroupfs"] in the /etc/docker/daemon.json file and restart docker.)
![圖片展示了Docker配置文件`/etc/docker/daemon.json`的內容,其中關鍵部分是`exec-opts`字段,其值為`\["native.cgroupdriver=cgroupfs"\]`。該圖片與文檔中特殊配置部分的介紹相關,用於說明英偉達官方提供的解決辦法,即手工修改`/etc/docker/daemon.json`文件添加此參數,然後重啟Docker,以解決因cgroupdriver問題導致的ISSUE。](https://cdn-docs.xgrids.cloud/assets/03-daemon-cgroupfs-ghFTBv1U.webp)
2)開啟NVIDIA顯卡驅動的持久模式(常駐模式)
开启持久模式:
sudo nvidia-smi -pm 1
未開啟持久模式的影響:
- GPU 每次被訪問時都會初始化,增加延遲
- 表現: 運行
nvidia-smi、CUDA 程序或加載模型時,GPU 會經歷一次驅動初始化。nvidia-smi命令執行速度較慢。 - 影響: 啟動時間延長、命令反應慢,甚至應用層出現卡頓。
- 功耗控制頻繁切換,性能不穩定
- GPU 在空閒時會自動進入低功耗狀態(如關閉顯存、關閉時鐘),再激活時要「喚醒」GPU。
- 導致高頻使用時出現「性能抖動」。
- 在服務器或集群中降低多任務響應效率
- 在深度學習訓練、推理、圖形渲染等高頻使用 GPU 的場景中,頻繁初始化會增加系統負擔,尤其在多用戶/多進程使用場景下。
- 某些容器或守護進程可能反復觸發 GPU 初始化
- 例如 Docker 中配置不當時,容器每次啟動可能觸發一次 GPU 初始化。
開啟後:
- GPU 驅動始終保持加載狀態,無需每次訪問都重新初始化。
- 啟動時間更短,如 CUDA 程序、深度學習框架加載速度更快。
- 更穩定的運行性能,尤其是在集群或自動化任務中。
在服務器、深度學習、渲染等重度 GPU 使用場景中: 建議啟用。
只有在普通桌面使用或電源敏感環境(如手提電腦)使用場景下,可根據情況關閉,以節省功耗。
4. 其他已知問題
1) 高端顯卡+多卡服務器,容器內GPU無法正常使用問題
在安裝有多個高端NVIDIA顯卡(H100/V100/A100/A30等)服務器上,除了安裝對應的驅動,有時還要安裝與驅動版本完全一致的 nvidia-fabricmanager 服務,才能夠正常進行重建。
失敗的現象是,在容器內執行nvidia-smi和nvcc命令,均輸出正常;但是實際重建失敗;重建報錯如下,且多次重試均失敗:
- 錯誤代碼:
0x34040070 - 錯誤日誌:
Unspecified GPU Error: Update GPU drivers to the latest stable version and restart the computer.
查看服務器錯誤日誌,有可能發現有報錯提示nvidia-fabricmananger的版本不一致:

解決方式
需按照NVIDIA的官方文檔,安裝與當前驅動版本完全一致的nvidia-fabricmananger,並從操作系統層面,禁止其自動更新。建議由服務器的技術運維人員處理。