环境变量#
SGLang 支持多种环境变量,用于配置其运行时行为。本文档提供了一份详尽的列表,并旨在随时间持续更新。
注意:SGLang 使用两种前缀的环境变量:SGL_ 和 SGLANG_。这可能是由于历史原因。虽然目前针对不同设置两者都支持,但未来版本可能会将其统一。
通用配置#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
启用从 ModelScope(魔搭社区)获取模型 |
|
|
服务器的主机 IP 地址 |
|
|
服务器端口 |
自动检测 |
|
自定义日志配置路径 |
未设置 |
|
禁用请求日志记录 |
|
|
健康检查超时时间(秒) |
|
|
收集每个层和 GPU rank 上选定物理专家数量指标的轮次间隔。0 表示禁用。 |
|
|
将未知的工具调用转发给客户端,而不是丢弃它们 |
|
性能调优#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
控制是否使用 torch.inference_mode |
|
|
启用 torch.compile |
|
|
启用 CPU 亲和性设置(在 Docker 构建中通常设置为 |
|
|
允许调度器覆盖更长上下文长度的请求(在 Docker 构建中通常设置为 |
|
|
控制 FlashInfer 可用性检查 |
|
|
跳过 P2P (peer-to-peer) 访问检查 |
|
|
设置启用分块前缀缓存(chunked prefix caching)的阈值 |
|
|
在融合多层注意力(Fused MLA)中启用 RoPE 融合 |
|
|
对连续的预填充(prefill)批次禁用重叠调度 |
|
|
设置每次轮询的最大请求数,负值表示不限制 |
|
|
禁用 Flash Attention 4 预热轮次(设置为 |
|
|
DPBudget 更新的间隔 |
|
|
调度器接收跳过计数器(recv skipper counter)的默认权重值(当 forward 模式不匹配特定模式时使用)。仅在 |
|
|
调度器接收跳过器在 decode forward 模式下的权重增量。配合 |
|
|
调度器接收跳过器在 target verify forward 模式下的权重增量。配合 |
|
|
当 forward 模式为 None 时,调度器接收跳过器的权重增量。配合 |
|
|
启用多模态数据项(MultimodalDataItem)哈希值的预计算 |
|
DeepGEMM 配置(高级优化)#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
启用 DeepGEMM 内核的即时(JIT)编译(安装 DeepGEMM 包后,在 NVIDIA Hopper (SM90) 和 Blackwell (SM100) GPU 上默认启用;设置为 |
|
|
启用 DeepGEMM 内核的预编译 |
|
|
并行编译 DeepGEMM 内核的工作进程数量 |
|
|
在 DeepGEMM 预编译脚本期间使用的指示标志 |
|
|
缓存已编译 DeepGEMM 内核的目录 |
|
|
使用 NVRTC(而非 Triton)进行 JIT 编译(实验性) |
|
|
在批矩阵乘法(BMM)操作中使用 DeepGEMM |
|
DeepEP 配置#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
使用 Bfloat16 进行分发(dispatch) |
|
|
每个 GPU 上分发 token 的最大数量 |
|
|
当启用单批次重叠时,用于 DeepEP 组合(combine)的 SM 数量 |
|
内存管理#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
启用内存池调试 |
|
|
为内存规划裁剪最大新 token 数量的估算 |
|
|
反词元化器(detokenizer)的最大状态数 |
基于系统的默认值 |
|
启用张量并行(TP)各 rank 间的内存不平衡检查 |
|
特定模型选项#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
使用 AITER 优化实现 |
|
|
启用 MoE 填充(如果值为 |
|
|
在 Blackwell GPU 上使用 Cutlass FP8 MoE 内核(已弃用,请使用 –moe-runner-backend=cutlass) |
|
量化#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
启用 INT4 权重量化 |
|
|
应用 per-token group 量化内核,带有融合的 silu、mul 以及 masked m |
|
|
即使有其他 FP8 内核可用,也强制使用 FP8 MARLIN 内核 |
|
|
在 Blackwell GPU 上为 |
`` |
|
启动 DeepSeek NVFP4 检查点时,将 q_b_proj 从 BF16 量化为 FP8 |
|
|
为 MoE 分发使用 nvfp4(在 flashinfer_cutlass 或 flashinfer_cutedsl moe runner 后端) |
|
|
启动 DeepSeek NVFP4 检查点时,将 nextn 层的 moe 从 BF16 量化为 FP8 |
|
|
在 Blackwell GPU 上运行 blockwise fp8 GEMM 时使用 flashinfer 内核。已弃用:请改用 |
|
|
在 Hopper 或 Blackwell GPU 上运行 blockwise fp8 GEMM 时使用 Cutlass 内核。已弃用:请改用 |
|
分布式计算#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
控制非零 rank 子进程的阻塞行为 |
|
|
指示当前进程是否为其节点上的第一个 rank |
|
|
流水线并行(PP)层切分规范 |
未设置 |
|
为分布式计算为每个进程设置一个可见设备 |
|
测试与调试(内部/CI)#
这些变量主要用于内部测试、持续集成(CI)或调试。
环境变量 |
描述 |
默认值 |
|---|---|---|
|
指示是否在 CI 环境中运行 |
|
|
指示是否在 AMD CI 环境中运行 |
|
|
启用撤回(retract)解码测试 |
|
|
当启用 SGLANG_TEST_RETRACT 时,如果批次大小超过 SGLANG_TEST_RETRACT_NO_PREFILL_BS,则不执行预填充。 |
|
|
记录步进时间用于性能分析 |
|
|
测试请求时间统计 |
|
分析与基准测试#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
PyTorch 分析器(profiler)输出目录 |
|
|
为 PyTorch 分析器设置 |
|
|
为 PyTorch 分析器设置 |
|
|
如果启用了追踪,配置 BatchSpanProcessor.schedule_delay_millis |
|
|
如果启用了追踪,配置 BatchSpanProcessor.max_export_batch_size |
|
存储与缓存#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
等待权重就绪的超时时间 |
|
|
禁用 Outlines 磁盘缓存 |
|
|
使用 SGLang 自定义的 Triton 内核缓存实现以降低开销(在 CUDA 上自动启用) |
|
函数调用 / 工具使用#
环境变量 |
描述 |
默认值 |
|---|---|---|
|
控制工具调用解析和验证的严格级别。 |
|