AUTOBUY購物中心

串連兩台 ASUS Ascent GX10 並部屬 vLLM

  • 2026-06-05 15:27:27

    在兩台 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

    有看到 downloadauth 等指令就代表成功。

     

    下載模型:

    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.

    代表模型已載入並完成部署

    6a2273f74486.jpg

  • 2026-06-05 22:05:22

    三台也可以串