最後幾天,我們來設定 AI GPU Training 的環境,既然通篇都在講虛擬化。
為求方便,並且能夠兼容不一樣的環境,我這裡選擇使用 Docker。
如果想在 PVE 內使用 Docker,最好的方式是開一個 VM 並在裡面安裝 docker daemon。
這邊以 Tensorflow 為例子,綜上所述,PVE 內的環境如下:PVE -> VM -> Docker -> Tensorflow container
首先,根據 Day 18 ~ Day 20 我建立了 Ubuntu VM。
並在 PVE 設定頁面 pass though 一張 GTX 1080 ti 進去。
在 Ubuntu 內我們可以使用驅動三連安裝顯卡驅動。
sudo apt install ubuntu-drivers-common
sudo ubuntu-drivers
sudo ubuntu-drivers autoinstall
完事後,記得用 nvidia-smi
檢查一下。
好在現在 Docker 內都已經包含了 CUDA 和大量 nvidia 的配件,所以我們並不需要在主機上安裝 CUDA、CuDNN,省去了繁複的版本是配問題。
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
然後安裝並啟動 docker daemon
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
最後測試 Docker 內是否能夠正確使用到顯卡
sudo docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
接著我們打開 Tensorflow 官方文件,裡面詳細的指引我們該如何下參數。
以我為例子可以使用以下 Docker 指令,啟動一個 Tensorflow-GPU 容器,並完成基本的測試。
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
明天我們繼續來看看在 VM 及 container 內的效能。