Prhub

sgl-project/sglang · 标签视图

标签列表

聚合结果

cpu 相关 PR

2026-09-16
功能 重要性 7.73 洞察度 5.00

CPU 新增 FP8 per-tensor GEMM 内核,W8A16 量化加速

值得精读。核心亮点是把 per-tensor scale 作为 block-scale 的特例来复用现有 tinygemm 框架,避免重写一套 GEMM;has_bias 通过模板参数在编译期展开,配合 AT_DISPATCH_BOOL 避免运行时分支;测试参数化覆盖了 scale 张量维度、prepack 与 bias 组合。建议读者关注模板泛化对既有调用点的契约影响,以及 CPU AMX 前置条件在前端如何被强制校验。

功能 重要性 8.88 洞察度 7.00

为 CPU 扩散模型新增三个融合 norm / scale-shift 内核

值得精读,尤其是要在非 CUDA 平台写融合内核的工程师。重点关注四个设计决策:一是用 `DiffusionNormMode` 编译期 tag + `DiffusionNormTraits` 让 RMSNorm/LayerNorm 共享一套 row kernel,避免复制两遍几乎相同的向量循环;二是把广播语义全部推给 Python 的 `expand_scale_shift_cpu_param`,让 C++ 只面对 `stride_c ∈ {0, 1}`,这是把「组合爆炸」挡在语言边界之外的好例子;三是用「两个 gate 指针」而不是 `gate_t` 模板派发来兼容 Hunyuan(activation dtype)与 Wan(FP32)两种 gate,代价是函数多一个参数、收益是少一层 dispatch;四是刻意复刻 CUDA 的 activation-dtype 边界以保证跨设备数值一致,读代码时要留意那两处 `convert_from_float_ext` / `static_cast<scalar_t>` 往返并非冗余。读法与风险相关:`normd.cpp` 前半(dispatch 与 helper)与 `layernorm.py` 的两处 `forward_cpu` 是主干,`torch_extension_cpu.cpp` 只是样板注册可略读;建议同时留意 `custom_op.py` 中 `forward_cpu` 默认回退的语义翻转,以及测试未覆盖的非连续输入与 4D 广播分支。

2026-09-15

#37748 [CPU] Implement fused QK Norm and RoPE kernels

原始 PR · 作者 cyxlily · 合并时间 2026-09-15 14:17

性能优化 重要性 8.36 洞察度 6.00

新增 CPU 融合 QK-Norm/RoPE 内核并接入共享路径

值得精读,尤其是 CPU 后端、Kernel 与模型接入方向的同学;如果只关心 CUDA 性能可以略读,但 `apply_qk_norm` 的改动属于共享路径,仍建议确认自己维护的模型是否受影响。重点看三处设计决策:一是 CPU 版为何选择「消费预计算 cos_sin_cache」而非像 CUDA 版重算 YaRN 参数,这既是性能取舍也是能力边界;二是 `can_use_fused_qk_norm_cpu` 的门控条件集合(eps 相等、stride(-1)==1、head_dim 整除)如何界定原地写回的合法输入;三是 `apply_qk_norm_rope` 被重构为单一 use_fused 分支后,`_used_fused_qk_norm_rope_last_call`、`fused_set_kv_buffer` 等既有语义是否在 CPU 路径下仍然成立。后续若要扩展,优先补 partial rotary_dim 与 YaRN 场景测试,并把 `_match_cos_sin_cache_dtype` 这类私有接口的使用显式化。

2026-09-09
功能 重要性 5.92 洞察度 4.00

为 CPU 引擎添加 Qwen3.8 文本+视频处理支持,引入 torchcodec/ffmpeg 依赖并优化 CPU 内存布局。

此 PR 是一个有针对性的功能增强,修复了 CPU 引擎处理多模态视频时的一个实际障碍(依赖缺失和不恰当的 pin_memory)。它值得精读,特别是 `video_decoder.py` 中引入的 `_is_cpu_engine()` 辅助函数以及如何使用它来条件化 pin_memory 的逻辑,这是一个在混合设备代码中处理内存布局的实用模式。此外,review 中关于 ffmpeg 版本管理和条件判断准确性的讨论也提供了有价值的工程实践见解。

2026-09-08
功能 重要性 5.53 洞察度 4.00

启用 MiniMax-H3 扩散模型在 Intel Xeon CPU 上的执行,修复 CPU 共享内存通信契约。

本 PR 是一个有意义的硬件兼容性扩展,修复了一个实际存在的通信契约缺陷。但实现规模较小(仅 6 行增删),且缺乏测试覆盖。建议维护者确认是否需要补充 CPU 平台下的单元测试,特别是针对共享内存 all-gather 的 `separate_tensors` 分支逻辑。同时,应追踪 cookbook 文档的更新情况。对于熟悉 sglang 分布式通信层的工程师,值得精读 `group_coordinator.py` 的变更以理解其影响。

2026-09-07
测试 重要性 4.64 洞察度 2.00

将 4 个已注册 CPU 测试文件从 `unittest.TestCase` 迁移至 `CustomTestCase`,防止 `setUpClass` 失败时资源泄漏。

这是一个简单、低风险的维护性 PR,旨在统一测试基类以利用 `CustomTestCase` 提供的更好生命周期保证。对于关注测试健壮性和 CI 稳定性的工程师,建议精读,以理解 `CustomTestCase` 的作用。对于大多数开发者,这是一个可以直接 approve 的小改动。

缺陷修复 重要性 6.38 洞察度 5.00

修复 CPU 后端多引擎数据并行部署时的共享内存冲突及 sglang-router 兼容性问题。

该 PR 对于支持和稳定 CPU 后端的数据并行 (DP) 路由器部署模式至关重要,建议 **精读**。核心设计决策——利用引擎自身的 `dist_init_method` 来生成唯一的共享内存命名空间——是一个清晰、低侵入性的解决方案。变更集中且目标明确,主要风险(环境变量副作用)已通过 `setdefault` 予以缓解。对于从事分布式系统开发、CPU 后端优化或多实例部署的工程师,此 PR 中关于共享资源隔离和兼容性维护的实践值得学习。

功能 重要性 7.21 洞察度 4.00

为 MurmurHash32 添加原生 CPU 内核实现与完整测试。

此 PR 是一个有价值的功能补充,实现了标准算法的原生 CPU 支持。核心变更(C++ 内核)逻辑清晰,测试覆盖了关键场景(正确性、形状),并且与项目架构对齐。建议 **值得精读**,尤其是 `sampling.cpp` 中的内核实现和 `murmur_hash.py` 中的调度逻辑,它们展示了为现有函数增加平台后端支持的完整模式。主要关注点是确保实现与已有(如有)GPU 版本或其他实现的行为一致。