SGLang正式支持昇思MindSpore,使能昇腾大模型服务化高性能
01 介绍
SGLang是一个以高性能著称的开源大模型服务化引擎,以其零开销的CPU调度和基于基数树 (Radix Tree) 的高命中率KV Cache为特色,性能位于业界领先水准。2025年11月,经过SGLang与昇思MindSpore社区的共同努力,昇思MindSpore社区提交的PR(https://github.com/sgl-project/sglang/pull/9234)成功合入SGLang仓库。SGLang 0.5.6以后的版本中将包含MindSpore支持。用户可以在SGLang框架里无缝运行MindSpore模型,体验昇腾平台的高性能推理服务化。
02 技术方案
SGLang-MindSpore方案构建于SGLang对昇腾平台的既有支持之上。在前端语言、数据并行控制、调度器和KV Cache管理层面,复用SGLang既有的实现;在模型执行层面,将MindSpore模型统一封装到MindSporeForCausalLM类,替换SGLang原生模型,方案简洁,侵入式改动少。同时,通过张量和HCCL通信组的复用,打通了MindSpore-PyTorch的双框架协同运行的能力而几乎不产生资源浪费。这种双框架协同的模式使得SGLang的许多特性只需要较简单的接口适配就可以应用于MindSpore模型,如数据并行、PD分离、投机解码等。
SGLang-MindSpore的架构框图如下所示。其中,蓝色部分表示SGLang原生组件,粉红色部分表示MindSpore新增组件。

SGLang-MindSpore的推理流程图如下所示。模型输入和KV Cache等PyTorch张量,通过DLPack转换为MindSpore Tensor。而MindSpore模型输出的Logits,也通过DLPack转换为PyTorch Tensor,再执行Sample, Detokenize等后处理流程。该过程不涉及额外的显存分配或数据搬运,从而让MindSpore模型无缝衔接到SGLang原生流程中。

03 快速上手-基于昇思MindSpore体验SGLang推理
1、安装指引
我们提供conda和Docker两种安装方式。
方式一:基于conda环境安装
1)创建Python 3.11 的conda环境。
conda create -n [环境名] python=3.11
conda activate [环境名]
2)将NPU驱动更新至25.5:
https://www.hiascend.com/hardware/firmware-drivers/community 并安装社区版CANN 8.5:
https://www.hiascend.com/cann/download
3)安装基于昇腾平台的SGLang。
git clone https://github.com/sgl-project/sglang.git
cd sglang
cp python/pyproject_other.toml python/pyproject.toml
pip install -e "python[all_npu]"
4)安装sgl-kernel-npu。请在https://github.com/sgl-project/sgl-kernel-npu/releases根据硬件平台下载对应的压缩包并解压安装,以昇腾910为例:
wget https://github.com/sgl-project/sgl-kernel-npu/releases/download/2026.01.21/sgl-kernel-npu_2026.01.21_8.5.0_910b.zip -O tmp.zip && unzip tmp.zip && rm -f tmp.zip
pip install output/*.whl
5)安装MindSpore模型仓库,该流程会自动安装MindSpore 2.8版本。
git clone https://github.com/mindspore-lab/sgl-mindspore.git
cd sgl-mindspore
pip install -e .
方式二:基于SGLang官方Dockerfile构建docker镜像:
https://github.com/sgl-project/sglang/blob/main/docker/npu.Dockerfile
构建成功后,在容器内安装最新版MindSpore和模型仓库:
git clone https://github.com/mindspore-lab/sgl-mindspore.git
cd sgl-mindspore
pip install -e .
2、体验推理流程
安装完成后,请设置以下环境变量:
export ASCEND_RT_VISIBLE_DEVICES=0 # 指定使用几号卡
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python # 避免protobuf版本不匹配
之后可运行以下脚本,体验离线推理流程。
import sglang as sgl
llm = sgl.Engine(
model_path="/path/to/your/model", # 模型权重路径,例如Qwen3-8B
device="npu",
model_impl="mindspore", # 使用MindSpore模型
attention_backend="ascend",
tp_size=1, # 张量并行尺寸, 根据模型大小和单卡内存决定
dp_size=1 # 数据并行尺寸,需要保证tp_size * dp_size <= 卡数
mem_fraction_static=0.8, # 给SGLang预留的NPU内存比例
)
# 提示词,可自行修改
prompts = [
"Hello, my name is",
"The capital of France is",
"The future of AI is"
]
sampling_params = {"temperature": 0, "top_p": 0.9}
outputs = llm.generate(prompts, sampling_params)
for prompt, output in zip(prompts, outputs):
print(f"Prompt: {prompt}")
print(f"Generated: {output['text']}")
print("---")
更多使用指导,包括服务化推理、性能测试等,请参考SGLang官方文档(https://docs.sglang.io/supported_models/mindspore_models.html)以及sgl-mindspore模型仓库文档(https://github.com/mindspore-lab/sgl-mindspore/blob/main/README_zh.md)。
04 结语
关于SGLang支持昇思MindSpore的更多链接,请参考
SGLang 0.5.6发行版,包含MindSpore支持:
https://github.com/sgl-project/sglang/releases/tag/v0.5.6
SGLang官方文档中的MindSpore模型部分:
https://docs.sglang.io/supported_models/mindspore_models.html
MindSpore模型仓库: https://github.com/mindspore-lab/sgl-mindspore
了解和讨论SGLang-MindSpore及大模型推理技术,欢迎大家加入大模型推理服务SIG群交流。
