ops-nn 算子仓 dequant_swiglu_quant 已支持 swiglu_mode=3(模型变体 SwiGLU:gate=SiLU(x_glu) 后 clamp(max=clampLimit)、up=clamp(x_linear, ±clampLimit)、不使用 gluAlpha/gluBias、前后半切分;Atlas A2/A3 侧已合入上游,Ascend950 侧随 PR cann/ops-nn#9386 支持)。
但 op-plugin 侧 torch_npu.npu_dequant_swiglu_quant 的 TORCH_CHECK 仍将 swiglu_mode 限制在 {0, 1, 2},上层经 PyTorch 调用 swiglu_mode=3 时被插件层拦截,报错 "swiglu_mode only support 0, 1 or 2",算子能力无法透出。
torch_npu.npu_dequant_swiglu_quant
在 op_plugin/ops/opapi/DequantSwigluQuantOpApi.cpp 的 npu_dequant_swiglu_quant 中将 swiglu_mode 的 TORCH_CHECK 合法取值由 {0, 1, 2} 扩展为 {0, 1, 2, 3},报错文案同步更新。无计算逻辑变更。
op_plugin/ops/opapi/DequantSwigluQuantOpApi.cpp
npu_dequant_swiglu_quant
关联 PR:https://gitcode.com/Ascend/op-plugin/pull/5811
/assign @caorenlei
一、背景信息
ops-nn 算子仓 dequant_swiglu_quant 已支持 swiglu_mode=3(模型变体 SwiGLU:gate=SiLU(x_glu) 后 clamp(max=clampLimit)、up=clamp(x_linear, ±clampLimit)、不使用 gluAlpha/gluBias、前后半切分;Atlas A2/A3 侧已合入上游,Ascend950 侧随 PR cann/ops-nn#9386 支持)。
但 op-plugin 侧
torch_npu.npu_dequant_swiglu_quant的 TORCH_CHECK 仍将 swiglu_mode 限制在 {0, 1, 2},上层经 PyTorch 调用 swiglu_mode=3 时被插件层拦截,报错 "swiglu_mode only support 0, 1 or 2",算子能力无法透出。二、价值/作用
三、设计方案
在
op_plugin/ops/opapi/DequantSwigluQuantOpApi.cpp的npu_dequant_swiglu_quant中将 swiglu_mode 的 TORCH_CHECK 合法取值由 {0, 1, 2} 扩展为 {0, 1, 2, 3},报错文案同步更新。无计算逻辑变更。关联 PR:https://gitcode.com/Ascend/op-plugin/pull/5811