通过环境变量进行调度#
所有插件行为由带有 SGLANG_FL_* 前缀的环境变量控制。
第二层 — 融合算子调度#
变量 |
默认值 |
描述 |
|---|---|---|
|
|
总开关: |
|
|
全局后端偏好: |
|
— |
逐算子后端优先级,例如 |
|
— |
跳过列出的算子,不进行 OOT 调度(逗号分隔的类名) |
|
— |
仅调度列出的算子(与 BLACKLIST 互斥) |
|
|
|
|
— |
拒绝特定厂商(逗号分隔,例如 |
|
— |
仅允许列出的厂商(逗号分隔) |
|
— |
调度日志文件路径(记录哪些算子被拦截) |
第一层 — ATen 替换(FlagGems)#
变量 |
默认值 |
描述 |
|---|---|---|
|
|
总开关: |
|
— |
仅列出的 ATen 算子使用 FlagGems(逗号分隔) |
|
— |
列出的 ATen 算子不使用 FlagGems(逗号分隔) |
|
|
|
|
— |
ATen 替换日志文件路径 |
|
|
|
SGLANG_FL_FLAGOS_WHITELIST和SGLANG_FL_FLAGOS_BLACKLIST互斥。SGLANG_FL_FLAGOS_WHITELIST优先级高于 YAMLflagos_blacklist。
第三层 — 分布式通信#
变量 |
默认值 |
描述 |
|---|---|---|
|
|
后端: |
|
— |
FlagCX 安装路径(设置后默认使用 |
系统 / 调试#
变量 |
默认值 |
描述 |
|---|---|---|
|
— |
YAML 配置文件路径(覆盖平台自动检测) |
|
(自动) |
强制指定平台: |
|
|
调度系统日志级别: |
|
(全部) |
SGLang 内置:筛选要加载的插件(逗号分隔) |
示例#
# 强制所有算子使用 reference 后端(纯 PyTorch,适用于精度调试)
SGLANG_FL_PREFER=reference python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-0.5B-Instruct \
--port 30000 --disable-piecewise-cuda-graph
# 逐算子:RMSNorm 使用 vendor,其他使用 flagos
SGLANG_FL_PER_OP="rms_norm=vendor|flagos;silu_and_mul=flagos" \
python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-0.5B-Instruct \
--port 30000 --disable-piecewise-cuda-graph
# 跳过 RotaryEmbedding 的 OOT 调度(回退到 SGLang 原生 CUDA)
SGLANG_FL_OOT_BLACKLIST=RotaryEmbedding python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-0.5B-Instruct \
--port 30000 --disable-piecewise-cuda-graph
# 禁用 ATen 层,仅保留融合算子调度
USE_FLAGGEMS=0 python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-0.5B-Instruct \
--port 30000 --disable-piecewise-cuda-graph
# 使用 YAML 配置并通过环境变量覆盖
SGLANG_FL_CONFIG=./my_config.yaml SGLANG_FL_PREFER=reference \
python -m sglang.launch_server \
--model-path Qwen/Qwen2.5-0.5B-Instruct \
--port 30000 --disable-piecewise-cuda-graph