执行摘要
修复 JIT 核函数模板编译错误
修复启动失败:运行 python -m sglang.launch_server --model Qwen/Qwen3-30B-A3B 时因模板语法错误崩溃。
无需精读。属于典型的模板语法修复,可作为 C++ 模板编程的参考案例。
无有效 review 讨论。
修复启动失败:运行 python -m sglang.launch_server --model Qwen/Qwen3-30B-A3B 时因模板语法错误崩溃。
无需精读。属于典型的模板语法修复,可作为 C++ 模板编程的参考案例。
无有效 review 讨论。
修改 python/sglang/jit_kernel/csrc/elementwise/activation.cuh 文件,在 select_kernel 函数的所有返回语句中,将 activation_kernel<...> 改为 ActivationKernel::template activation_kernel<...>,以符合 C++ 在类模板内部使用依赖模板名称的语法要求。
| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
python/sglang/jit_kernel/csrc/elementwise/activation.cuh |
JIT 核函数 | modified | 3.32 |
python/sglang/jit_kernel/csrc/elementwise/activation.cuh
core-logic
唯一修改的文件,修复了模板依赖名称解析错误。
// python/sglang/jit_kernel/csrc/elementwise/activation.cuh
// 修复:在类模板成员函数中返回依赖模板函数时,必须使用
// ClassName::template function_name<...> 语法,以正确解析模板参数。
template <bool kFilterExpert>
static auto select_kernel(const std::string& type)
-> decltype(ActivationKernel::template activation_kernel<ActivationKind::kSiLU, kFilterExpert>) {
using namespace host;
if (type == "silu") {
return ActivationKernel::template activation_kernel<ActivationKind::kSiLU, kFilterExpert>;
} else if (type == "gelu") {
return ActivationKernel::template activation_kernel<ActivationKind::kGELU, kFilterExpert>;
} else if (type == "gelu_tanh") {
return ActivationKernel::template activation_kernel<ActivationKind::kGELUTanh, kFilterExpert>;
} else {
Panic("unsupported activation type: ", type);
}
}
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低。变更仅涉及模板限定语法修正,不影响运行时逻辑;已通过 CI。
影响范围:仅修复 JIT 核函数编译错误,使 Qwen3-30B-A3B 等模型能正常启动。对已有工作流无负面影响。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论