文件最后提交记录最后更新时间
新增_npu_flash_attention_unpad_v2接口,支持310p KERNELTYPE_EXP_M8V2场景 Co-authored-by: gitcode-bot<noreply@gitcode.com> Co-authored-by: hellokitty911<lizhixi2@huawei.com> # message auto-generated for no-merge-commit merge: !4995 merge sfv2 into master 新增_npu_flash_attention_unpad_v2接口,支持310p KERNELTYPE_EXP_M8V2场景 Created-by: hellokitty911 Commit-by: hellokitty911;gitcode-bot Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [ ] 问题单 - [ ] issue/工单 https://gitcode.com/Ascend/op-plugin/issues/93 - [ ] 重构优化 - [ ] 资料更新 1. 背景 1.1 问题描述 底层 atb 库 SelfAttentionParam 的 KernelType 枚举新增了 KERNELTYPE_EXP_M8V2 值: KernelType 枚举值 含义 KERNELTYPE_DEFAULT = 0 i:float16, bmm:float16, o:float16(已有) KERNELTYPE_HIGH_PRECISION = 1 i:float16, bmm:float, o:float16(已有) KERNELTYPE_EXP_M8V2 = 2 i:float16, bmm:float16, exp:m8v2, softmax:default(新增,仅 Atlas 310P) 当前 _npu_flash_attention_unpad 将 kernelType 硬编码为 KERNELTYPE_DEFAULT,用户无法选择其他 kernel 类型。KERNELTYPE_HIGH_PRECISION 在底层 atb 库的 BNSDParamCheck() 中对 PA_ENCODER 场景会报错,因此不纳入支持范围。 # 【修改方案】 > 请描述修改内容的具体实现,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列\ > 如果是需求或者重构类的PR,需要补充详细设计文档(说明上下游组件关系、时序图、类图、DFX能力等内容) # 【资料变更】 > 请确认是否涉及资料变更。如涉及,需要在PR中体现,并简要说明修改内容。如不涉及,需填写“不涉及” # 【接口变更】 > 请确认是否涉及跨代码仓或者客户面可见的接口变更。如涉及,需要详细说明接口以及对应的变更内容,同时需要在资料中体现。如不涉及,需填写“不涉及” # 【功能验证】 > 说明测试场景,测试方法。如果本次测试方式与常规单元测试不同,请详细说明您的测试步骤\ > 新增/变更内容是否已新增/适配UT测试用例看护,并补充测试自验证截图 # 【CheckList】 > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] - [ ] 代码注释完备,正确记录错误日志 - [ ] 代码实现进行了返回值、空指针等校验 - [ ] PR标题正确使用类型标签,如:feat、fix、refactor、docs、test等 - [ ] PR持续集成流水线(CI)执行通过,代码检查无异常 See merge request: Ascend/op-plugin!499511 天前
fix: grouped matmul swiglu quant v2 mxfp4 shape infer Co-authored-by: wang_ziqi<wangziqi4@huawei.com> # message auto-generated for no-merge-commit merge: !5049 merge gmm_bugfix into master fix: grouped matmul swiglu quant v2 mxfp4 shape infer Created-by: wang-ziqi-code Commit-by: wang_ziqi Merged-by: ascend-robot Description: <!-- PR描述模板更新日期:20260203 --> # 【合入来源】 > <font color="red">**如有社区issue,请关联issue链接**</font>\ > <font color="red">**请勿携带内部流程信息(需求链接、问题单、内部issue等)**</font> - [ ] 需求 - [x] 问题单 https://atomgit.com/Ascend/op-plugin/issues/84 - [ ] issue/工单 - [ ] 重构优化 - [ ] 资料更新 # 【修改方案】 修复 npu_grouped_matmul_swiglu_quant_v2 在 Ascend950 MXFP4 / packed FP4 场景下的 output shape 推导问题。 1. 对齐 CANN infer shape 逻辑,MX 场景下 weightScale[E, ceil(K/64), N, 2],逻辑 N 应取 weightScale.dim2,不能按转置 view 或 FP4 uint8 物理存储再做额外补偿。 2. npu_grouped_matmul_swiglu_quant_v2_meta 中移除旧的 FP4_IN_INT8 output/outputScale shape 补偿逻辑,统一按 CANN 输出: - output = [M, N / 2] - outputScale = [M, ceil((N / 2) / 64), 2] 3. GroupedMatmulSwigluQuantV2NpuOpapi.cpp 中保留 5D NZ 和 950 逻辑 3D weight 的路径区分: - 5D NZ 场景从 weightScale 推导逻辑 N。 - Ascend950 逻辑 3D weight 场景继续从 weight.size(2) 推导 N。 4. 新增 fake tensor 和 Ascend950 shape-only 用例,覆盖 MXFP4 input + FP8/FP4 output 的 shape 推导,避免 CPU golden 当前不支持 packed float4 MX 输入的问题影响回归看护。 # 【资料变更】 不涉及。 # 【接口变更】 不涉及 public API / YAML / schema 变更。 # 【功能验证】 新增/调整用例: 1. test/core_tests/test_fake_tensor.py - 新增 Ascend950 MXFP4 fake tensor shape 回归,覆盖 FP8 output 和 FP4 output。 - 校验 output/outputScale shape 与 CANN infer shape 一致。 2. test/test_custom_ops/test_npu_grouped_matmul_swiglu_quant_v2.py - 新增 Ascend950 MXFP4 shape-only 后端用例。 - 覆盖 x_dtype/weight_dtype=torch_npu.float4_e2m1fn_x2weight_scale_dtype/x_scale_dtype=torch_npu.float8_e8m0fnu。 - 校验 output/outputScale shape 和 dtype,不做数值 golden。 - **910B** ![image.png](https://raw.gitcode.com/user-images/assets/7403085/cfb0a01e-4b2b-47f2-9bdb-048dc1eb9ef0/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/7403085/c87d6fdd-3d29-4bad-9320-34d04f6a4a3d/image.png 'image.png') - **950** ![image.png](https://raw.gitcode.com/user-images/assets/7403085/56b63bf8-9018-4379-b8a0-057a915101ba/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/7403085/b058a623-25a4-4020-be9f-b21e50ad107c/image.png 'image.png') # 【CheckList】 - [x] 代码注释完整,关键 shape 推导原因已说明 - [x] 参数合法性沿用现有校验逻辑 - [x] PR 标题建议使用 fix: grouped matmul swiglu quant v2 mxfp4 shape infer - [ ] CI 执行通过 ``` See merge request: Ascend/op-plugin!50494 小时前
support npu_fusion_attention_v3 with fake register Co-authored-by: wangchao430<wangchao430@huawei.com> # message auto-generated for no-merge-commit merge: !4123 merge master_fav3cpu into master support npu_fusion_attention_v3 with fake register Created-by: wangchao430 Commit-by: wangchao430 Merged-by: ascend-robot Description: <!-- Thanks for sending a pull request! --> **What type of PR is this?** > Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line: > > /kind feature **What does this PR do / why do we need it**: 新增npu_fusion_attention_v3算子,支持入图和aclgraph(不带update)。与npu_fusion_attention变更点主要包含: 1. npu_fusion_attention_v3适配层入口处,prefix参数转为symint数组,actual_seq_qlen、actual_seq_kvlen参数转为cpu Tensor(内容为一维int数组),其中actual_seq_qlen、actual_seq_kvlen尽可能避免发生内存拷贝。 2. 返回值中的seed和offset改为tensor,numel删除(在反向中可以通过重计算得到)。在aclgraph场景下,seed和offset为npu Tensor,直接用于dropout计算,否则为cpu Tensor。由于算子get_max_workspace能力暂未支持,update逻辑暂未适配,aclgraph仅支持不需要actual_seq_qlen、actual_seq_kvlen的BNSD布局。 **Special notes for your reviewers**: See merge request: Ascend/op-plugin!41234 个月前