2台H800

更新时间:2025年3月9日 23:52 浏览:392

使用 vllm 推理框架时,底层使用 ray 组网,支持 IB 网卡

头节点

ray-head.sh 挂载到容器 /root/shell/ray-head.sh

#!/bin/bash
ray disable-usage-stats

echo "ray is starting..."
ray start --head --port 6379 --node-ip-address ${RAY_HEAD_HOST}
#--block

echo "sleep 30 secs..."
sleep 30

echo "ray status"
ray status

echo "openai api server is starting..."
python3 -m vllm.entrypoints.openai.api_server $@

工作节点

ray-worker.sh 挂载到容器 /root/shell/ray-worker.sh

#!/bin/bash

ray disable-usage-stats

echo "ray worker is starting..."
ray start --block --address=${RAY_HEAD_HOST}:6379 --node-ip-address ${RAY_WORKER_HOST}

头节点 docker run 脚本

docker run \
  --restart=always \
  --name deepseek \
  --network host \
  --shm-size 512g \
  --gpus=all \
  --privileged \
  --entrypoint /bin/bash \
  -v /path/to/shell:/root/shell \
  -v /path/to/model-cache:/model-cache \
  -e HF_ENDPOINT=https://hf-mirror.com \
  -e VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \
  -e VLLM_HOST_IP=本机IP \
  -e NCCL_SOCKET_IFNAME=bond0 \
  -e GLOO_SOCKET_IFNAME=bond0 \
  -e NCCL_IB_HCA=mlx5 \
  -e NCCL_DEBUG=TRACE \
  -e RAY_HEAD_HOST=本机IP \
  -itd \
  llm/vllm-openai:v0.7.2 \
    /root/shell/ray-head.sh \
      --model /model-cache/deepseek-ai/DeepSeek-R1 \
      --served-model-name deepseek-ai/DeepSeek-R1 \
      --api-key xxxx \
      --host 0.0.0.0 \
      --port 80 \
      --trust-remote-code \
      --device cuda \
      --tensor-parallel-size 16 \
      --gpu-memory-utilization 0.95 \
      --max-model-len 128000 \
      --max-num-batched-tokens 32000 \
      --enforce-eager

有多个 TCP 网卡或组 IB 网卡分配了 IP 时,组网失败,需要指定网卡

  • 模型路径: /model-cache/deepseek-ai/DeepSeek-R1
  • NCCL_SOCKET_IFNAME 指定 TCP 通讯网卡
  • NCCL_IB_HCA 指定 IB 网卡
  • 其它参数参考官方手册,本文结层有链接

工作节点 docker run 脚本


docker run \
  --restart=always \
  --name deepseek \
  --network host \
  --shm-size 512g \
  --gpus=all \
  --privileged \
  --entrypoint /bin/bash \
  -v /path/to/shell:/root/shell \
  -v /data/docker/deepseek/model-cache:/model-cache \
  -e HF_ENDPOINT=https://hf-mirror.com \
  -e VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \
  -e VLLM_HOST_IP=本机IP \
  -e NCCL_SOCKET_IFNAME=bond0 \
  -e GLOO_SOCKET_IFNAME=bond0 \
  -e NCCL_IB_HCA=mlx5 \
  -e NCCL_DEBUG=TRACE \
  -e RAY_HEAD_HOST=头节点IP \
  -e RAY_WORKER_HOST=本机IP \
  -itd \
  llm/vllm-openai:v0.7.2 \
    /root/shell/ray-worker.sh

稳定运行时, CPU 跑满 10核,内存 70G 以上
两台 H800,成本约 500 万, 推理速度, 25 tokens/s 左右

vllm openai server 参数:
https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html#command-line-arguments-for-the-server

nccl 环境变量参数:
https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/env.html

导航