Qwen在双3090配置下可达到220 tok/s的速率——需验证哪些内容。
通过精细的批量处理、量化以及测量记录来验证社区所宣称的吞吐量。
可将此内容视为针对操作人员的版本,整合了文章“社区报告:在两台RTX 3090上,Qwen3.8–27B模型的处理速度可达220个令牌/秒。我亲自测试过,并弄清了为何大多数人无法达到这一速度”中的核心观点:清晰的阶段划分、有序的代码模块以及便于交接的恢复说明。将概览视为可量化的基准能发挥最佳作用,在扩大范围之前,先记录一份理想的运行日志、一个故障案例以及回滚说明。应将此阶段视为输入与经过验证的输出之间的契约,为相关成果命名、明确成功标准,绝不允许出现无声的半完成状态。
运行SGLang(这可比llama.cpp重要得多)
要运行 SGLang(这可比 llama.cpp 复杂得多),在修改代码之前需先定义输入参数、该步骤的负责人以及终止条件。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 当下一步操作是编写代码或调用工具时,应优先选择具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。
git clone https://github.com/sgl-project/sglang.git
cd sglang
python3.12 -m venv .venv
source .venv/bin/activate
RuntimeError: cargo is required to discover the Rust extension modules
SGLANG_BUILD_RUST_EXTS=none pip install -e "./python[all]"
CUDA_VISIBLE_DEVICES=1,2 python -m sglang.launch_server \
--model-path /mnt/models/Qwen3.8-27B-AWQ-INT4 \
--tp 2 \
--speculative-algorithm DFLASH \
--speculative-draft-model-path /mnt/models/Qwen3.8-27B-DFlash2 \
--speculative-num-draft-tokens 8 \
--mamba-radix-cache-strategy extra_buffer \
--disable-prefill-cuda-graph \
--cuda-graph-max-bs-decode 16 \
--mem-fraction-static 0.85 \
--context-length 65536 \
--reasoning-parser qwen3 \
--host 0.0.0.0 --port 30000
结果:技术上可行,但效果令人失望
就结果而言:在技术上算是“存活”的,但在精神层面却令人失望。在修改代码之前,需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,这样操作人员无需查看整个系统结构即可进行审计。 当下一步操作是编写代码或调用工具时,宜采用带有模式验证的结构化输出,而非自由形式的文字描述。
| Metric | Min | Max | Average |
|-------------------------|----------|-----------|-----------|
| Decode speed | 47 t/s | ~100 t/s | ~55 t/s |
| Prompt prefill | 342 t/s | 466 t/s | ~428 t/s |
| Accept length (DFlash) | 3.2 | 6.8 | ~4 |
| Capability | Advertised limit | Reality |
|-------------------------|---------------------------|-----------------------|
| Max context per request | 65,536 (I set it) | fits, one at a time |
| Total KV pool | ~131K tokens max | 103K at default flags |
| Parallel slots | 48 concurrent requests | 3–6 with real prompts |
为何现实将理论抛在身后
对于“为何现实让理论被搁置”的问题,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误处理都是产品本身的组成部分,而非后续才添加的完善措施。 当下一步操作为代码编写或工具调用时,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。 对于“为何现实让理论被搁置”的问题,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入参数与经过验证的输出之间的契约。为相关成果命名,明确成功判定标准,绝不允许出现无声无息的半完成状态。
Setup Custom allreduce failed with CUDART error: peer access is not
supported between these two devices.
/sys/bus/pci/devices/05:00.0/current_link_width → 4 (max 16)
/sys/bus/pci/devices/09:00.0/current_link_width → 4 (max 16)
全速运行:上下文限制与一次强制重启
在处理“全速运行:上下文限制与一次强制重启”这一课题时,首先需明确相关约定:所需的输入参数、成功标志,以及部分失败时的处理方式。这样的清单能确保后续的代码修改始终符合预期。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在代码从演示环境转向共享环境时出现意外费用。 缓存稳定的系统指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。
结论:SGLang要求严格,且并非适合所有软件
在处理“Verdict: SGLang要求严格,且这不是你的软件”这一任务时,首先需写下规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。
操作检查清单
在制定操作检查清单时,同样要首先明确规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。
应优先选择小型、可测试的单元,而非庞大的脚本。当某个步骤出错时,故障应指向单一责任模块,而非复杂的流程链。
缓存稳定的系统指令和工具架构。重复发送相同的前置数据是导致资源浪费的常见原因。
锁定依赖版本的编号,并记录用于运行演示的镜像摘要。可重复性比经验知识更为重要。
将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,拒绝默许的不完整完成。
缓存稳定的系统指令和工具架构。重复发送相同的前置数据是导致资源浪费的常见原因。
在推广该技术栈之前,应先冻结版本,为关键流程记录标准输出文本,并明确回滚步骤。共享环境需要设置速率限制、租户验证机制,以及明确的密钥轮换负责人。与其展示花哨的一次性演示,不如注重扎实的可靠性。
关于0dcc1bedc39e的批量处理说明:请将提供商密钥移出代码仓库,设定单会话令牌上限,并将输出文本与评估用示例文件存放在同一位置,以便后续模型更换时保持对比性。
针对强化安全性的第0条建议,在修改代码之前需明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态;同时需将执行时间以及令牌或查询成本与功能测试结果一并记录。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外账单。
强化措施细节 0/1002:为该记录测量执行时间、错误类型以及代币消耗情况,然后依据固定的问题清单而非个人经验来判断是否保留该变更。
在处理强化措施记录1时,首先写下合约的必要输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 同时记录正常流程和故障恢复流程。重试机制、人工审核环节以及错误处理方式都是产品本身的组成部分,而非后续的优化内容。
强化措施细节 1/1002:为该记录测量执行时间、错误类型以及代币消耗情况,然后依据固定的问题清单而非个人经验来判断是否保留该变更。
强化措施2作为可测量的表面来处理时效果最佳。在扩大范围之前,先记录一份理想的测试用例、一个故障案例以及回滚说明。将此阶段视为输入与已验证输出之间的契约,为相关成果命名,明确成功标准,杜绝默许的半完成状态。
强化细节2/1002:针对该措施需测量执行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来判断是否保留该变更。
对于强化措施3,在修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。配置信息应置于应用程序代码之外,环境文件、密钥存储及功能开关应集中存放于操作人员可审计的位置,无需查看整个系统结构。
强化细节 3/1002:测量该记录的耗时、错误类型以及令牌消耗情况,然后依据固定的问题集而非个别案例来决定是否保留该变更。