vLLM Distributed Inference on Jetson Orin AGX
测试镜像
- mitakad/vllm:0.11.2-r36.4.tegra-aarch64-cp310-cu126-22.04-truncated
- mitakad/vllm:0.12.0-r36.4.tegra-aarch64-cp310-cu126-22.04-truncated
- mitakad/vllm:0.13.0-r36.4.tegra-aarch64-cp312-cu129-24.04-pre-release
步骤
注意点: 模型需要自己下载,下载到当前的目录下。在主节点上执行
pip install modelscope
~/.local/bin/modelscope download --model openai-mirror/gpt-oss-120b --local_dir ./openai-mirror/gpt-oss-120b将主节点上的 10G 网口和另外一台的算力舱 10G 通过网线连接起来。
- 主节点
sudo ip addr add 192.168.38.1/24 dev eno1
VLLM_HOST_IP=192.168.38.1 && \
VLLM_IFNAME=eno1 && \
docker run -d --rm --runtime nvidia -it \
--network host \
--shm-size=8g \
--privileged \
--ipc=host \
-v /dev/shm:/dev/shm \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e VLLM_HOST_IP=${VLLM_HOST_IP} \
-e UCX_NET_DEVICES=${VLLM_IFNAME} \
-e NCCL_SOCKET_IFNAME=${VLLM_IFNAME} \
-e GLOO_SOCKET_IFNAME=${VLLM_IFNAME} \
-e TP_SOCKET_IFNAME=${VLLM_IFNAME} \
-v `pwd`/:/models \
-v `pwd`/cache:/root/.cache/huggingface \
--name vllm_xray \
mitakad/vllm:0.11.2-r36.4.tegra-aarch64-cp310-cu126-22.04-truncated
docker exec -ti vllm_xray bash
ray start -v --head --port 6379 --node-ip-address 192.168.38.1 --num-gpus 1
sysctl vm.drop_caches=3- 其他节点
sudo ip addr add 192.168.38.2/24 dev eno1
VLLM_HOST_IP=192.168.38.2 && \
VLLM_IFNAME=eno1 && \
docker run -d --rm --runtime nvidia -it \
--network host \
--shm-size=8g \
--privileged \
--ipc=host \
-v /dev/shm:/dev/shm \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e VLLM_HOST_IP=${VLLM_HOST_IP} \
-e UCX_NET_DEVICES=${VLLM_IFNAME} \
-e NCCL_SOCKET_IFNAME=${VLLM_IFNAME} \
-e GLOO_SOCKET_IFNAME=${VLLM_IFNAME} \
-e TP_SOCKET_IFNAME=${VLLM_IFNAME} \
-v `pwd`/:/models \
-v `pwd`/cache:/root/.cache/huggingface \
--name vllm_xray \
mitakad/vllm:0.11.2-r36.4.tegra-aarch64-cp310-cu126-22.04-truncated
docker exec -ti vllm_xray bash
ray start -v --address 192.168.38.1:6379 --node-ip-address 192.168.38.2 --num-gpus 1
sysctl vm.drop_caches=3- 拷贝模型到另外的worker节点上,同样的目录,我放置的目录是
~
rsync -aP ~/openai-mirror nvidia@192.168.38.2:~- 在主节点的机器上执行下面的命令
docker exec -ti vllm_xray bash
# http://192.168.1.128:1085 是我本地的代理,您可以去掉或者更改成您的
curl -x http://192.168.1.128:1085 -L https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken -o fb374d419588a4632f3f557e76b4b70aebbca790
# 测试是否正常
TIKTOKEN_RS_CACHE_DIR=$(pwd) python -c 'from openai_harmony import load_harmony_encoding; load_harmony_encoding("HarmonyGptOss")'
# 启动模型
sysctl vm.drop_caches=3
TIKTOKEN_RS_CACHE_DIR=$(pwd) TRANSFORMERS_OFFLINE=1 vllm serve /models/openai-mirror/gpt-oss-120b --port 8000 \
--served-model-name gpt-oss-120b \
--max-model-len 2048 \
--max-num-batched-tokens 2048 \
--kv-cache-memory-bytes 3000M \
--max-num-seqs 10 \
--tensor-parallel-size 2 \
--enable-expert-parallel \
--gpu-memory-utilization 0.8 \
--distributed-executor-backend ray- 访问
通过终端上的 curl 进行访问。192.168.1.175 是我局域网中的地址,您需要更改成您机器的ip。
curl 'http://192.168.1.175:8000/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-oss-120b",
"messages": [
{
"role": "user",
"content": "who are you?"
}
],
"stream": false
}'测试数据
| 模型 | Tokens/s |
|---|---|
| Qwen3-4B-Instruct-2507-FP8 | 10.5 |
| openai/gpt-oss-120b | 10.1 |
问题
- 如果您遇到加载本地的模型,vllm 报 repo_id 不对之类的错误,最简单的方法就是手动把那个 huggingface_hub 的校验脚本中的校验函数更改。