在兩台 ASUS Ascent GX10建立專案資料夾:
cd ~
mkdir -p ~/ spark-vllm-docker
mkdir -p /data/models在兩台 ASUS Ascent GX10取得 clone 專案:
cd ~
git clone https://github.com/eugr/spark-vllm-docker.git
cd ~/spark-vllm-docker在 GX10-1 建立 .env:
vim .env內容:
CLUSTER_NODES=172.22.0.1,172.22.0.2 # 兩台GX10 對接 IP
COPY_HOSTS=172.22.0.2 # 另一台GX10 的 IP
LOCAL_IP=172.22.0.1 # 自己的 IP
ETH_IF=enp1s0f0np0 # 對應的網卡名稱
IB_IF=rocep1s0f0
CONTAINER_HF_HOME=/models/.cache在 GX10-2 建立 .env:
vim .env內容:
CLUSTER_NODES=172.22.0.1,172.22.0.2 # 兩台GX10 對接 IP
COPY_HOSTS=172.22.0.1 # 另一台GX10 的 IP
LOCAL_IP=172.22.0.2 # 自己的 IP
ETH_IF=enp1s0f0np0 # 對應的網卡名稱
IB_IF=rocep1s0f0
CONTAINER_HF_HOME=/models/.cache在 GX10-1 建立 docker image 並鏡像複製到 GX10-2:
./build-and-copy.sh \
--tf5 \
--copy-to 172.22.0.2 \
--user user確認兩台都有 docker image:
docker images | grep vllm在兩台 ASUS Ascent GX10下載模型:
pip install -U "huggingface_hub[cli]" # 安裝 Hugging Face CLI安裝後確認:
hf --help有看到 download、auth 等指令就代表成功。
下載模型:
cd /data/models
hf download QuantTrio/Qwen3-VL-235B-A22B-Instruct-AWQ \
--local-dir /data/models/Qwen3-VL-235B-A22B-Instruct-AWQ在兩台 ASUS Ascent GX10建立 docker 並啟動:
cd ~/spark-vllm-docker
docker run -d \
--name vllm_node \
--gpus all \
--network host \
--ipc host \
--privileged \
--shm-size=32g \
-v /data/models:/models \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm-node-tf5 \
tail -f /dev/null確認 container:
docker ps成功會看到 vllm_node,狀態是 Up
在 GX10-1 設定 docker 環境變數:
docker exec -it vllm_node bash # 進入 vllm_node進入之後編輯 .bashrc 檔案
vim ~/.bashrc內容:
# ===== vLLM Multi Node =====
export GLOO_SOCKET_IFNAME=enp1s0f0np0
export NCCL_SOCKET_IFNAME=enp1s0f0np0
export MASTER_ADDR=172.22.0.2
export VLLM_HOST_IP=172.22.0.1
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=0
export NCCL_P2P_DISABLE=1
export GLOO_DEVICE_TRANSPORT=TCP
export TP_SOCKET_IFNAME=enp1s0f0np0在 GX10-2 設定 docker 環境變數:
docker exec -it vllm_node bash # 進入 vllm_node進入之後,同樣地編輯 .bashrc 檔案
vim ~/.bashrc內容:
# ===== vLLM Multi Node =====
export GLOO_SOCKET_IFNAME=enp1s0f0np0
export NCCL_SOCKET_IFNAME=enp1s0f0np0
export MASTER_ADDR=172.22.0.2
export VLLM_HOST_IP=172.22.0.2
export NCCL_DEBUG=INFO
export NCCL_IB_DISABLE=0
export NCCL_P2P_DISABLE=1
export GLOO_DEVICE_TRANSPORT=TCP
export TP_SOCKET_IFNAME=enp1s0f0np0在兩台 ASUS Ascent GX10 的 vllm_node 讓環境變數生效:
source ~/.bashrc在 GX10-1 的 vllm_node 啟動主節點:
ray start \
--head \
--node-ip-address=172.22.0.1 \
--port=6379在 GX10-2 的 vllm_node 啟動工作節點:
ray start \
--address='172.22.0.1:6379' \
--node-ip-address=172.22.0.2確認兩台 ASUS Ascent GX10 有連上:
ray status成功會看到 2 node
在 GX10-1 的 vllm_node 中啟動 vLLM:
vllm serve /models/Qwen3-VL-235B-A22B-Instruct-AWQ \
--host 0.0.0.0 \
--port 6000 \
--tensor-parallel-size 2 \
--distributed-executor-backend ray \
--enable-expert-parallel \
--gpu-memory-utilization 0.75 \
--max-model-len 128000 \
--max-num-seqs 1 \
--trust-remote-code模型越大載入需等待時間越長
完成後會看到
INFO: Started server process [1123]
INFO: Waiting for application startup.
INFO: Application startup complete.代表模型已載入並完成部署
