AddLayerNormQuant 算子将 LayerNorm 前的 Add 算子与 LayerNorm 归一化输出融合给下游量化算子(Quantize/AscendQuantV2/DynamicQuant),减少搬入搬出操作,是大模型归一化场景的常用融合算子。算子已提供 aclnn 接口(aclnnAddLayerNormQuant),但仓库 README(norm/add_layer_norm_quant/README.md)调用说明表中 aclnn 接口的样例代码列为空("-"),仅提供了图模式(geir)测试示例(test_geir_add_layer_norm_quant.cpp),缺少 aclnn 接口调用方式的端到端测试示例。
aclnnAddLayerNormQuant
CANN ops-nn 仓库 norm/add_layer_norm_quant 算子目录。该算子已具备 op_host/op_kernel 实现、op_graph IR、图模式测试示例及文档,唯独缺少 aclnn 接口调用示例。
norm/add_layer_norm_quant
在 norm/add_layer_norm_quant/examples/ 目录下新增 test_aclnn_add_layer_norm_quant.cpp,参考 CANN 标准测试示例结构:
norm/add_layer_norm_quant/examples/
test_aclnn_add_layer_norm_quant.cpp
aclInit
aclrtSetDevice
aclrtCreateStream
aclnnAddLayerNormQuantGetWorkspaceSize
关联 PR:https://gitcode.com/cann/ops-nn/pull/7978
Backgroud(背景信息)
AddLayerNormQuant 算子将 LayerNorm 前的 Add 算子与 LayerNorm 归一化输出融合给下游量化算子(Quantize/AscendQuantV2/DynamicQuant),减少搬入搬出操作,是大模型归一化场景的常用融合算子。算子已提供 aclnn 接口(
aclnnAddLayerNormQuant),但仓库 README(norm/add_layer_norm_quant/README.md)调用说明表中 aclnn 接口的样例代码列为空("-"),仅提供了图模式(geir)测试示例(test_geir_add_layer_norm_quant.cpp),缺少 aclnn 接口调用方式的端到端测试示例。Origin(信息来源)
CANN ops-nn 仓库
norm/add_layer_norm_quant算子目录。该算子已具备 op_host/op_kernel 实现、op_graph IR、图模式测试示例及文档,唯独缺少 aclnn 接口调用示例。Benefit / Necessity(价值/作用)
aclnnAddLayerNormQuant两段式接口(GetWorkspaceSize + 调用)调用范例,降低开发者集成与调试成本Design(设计方案)
在
norm/add_layer_norm_quant/examples/目录下新增test_aclnn_add_layer_norm_quant.cpp,参考 CANN 标准测试示例结构:aclInit/aclrtSetDevice/aclrtCreateStream)aclnnAddLayerNormQuantGetWorkspaceSize申请 workspace,aclnnAddLayerNormQuant执行计算关联 PR:https://gitcode.com/cann/ops-nn/pull/7978