Prhub

#22331 [HiSparse] Clarify decode token usage logs

原始 PR 作者 huangtingwei9988 合并时间 2026-04-14 09:03 文件变更 2 提交数 4 评论 10 代码增减 +54 / -0

执行摘要

澄清 HiSparse 解码令牌使用日志,区分 GPU 和 CPU 令牌统计。

PR body中展示了before和after的日志对比:before日志中'#token'和'token usage'未区分设备,after日志新增了'#gpu-token'、'gpu token usage'、'#cpu-token'、'cpu token usage',从而在HiSparse环境下提供更精确的资源使用洞察,解决日志信息不清晰的问题。

对于关注HiSparse性能监控的开发者,值得快速浏览实现细节,特别是get_token_stats和_get_hisparse_token_info方法的统计逻辑;对于一般用户,了解日志格式变化即可,无需深入代码。

讨论亮点

review中仅有一个来自hzh0425的评论,建议将字段重命名为host_tokens_usage(具体评论为'can we rename to host_tokens_usage'),但根据提交历史和最终代码,字段已命名为host_tokens和host_token_usage,表明该建议可能被采纳或讨论后达成一致;没有其他争议点或深度讨论。

实现拆解

实现分为两个关键文件:在python/sglang/srt/managers/hisparse_coordinator.py中新增HiSparseTokenStats NamedTuple(包含device_tokens、device_token_usage、host_tokens、host_token_usage字段)和get_token_stats方法,用于计算设备(GPU)和主机(CPU)的令牌使用量和利用率;在python/sglang/srt/managers/scheduler_runtime_checker_mixin.py中扩展PoolStats类添加is_hisparse、hisparse_device_tokens、hisparse_device_token_usage、hisparse_host_tokens、hisparse_host_token_usage字段,并修改_get_hisparse_token_info方法和get_decode_usage_msg_parts方法,以在日志中输出细分统计。

文件 模块 状态 重要度
python/sglang/srt/managers/hisparse_coordinator.py hisparse modified 6.0
python/sglang/srt/managers/scheduler_runtime_checker_mixin.py scheduler modified 5.0

关键符号

get_token_stats _get_hisparse_token_info

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

字段命名建议 style

hzh0425 建议重命名字段,具体评论为 'can we rename to host_tokens_usage',指向 hisparse_coordinator.py 中的 cpu_tokens 字段。

结论:最终代码使用了 host_tokens 和 host_token_usage,表明建议被采纳或调整,命名更一致。 · 已解决

风险与影响

风险较低:日志格式变更(从'#token'变为'#gpu-token'和'#cpu-token')可能影响依赖日志解析的监控工具,需确保向后兼容或更新相关工具;新增统计计算(如get_token_stats中的除法运算)可能引入轻微性能开销,但仅限于日志记录路径,对核心性能影响极小;代码变更集中在两个文件,回归风险可控,但需测试覆盖以确保逻辑正确性。

对用户:日志输出更详细,有助于调试和优化HiSparse配置,提升运维体验;对系统:无功能变更,仅增强可观测性,不影响推理或调度核心逻辑;对团队:提升了HiSparse模块的监控能力,便于性能分析和资源管理。

日志格式变更 轻微性能开销

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论