[A3] Kimi K3四机混部 - shun8686/sglang GitHub Wiki

服务启动参数 - A3

如下配置在蓝区4机(209 212 216 217)可以拉起来,B072

#!/bin/bash

set -o pipefail
cd -- "$(dirname -- "${BASH_SOURCE[0]}")" || exit 1
mkdir -p logs || exit 1
export PYTHONUNBUFFERED=1
export SGLANG_DEBUG_NPU_BATCH_TIMING="${SGLANG_DEBUG_NPU_BATCH_TIMING:-1}"
export SGLANG_LOG_FORWARD_ITERS="${SGLANG_LOG_FORWARD_ITERS:-1}"
export SGLANG_LOG_MS="${SGLANG_LOG_MS:-1}"

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
sysctl -w vm.swappiness=10
sysctl -w kernel.numa_balancing=0
sysctl -w kernel.sched_migration_cost_ns=50000

MODEL_PATH=/home/weights/Kimi-K3-w4a8-int-moe
DRAFT_MODEL_PATH=/home/weights/Kimi-K3-DSpark
CUDA_GRAPH_BS="${CUDA_GRAPH_BS:-2 4 8 12 16}"

unset https_proxy
unset http_proxy
unset HTTPS_PROXY
unset HTTP_PROXY

# Discard inherited code overrides before CANN restores its Python dependencies.
unset PYTHONPATH
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

# profiling
# export SGLANG_NPU_PROFILING=1
export SGLANG_NPU_PROFILING_BS=4
export SGLANG_NPU_PROFILING_PATH="/home/hanwlax/workspace/progress/kimi_k3/profiling"

# A/B
export SGLANG_NPU_USE_FUSED_KDA_EXTEND=1  # 1 means new ops, 0 means old correct ops (for ascendC correctness, local changes), accurracy regressionon A3 (ascencC kda prefill)

# MXFP8 quant (for A5)
export SGLANG_NPU_MOE_SITU_MXFP8_FUSED=0

# fias v2
export SGLANG_NPU_USE_FIAS_V2_BSND=0  # v2 has accpect len regression, need to be fixed

# Experts fine-grained dual stream
export SGLANG_NPU_FINE_GRAINED_MOE_DUAL_STREAM=0

# PYTHONPATH
CODEPATH="/home/hanwlax/test-codes/k3"
SGLANG_PATH="${CODEPATH}/sglang-nz/python"
KERNEL_PATH="${CODEPATH}/sgl-kernel-npu/python/sgl_kernel_npu"
#export PYTHONPATH="${SGLANG_PATH}${KERNEL_PATH:+:${KERNEL_PATH}}${PYTHONPATH:+:${PYTHONPATH}}"

export TRITON_CACHE_DIR="/root/.cache/sglang/triton"

D_IP=('192.168.25.209' '192.168.25.212' '192.168.25.216' '192.168.25.217')
LOCAL_HOST1=`hostname -I|awk -F " " '{print$1}'`
LOCAL_HOST2=`hostname -I|awk -F " " '{print$2}'`
echo "${LOCAL_HOST1}"
echo "${LOCAL_HOST2}"

for i in "${!D_IP[@]}";
do
    if [ "$LOCAL_HOST1" == "${D_IP[$i]}" ](/shun8686/sglang/wiki/|-"$LOCAL_HOST2"-==-"${D_IP[$i]}"-);
    then
        echo "Mixed -> ${D_IP[$i]}"

        export SGLANG_SET_CPU_AFFINITY=1
        export SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS=1
        export SGLANG_NPU_USE_TRITON_PREFIX_KV_CACHE_STORE=1
        export SGLANG_K3_SHARED_EXPERTS_ATTN_TP=1
        export SGLANG_K3_DENSE_MLP_ATTN_TP=1
        export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1
        export SGLANG_ENABLE_SPEC_V2=1
        export SGLANG_RAGGED_VERIFY_MODE=static
        export SGLANG_DSPARK_FOLDED_PROPOSAL=0
        export SGLANG_DSPARK_FOLDED_SAMPLING=0
        export SGLANG_DSPARK_STACKED_CTX_KV=0
        export SGLANG_DSPARK_EMBED_IN_GRAPH=0
        export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
        export HCCL_SOCKET_IFNAME=enp196s0f0
        export GLOO_SOCKET_IFNAME=enp196s0f0
        export STREAMS_PER_DEVICE=32
        export DEEP_NORMAL_MODE_USE_INT8_QUANT=1
        export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=128
        export HCCL_BUFFSIZE=2000
        export DEEPEP_NORMAL_LONG_SEQ_ROUND=64
        export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=512
        export HCCL_OP_EXPANSION_MODE=AIV
        export HCCL_BUFFSIZE=200
        export DEEPEP_HCCL_BUFFSIZE=1800

        unset ASCEND_CUSTOM_OPP_PATH
        unset SGLANG_NPU_FUSED_MOE_MODE
        unset ENABLE_PROFILING
        unset SGLANG_K3_TRACE_STATE_FILE
        unset SGLANG_K3_TRACE_HIDDEN_FILE
        unset ASCEND_RT_VISIBLE_DEVICES
        unset ASCEND_LAUNCH_BLOCKING

        sglang serve \
            --model-loader-extra-config '{"enable_multithread_load": true}' \
            --dist-init-addr 192.168.25.209:5000 --nnodes 4 --node-rank $i \
            --model-path $MODEL_PATH \
            --tokenizer-path $MODEL_PATH \
            --trust-remote-code \
            --attention-backend ascend \
            --device npu \
            --quantization modelslim \
            --mamba-ssm-dtype bfloat16 \
            --dtype bfloat16 \
            --tp-size 64 \
            --enable-dp-attention --dp-size 4 --enable-dp-lm-head \
            --mem-fraction-static 0.75 \
            --max-total-tokens 250000 \
            --max-mamba-cache-size 240 \
            --chunked-prefill-size 20480 \
            --cuda-graph-bs-decode $CUDA_GRAPH_BS \
            --reasoning-parser kimi_k3 \
            --max-running-requests 64 \
            --host 0.0.0.0 \
            --port 30000 \
            --moe-a2a-backend deepep \
            --enable-shared-experts-attn-tp \
            --enable-dense-mlp-attn-tp \
            --deepep-mode auto \
            --speculative-draft-model-quantization unquant \
            --speculative-algorithm DSPARK \
            --speculative-draft-model-path "$DRAFT_MODEL_PATH" \
            --speculative-dspark-block-size 7 \
            --speculative-draft-attention-backend ascend \
            --speculative-eagle-topk 1 \
            --enable-hierarchical-cache \
            --hicache-io-backend kernel_ascend \
            --enable-cache-report \
            --hicache-ratio 2 \
            --hicache-write-policy write_through \
            --hicache-storage-backend npu_memcache \
            --hicache-storage-backend-extra-config '{"meta_service_url":"tcp://192.168.25.209:5007", "config_store_url":"tcp://192.168.25.209:6007", "log_level":"info", "world_size":256, "protocol": "device_sdma", "dram_size": "1GB"}' \
            --watchdog-timeout 9000  2>&1 | tee "logs/run_32p_mix_$(date +%Y-%m-%d_%H-%M-%S).log"

        exit "${PIPESTATUS[0]}"
    fi
done

exit 1

服务启动参数 - A3 - 极光

#!/bin/bash

pkill -9 python  2>/dev/null || true
pkill -9 sglang 2>/dev/null || true
pkill -9 VLLM   2>/dev/null || true

export SGLANG_NPU_HICACHE_MAMBA_IO=async

export PYTHONUNBUFFERED=1
export SGLANG_DEBUG_NPU_BATCH_TIMING=1
export SGLANG_LOG_FORWARD_ITERS=1
export SGLANG_LOG_MS=1

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
sysctl -w vm.swappiness=10
sysctl -w kernel.numa_balancing=0
# sysctl -w kernel.sched_migration_cost_ns=50000

unset https_proxy
unset http_proxy
unset HTTPS_PROXY
unset HTTP_PROXY

# Discard inherited code overrides before CANN restores its Python dependencies.
unset PYTHONPATH
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

# A/B
export SGLANG_NPU_USE_FUSED_KDA_EXTEND=0  # 1 means new ops, 0 means old correct ops (for ascendC correctness, local changes), accurracy regressionon A3 (ascencC kda prefill)

# MXFP8 quant (for A5)
export SGLANG_NPU_MOE_SITU_MXFP8_FUSED=0

# fias v2
export SGLANG_NPU_USE_FIAS_V2_BSND=0  # v2 has accpect len regression, need to be fixed

# Experts fine-grained dual stream
export SGLANG_NPU_FINE_GRAINED_MOE_DUAL_STREAM=0

export TRITON_CACHE_DIR="/root/.cache/sglang/triton"

export SGLANG_SET_CPU_AFFINITY=1
export SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS=1
export SGLANG_NPU_USE_TRITON_PREFIX_KV_CACHE_STORE=1
export SGLANG_K3_SHARED_EXPERTS_ATTN_TP=1
export SGLANG_K3_DENSE_MLP_ATTN_TP=1
export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=1
export SGLANG_ENABLE_SPEC_V2=1
export SGLANG_RAGGED_VERIFY_MODE=static
export SGLANG_DSPARK_FOLDED_PROPOSAL=0
export SGLANG_DSPARK_FOLDED_SAMPLING=0
export SGLANG_DSPARK_STACKED_CTX_KV=0
export SGLANG_DSPARK_EMBED_IN_GRAPH=0
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export STREAMS_PER_DEVICE=32
export DEEP_NORMAL_MODE_USE_INT8_QUANT=1
export SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK=128
export HCCL_BUFFSIZE=2000
export DEEPEP_NORMAL_LONG_SEQ_ROUND=64
export DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS=512
export HCCL_OP_EXPANSION_MODE=AIV
export HCCL_BUFFSIZE=200
export DEEPEP_HCCL_BUFFSIZE=1800

unset ASCEND_CUSTOM_OPP_PATH
unset SGLANG_NPU_FUSED_MOE_MODE
unset ENABLE_PROFILING
unset SGLANG_K3_TRACE_STATE_FILE
unset SGLANG_K3_TRACE_HIDDEN_FILE
unset ASCEND_LAUNCH_BLOCKING

python3 -m sglang.launch_server \
	--max-total-tokens 65536 \
	--chunked-prefill-size 65536 \
	--model-path /home/weights/Kimi-K3-W4A8 \
	--tokenizer-path /home/weights/Kimi-K3-W4A8 \
	--model-loader-extra-config '{"enable_multithread_load": true}' \
	--trust-remote-code \
	--attention-backend ascend \
	--device npu \
	--quantization modelslim \
	--mamba-ssm-dtype bfloat16 \
	--dtype bfloat16 \
	--tp-size 64 \
	--enable-dp-attention --dp-size 4 --enable-dp-lm-head \
	--enable-shared-experts-attn-tp --enable-dense-mlp-attn-tp \
	--mem-fraction-static 0.75 \
	--max-mamba-cache-size 240 \
	--cuda-graph-bs-decode 2 4 8 12 16 \
	--reasoning-parser kimi_k3 \
	--max-running-requests 64 \
	--moe-a2a-backend deepep \
	--enable-shared-experts-attn-tp \
	--enable-dense-mlp-attn-tp \
	--cuda-graph-backend-decode disabled \
	--deepep-mode auto \
	--watchdog-timeout 9000 \
	--enable-hierarchical-cache \
	--hicache-io-backend kernel_ascend \
	--enable-cache-report \
	--hicache-ratio 2 \
	--hicache-write-policy write_through \
	--hicache-storage-backend npu_memcache \
	--hicache-storage-backend-extra-config '{"meta_service_url":"tcp://80.5.17.37:5007", "config_store_url":"tcp://80.5.17.37:6007", "log_level":"info", "world_size":256, "protocol": "device_sdma", "dram_size": "1GB"}'