启动xllm
以Qwen3为例,启动xllm的脚本如下,给出的脚本适用于单机单卡和单机多卡,当使用单机多卡时,需要修改NNODES(一张卡就代表一个node),以及ASCEND_RT_VISIBLE_DEVICES或CUDA_VISIBLE_DEVICES或MLU_VISIBLE_DEVICES等环境变量。
#!/bin/bashset -e
rm -rf core.*
source /usr/local/Ascend/ascend-toolkit/set_env.shsource /usr/local/Ascend/nnal/atb/set_env.shexport ASCEND_RT_VISIBLE_DEVICES=0export HCCL_IF_BASE_PORT=43432 # HCCL 通信基础端口
MODEL_PATH="/path/to/model/Qwen3-8B" # 模型路径MASTER_NODE_ADDR="127.0.0.1:9748" # Master 节点地址(需全局一致)START_PORT=18000 # 服务起始端口START_DEVICE=0 # 起始逻辑设备号LOG_DIR="log" # 日志目录NNODES=1 # 节点数(当前脚本启动 1 个进程)
mkdir -p $LOG_DIR
for (( i=0; i<$NNODES; i++ ))do PORT=$((START_PORT + i)) DEVICE=$((START_DEVICE + i)) LOG_FILE="$LOG_DIR/node_$i.log" /path/to/xllm \ --model $MODEL_PATH \ --devices="npu:$DEVICE" \ --port $PORT \ --master_node_addr=$MASTER_NODE_ADDR \ --nnodes=$NNODES \ --max_memory_utilization=0.86 \ --block_size=128 \ --communication_backend="hccl" \ --enable_prefix_cache=false \ --enable_chunked_prefill=true \ --enable_schedule_overlap=true \ --enable_shm=true \ --node_rank=$i \ > $LOG_FILE 2>&1 &doneNVIDIA GPU
Section titled “NVIDIA GPU”#!/bin/bashset -e
rm -rf core.*
export CUDA_VISIBLE_DEVICES=0# for debug# export CUDA_LAUNCH_BLOCKING=1
MODEL_PATH="/path/to/model/Qwen3-8B"MASTER_NODE_ADDR="127.0.0.1:9748"START_PORT=18000START_DEVICE=0LOG_DIR="log"NNODES=1
mkdir -p $LOG_DIR
for (( i=0; i<$NNODES; i++ ))do PORT=$((START_PORT + i)) DEVICE=$((START_DEVICE + i)) LOG_FILE="$LOG_DIR/node_$i.log" /path/to/xllm \ --model $MODEL_PATH \ --devices="cuda:$DEVICE" \ --port $PORT \ --master_node_addr=$MASTER_NODE_ADDR \ --nnodes=$NNODES \ --block_size=32 \ --max_memory_utilization=0.8 \ --enable_prefix_cache=false \ --enable_chunked_prefill=false \ --enable_schedule_overlap=true \ --node_rank=$i \ > $LOG_FILE 2>&1 &done#!/bin/bashset -e
rm -rf core.*
export MLU_VISIBLE_DEVICES=0
MODEL_PATH="/path/to/model/Qwen3-8B"MASTER_NODE_ADDR="127.0.0.1:9748"START_PORT=18000START_DEVICE=0LOG_DIR="log"NNODES=1
mkdir -p $LOG_DIR
for (( i=0; i<$NNODES; i++ ))do PORT=$((START_PORT + i)) DEVICE=$((START_DEVICE + i)) LOG_FILE="$LOG_DIR/node_$i.log" /path/to/xllm \ --model $MODEL_PATH \ --devices="mlu:$DEVICE" \ --port $PORT \ --nnodes=$NNODES \ --master_node_addr=$MASTER_NODE_ADDR \ --block_size=16 \ --node_rank=$i \ > $LOG_FILE 2>&1 &done