docker配置Nvidia環境,使用GPU

牛奔發表於2024-04-25

前言

需要 nvdia driver 安裝好,請參考 Ubuntu Nvidia driver驅動安裝及解除安裝

docker 安裝

配置 apt 阿里雲的映象源

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

配置

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

安裝 dockernvidia-docker2

sudo apt-get update
apt install docker-ce docker-ce-cli
sudo apt-get install -y nvidia-docker2

如果你只用docker,這一步不用操作。

但如果你是 k8s 環境 需要配置 cgroupdriver 改使用 systemd

# Set up cgroupdriver
cat > /etc/docker/daemon.json << EOF 
{
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

設定 docker 開機自啟,重啟載入 docker 配置

systemctl enable docker
systemctl restart docker

測試docker是否佔用gpu

docker 中使用 gpu,必須在建立容器時開啟 --gpus 引數,並保證 docker 的版本在 19.03 以上。

執行一個基本的CUDA容器來測試是否配置完成

sudo docker run --rm --runtime=nvidia --gpus all  nvidia/cuda:12.0.1-runtime-ubuntu22.04 nvidia-smi

輸出如下所示,就代表你的容器以及支援GPU:

Thu Apr 25 08:53:22 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05             Driver Version: 535.154.05   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla T4                       Off | 00000000:00:05.0 Off |                    0 |
| N/A   39C    P0              25W /  70W |    105MiB / 15360MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A   3812267      C   /usr/local/bin/python                       100MiB |
+---------------------------------------------------------------------------------------+

相關文章