配置NVIDIA Container Runtime和容器執行GPUStack教程

GPUStack發表於2024-11-19

GPUStack 是一個設計用於執行大模型的開源 GPU 叢集管理器,提供私有部署的大模型服務,支援大語言模型、Embedding 文字嵌入模型、Reranker 重排序模型、Vision 多模態模型等各種模型。它可以聚合不同平臺(如 Apple Mac、Windows PC 和 Linux 伺服器)的 GPU,構建一個統一的異構 GPU 叢集。

在 Linux 中十分推薦使用 Docker 方式安裝 GPUStack,可以避免很多依賴和衝突問題,簡化安裝過程。

今天帶來一篇關於如何設定 NVIDIA 容器執行時並使用容器方式執行 GPUStack 的操作教程。

前置準備

驗證當前環境有 NVIDIA GPU 硬體:

lspci | grep -i nvidia

驗證系統已安裝 GCC:

gcc --version

安裝 NVIDIA 驅動

參考:https://developer.nvidia.com/datacenter-driver-downloads

為當前核心安裝核心標頭檔案和開發包:

sudo apt-get install linux-headers-$(uname -r)

安裝 cuda-keyring 包:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

安裝 NVIDIA 驅動:

sudo apt-get update
sudo apt-get install nvidia-open -y

重啟系統:

sudo reboot

重新登入並檢查 nvidia-smi 命令可用:

nvidia-smi

image-20241118175603256

安裝 Docker Engine

參考:https://docs.docker.com/engine/install/ubuntu/

執行以下命令解除安裝所有衝突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

設定 Docker 的 apt 倉庫:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安裝 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

檢查 docker 命令可用:

docker info

安裝 NVIDIA Container Toolkit

參考:https://docs.nvidia.com/datacenter/cloud-native/container-too...

配置 NVIDIA Container Toolkit 的生產倉庫:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

安裝 NVIDIA Container Toolkit:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit -y

使用 nvidia-ctk 命令配置容器執行時:

sudo nvidia-ctk runtime configure --runtime=docker

檢查 daemon.json 檔案的配置:

cat /etc/docker/daemon.json

重啟 Docker daemon:

sudo systemctl restart docker

執行一個示例的 CUDA 容器來驗證安裝:

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

image-20241118182113520

安裝 GPUStack

參考:https://docs.gpustack.ai/latest/installation/docker-installat...

透過 Docker 安裝 GPUStack:

docker run -d --gpus all -p 80:80 --ipc=host --name gpustack \
    -v gpustack-data:/var/lib/gpustack gpustack/gpustack

使用以下命令檢視登入密碼:

docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password

在瀏覽器訪問 GPUStack( http://YOUR_HOST_IP )以使用者名稱 admin 和密碼登入。設定密碼後,登入進 GPUStack,檢視識別到的 GPU 資源:

image-20241118184913586

(可選)要新增額外的 Worker 節點,構建 GPU 叢集,在其它工作節點上執行以下命令:

docker run -d --gpus all --ipc=host --network=host \
    gpustack/gpustack --server-url http://YOUR_HOST_IP --token YOUR_TOKEN

將其中的 http://YOUR_HOST_IP 替換為你的 GPUStack 訪問地址,將 YOUR_TOKEN 替換為用於新增 Worker 的認證 Token。要從 GPUStack Server 檢索 Token,使用以下命令:

docker exec -it gpustack cat /var/lib/gpustack/token

完成之後,嘗試從 Hugging Face 或其它模型倉庫部署模型:

image-20241118215525917

在 Playground 中調測模型:

image-20241118215644218

加入社群

以上為配置 NVIDIA 容器執行時環境並使用容器方式執行 GPUStack 的操作教程。

對 GPUStack 感興趣或者在使用過程中遇到問題,可以新增 GPUStack 微信小助手(微訊號:GPUStack)入群交流。

如果覺得寫得不錯,歡迎點贊轉發關注

相關文章