我們今天來看一下如何通過NVIDIA Docker組件來實現Docker容器對GPU使用。由於vGPU和物理GPU一樣提供了對容器的支持,所以此次的實驗環境是基於Ubuntu 20.04.3 LTS 虛擬機+ M60-8Q vGPU。
首先在帶有vGPU的虛擬機中安裝Ubuntu作業系統,我們這裡選擇的是安裝Server版本的Ubuntu(默認不會安裝圖形界面)。
下載地址:http://www.releases.ubuntu.com/20.04/
Ubuntu安裝完成以後,我們來對環境做一個基本的檢查。
1. 確認當前OS的版本以及內核版本信息
2. 檢查當前的vGPU設備是否被正常識別
從上圖我們可以看出,當前系統加載了nvidiafb和nouveau的驅動模塊。但是這兩個模塊並沒有被vGPU使用,也許是沒有安裝圖形界面的原因。所以這裡也不需要額外禁用nouveau模塊,直接安裝驅動即可。
3.基本信息確認正常以後,我們需要確保gcc和make已經安裝在系統中,因為安裝NVIDIA的vGPU驅動需要。如果沒有安裝則使用apt install gcc make 安裝即可。
4.驅動安裝完畢以後,執行nvidia-smi來確認驅動是否正常安裝
使用命令#./NVIDIA-Linux-x86_64-470.82.01-grid.run 進行驅動安裝
nvidia-smi信息輸出正常,則說明驅動已經正常安裝。
此外我們還可以再次用lspci命令確認當前vGPU使用的是否是剛才安裝的驅動。我們看到下圖中kernel driver in use: nvidia 字樣,說明剛才安裝的驅動已經加載並被使用中。
註:由於是vGPU的環境,所以還需要為vGPU配置License,以使得其驅動功能正常。具體配置vGPU License的步驟就不在此闡述,可以參考公眾號內的專門介紹License配置的文章。
在基礎環境配置完畢以後,接下來我們需要安裝docker,其實在安裝Ubuntu 20.04.3 Server版本的時候是可以選擇隨系統安裝docker的,我們這裡選擇單獨安裝docker。
5.安裝docker的方法很簡單,建議參考官方文檔的步驟即可。
https://docs.docker.com/engine/install/ubuntu/
步驟如截圖:
成功安裝後可以運行一個最簡單的hello world容器來確認docker是否正常工作。看到下圖的界面則說明docker已經成功安裝。
6.最後我們來安裝NVIDIA Docker組件,和安裝docker類似我們只需要複製官網的相關命令即可完成安裝,步驟截圖如下:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
成功安裝nvidia-docker組件以後,我們同樣來運行一個容器來確認是否可以調用vGPU。
1. 首先我們通過命令建立一個名為test的容器
# docker run -it --gpus all --name testnvidia/cuda:11.4.2-base-ubuntu20.04
其中—gpus all 代表此容器使用當前環境的所有GPU資源
2. 成功建立容器以後,會直接進入到此容器中,我們在容器內執行nvidia-smi可以成功輸出GPU信息,則表明容器內已經可以正常使用到GPU資源了。