最近遇到需要升級DGX2的情況

 

DGX2 是什麼?

就是一台linux 主機

有16張V100的顯示卡

有著超強風扇效能

以及超重重量181公斤(說明書上說的,實際感覺更重...)

 

 

 

以下步驟都為參考

實際情況要依照當下主機情況作出調整

 


 

1. 找到正確的文件

例如:

https://docs.nvidia.com/dgx/dgx-os-6-user-guide/installing_on_ubuntu.html

 

原本我找到的是 dgx-os-5版本,只有些微差異,也許還是能用

但重點是有沒有辦法一步一步照著文件來

 

2. 確保 apt 軟體資源正確

查看 /etc/apt/sources.list.d/ 裡面的資源

把有 cuda ,bionic ,dgx 這些文字的檔案都移動到暫存資料夾

 

將 /etc/apt/sources.list 裡面改成

deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

 

3. 確保 Ubuntu 是 22.04 與 Linux 核心 Kernel 是 5.15 LTS (應該說是 5.15.0-1070-nvidia)

重點是Linux核心版本

如果核心版本不對

可以等到安裝到 Install NVIDIA CUDA driver.的 linux-modules-nvidia-525-server-nvidia

因為安裝完 linux-modules-nvidia-525-server-nvidia 後會自動安裝 5.15.0-1070-nvidia 的核心

安裝後要確保開機預設是這個核心

可以用

cat /boot/grub/grub.cfg | grep "menuentry"

查看選項

如果有更高級的核心版本排在前面

則需要用 apt 移除,也可以到機房手動切換grub選單到指定核心,然後再移除其他核心也可以

只要移除比 5.15.0-1070-nvidia 更高的版本即可

 

4. 移除目前不必要所有其他資源

sudo apt-get purge nvidia-*

sudo apt-get purge libnvidia-*

 

5. 開始按照文件一步一步進行升級

有選項基本上就是Y

驅動可以安裝到最新

 

6. 完成到最後記得不只是確認 nvidia-smi 可不可以顯示卡出來

還需要開 docker 進去看看 torch 是否可以抓到GPU

例如:執行 python >>>

import torch

torch.cuda.is_available() 必須顯示 True

 

這樣就完成了

 

 

 

最後一定要進入 docker 後確認能抓得到

python也要能夠抓得到

 

 

 

 

 


 

關於linux核心的題外話!

注意!

安裝 linux-modules-nvidia-XXX 時候

 

這邊如果沒有對應核心,也會自動安裝新核心

如果安裝了新核心,開機預設會用最高版本去開機,這點要非常注意

因為核心變了,很多東西會出問題

 

如果核心不小心提高了版本

可以用指令找出要移除的核心

dpkg --list | grep linux-image

dpkg --list | grep linux-headers

 

然後再一個一個移除

sudo apt-get purge linux-image-XXXXXX

 

然後再確認GRUB 啟動選單的選項是不是還有非必要版本的

cat /boot/grub/grub.cfg | grep "menuentry"

 

 

如果開機預設有更高版本

就需要注意了

 

這邊是因為通常執行作業

人都不在機房

如果DGX2開機選錯了核心

人就必須要去機房才能重開了