文件最后提交记录最后更新时间
op_api_list.md/op_list.md添加FusedFloydAttention正反向接口 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !4803 merge ffa_ffag_add_list into master op_api_list.md/op_list.md添加FusedFloydAttention正反向接口 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR主要是在op_api_list.md和/op_list.md添加FusedFloydAttention正反向aclnn接口以及修改aclnnFusedFloydAttentionGrad接口功能描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#2192](https://gitcode.com/cann/ops-transformer/issues/2192) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新以下文件: attention/fused_floyd_attention/README.md attention/fused_floyd_attention_grad/README.md attention/fused_floyd_attention_grad/docs/aclnnFusedFloydAttentionGrad.md docs/zh/op_api_list.md docs/zh/op_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!480321 天前
新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !826 merge ffa_ffag_opensource into master 新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!8264 个月前
common目录整改 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !4870 merge feature/common_dir_fix_v2 into master common目录整改 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 本次修改对 common/ 目录进行整理,分为两个阶段: - **Phase 1**: 将 common/include/kernel/ 重命名为 common/include/op_kernel/ - **Phase 2**: 将 common/include/tiling_base/common/src/tiling_base/ 合并到 common/include/op_host/common/src/op_host/ 相应的 CMake 配置和所有 #include 路径引用已同步更新。 影响范围: - 351 个文件修改(include 路径更新) - 8 个文件重命名(tiling_base → op_host) - 2 个 CMakeLists.txt 修改 + 多个 tests 目录 CMakeLists.txt 更新 ## 关联的Issue Closes #2246 ## 测试 - 编译验证通过:bash build.sh --pkg --soc=ascend910b --ops=all_gather_matmul_v2 -j16 - 编译产物成功生成 .run 包 ## 文档更新 无 ## 类型标签 - [x] ♻️ 重构 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!487022 天前
新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !826 merge ffa_ffag_opensource into master 新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!8264 个月前
fix: skip failing operator UT builds by commenting out error test CMakeLists.txt Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5823 merge fix/ut-build-skip-failing-ops into master fix: skip failing operator UT builds by commenting out error test CMakeLists.txt Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 部分算子 UT 在 ascend910b 平台上编译失败,导致整体 UT 构建阻塞。本 PR 通过注释失败算子的 tests CMakeLists.txt 代码部分(保留版权头),使 op_host/op_api UT 构建能顺利通过。 ## 改动 - build.sh: 在 set_ut_mode() 中新增逻辑,当 UT_TEST_ALL=TRUE 且 ENABLE_BUILT_CUSTOM!=TRUE 时自动拆分为 OP_HOST_UT + OP_API_UT + OP_GRAPH_UT,关闭 OP_KERNEL_UT - 注释以下算子的 tests CMakeLists.txt(保留版权头): - ffn/ffn, attention/fused_floyd_attention_grad, attention/lightning_indexer_grad, attention/nsa_compress_attention, attention/nsa_compress_attention_infer, attention/nsa_compress_with_cache, attention/nsa_selected_attention, attention/nsa_selected_attention_infer, gmm/quant_grouped_matmul_dequant, mc2/matmul_all_reduce, mhc/mhc_pre_sinkhorn, mhc/mhc_sinkhorn, moe/moe_gating_top_k_softmax_v2, posembedding/norm_rope_concat ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2622 https://gitcode.com/cann/ops-transformer/issues/2594 ## 测试 - bash build.sh -u: 1198 tests, 1197 passed, 1 skipped - bash build.sh -u --ophost: 2904 tests, all passed - bash build.sh -u --opapi: 1198 tests, 1197 passed, 1 skipped ## 类型标签 - [x] 🧪 测试 - [x] 📦 构建/CI See merge request: cann/ops-transformer!58236 天前
新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !826 merge ffa_ffag_opensource into master 新增FusedFloydAttn/FusedFloydAttnGrad算子实现 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!8264 个月前
op_api_list.md/op_list.md添加FusedFloydAttention正反向接口 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !4803 merge ffa_ffag_add_list into master op_api_list.md/op_list.md添加FusedFloydAttention正反向接口 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本PR主要是在op_api_list.md和/op_list.md添加FusedFloydAttention正反向aclnn接口以及修改aclnnFusedFloydAttentionGrad接口功能描述 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#2192](https://gitcode.com/cann/ops-transformer/issues/2192) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新以下文件: attention/fused_floyd_attention/README.md attention/fused_floyd_attention_grad/README.md attention/fused_floyd_attention_grad/docs/aclnnFusedFloydAttentionGrad.md docs/zh/op_api_list.md docs/zh/op_list.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!480321 天前
README.md

FusedFloydAttentionGrad

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT ×
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:训练场景下,计算Floyd注意力的反向输出,FloydAttn相较于传统FA主要是计算qk/pv注意力时会额外将seq作为batch轴从而转换为batchMatmul。

  • 计算公式:

    已知注意力的正向计算公式为:

    P=Softmax(Mask(scale∗(Q∗K1T+Q∗K2T),atten_mask))Y=(P∗V1+P∗V2)P=Softmax(Mask(scale*(Q*K_1^T + Q*K_2^T), atten\_mask)) \\ Y=(P*V_1+P*V_2)

    则注意力的反向计算公式为:

    S=Softmax(S)S=Softmax(S)

    dV1=PTdYdV_1=P^TdY

    dV2=PTdYdV_2=P^TdY

    dQ=((dS)∗K1)d+((dS)∗K2)ddQ=\frac{((dS)*K_1)}{\sqrt{d}}+\frac{((dS)*K_2)}{\sqrt{d}}

    dK1=((dS)T∗Q)ddK_1=\frac{((dS)^T*Q)}{\sqrt{d}}

    dK2=((dS)T∗Q)ddK_2=\frac{((dS)^T*Q)}{\sqrt{d}}

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
query 输入 公式中的输入Q。 FLOAT16、BFLOAT16 ND
key1 输入 公式中的输入K1。 FLOAT16、BFLOAT16 ND
value1 输入 公式中的输入V1。 FLOAT16、BFLOAT16 ND
key2 输入 公式中的输入K2。 FLOAT16、BFLOAT16 ND
value2 输入 公式中的输入V2。 FLOAT16、BFLOAT16 ND
dy 输入 公式中的输入dY。 FLOAT16、BFLOAT16 ND
attenMaskOptional 可选输入 公式中的atten_mask,表示注意力掩码,取值为1代表该位不参与计算(不生效),为0代表该位参与计算。 BOOL、UINT8 ND
scaleValue 可选属性
  • 公式中的scale,表示缩放系数,作为计算流中Muls的scalar值。
  • 默认值为1.0。
DOUBLE -
dqOut 输出 公式中的dQ,表示query的梯度。 FLOAT16、BFLOAT16 ND
dk1Out 输出 公式中的dK1,表示key1的梯度。 FLOAT16、BFLOAT16 ND
dv1Out 输出 公式中的dV1,表示value1的梯度。 FLOAT16、BFLOAT16 ND
dk2Out 输出 公式中的dK2,表示key2的梯度。 FLOAT16、BFLOAT16 ND
dv2Out 输出 公式中的dV2,表示value2的梯度。 FLOAT16、BFLOAT16 ND

约束说明

  • 该接口与PyTorch配合使用时,需要保证CANN相关包与PyTorch相关包的版本匹配

  • 关于数据shape的约束,其中:

    • B:取值范围为1~2K。
    • H:取值范围为1~256。
    • N:取值范围为16~1M且N%16==0。
    • M:取值范围为128~1M且M%128==0。
    • K:取值范围为128~1M且K%128==0。
    • D:取值范围为32/64/128。
  • query与key1的第0/2/4轴需相同。

  • key1与value1 shape需相同。

  • key2与value2 shape需相同。

  • query与dy/attentionIn shape需相同。

  • softmaxMax与softmaxSum shape需相同。

  • D只支持32/64/128。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_fused_floyd_attention_grad 通过接口方式调用aclnnFusedFloydAttentionGrad算子。