文件最后提交记录最后更新时间
资料示例代码修正 Co-authored-by: 镜心<wangyungfei@h-partners.com> # message auto-generated for no-merge-commit merge: !4777 merge example_bf16 into master 资料示例代码修正 Created-by: mirror-center Commit-by: 镜心 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!47771 个月前
【bugfix/update】ffag支持D为特殊值/ffa examples修改 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !1416 merge ffag_support_spetial_dimnum into master 【bugfix/update】ffag支持D为特殊值/ffa examples修改 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次PR主要是重构并简化了aclnnFusedFloydAttention算子的调用示例代码,使其更简洁、自包含且易于测试。另外,修改了FusedFloydAttentionGrad算子中矩阵乘法的输出格式配置逻辑,将特定条件下启用NZ格式改为统一强制使用ND格式,提高算子行为的确定性和一致性。 ## 修改方案描述 首先,将资料中的示例代码与examples目录下的保持一致。其次,在测试代码中删除了未使用的softmax_size变量,并将attenmask统一更正为attenMask。最后,在GetShapeAttrsInfo函数中,将fBaseParams.mm2IsNZOut的赋值逻辑从基于维度和数据类型的条件判断直接改为固定值false,从而统一了输出格式。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [关联Issue [#708](https://gitcode.com/cann/ops-transformer/issues/708) ] ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> FusedFloydAttentionGrad失败的5个case已跑通且精度正常 FusedFloydAttention example可正常跑通且结果正常 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 将aclnnFusedFloydAttention.md的示例代码与examples保持一致 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!14163 个月前
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 天前
【update/bugfix】ffa/ffag算子资料格式、描述等错误更正;ffag输入校验判断修复 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !1252 merge ffa_md_modify into master 【update/bugfix】ffa/ffag算子资料格式、描述等错误更正;ffag输入校验判断修复 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次PR主要围绕FusedFloydAttention算子及其反向算子aclnnFusedFloydAttentionGrad,进行了接口重构、文档完善和测试适配以及校验的判断条件的更正。核心目标是统一并简化算子输入参数的命名规范,解决接口命名不一致(如key_0/value_0 vs key1/value1)导致的混淆问题,同时为新增的aclnnFusedFloydAttention算子补充完整的官方接口文档,并修正反向算子的文档错误和约束说明,为开发者提供准确、一致的开发指导。 修改方案涉及代码、文档和测试三个层面。在代码层面,对FusedFloydAttention算子进行了接口重构:移除了key_0/value_0参数,将原有的key_1/value_1重命名为key_2/value_2,并相应更新了算子定义、内核实现及测试用例中的参数传递顺序和命名。在文档层面,统一了所有文档中键值对参数的命名为key1/value1和key2/value2;新增了aclnnFusedFloydAttention算子的完整API文档;修正了aclnnFusedFloydAttentionGrad算子的产品支持、功能描述、参数约束(如N/M/K维度的对齐要求)和示例代码。此外,同步更新了测试代码以适配新的接口命名。同时将FusedFloydAttentionGrad中对于shape校验的判断条件取反,保证功能正常。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [issues 653](https://gitcode.com/cann/ops-transformer/issues/653) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> FusedFloydAttention 4个功能case通过 FusedFloydAttentionGrad 4个功能case通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> FusedFloydAttention:aclnnFusedFloydAttention.md、README.md、FFA算子设计文档.md FusedFloydAttentionGrad:aclnnFusedFloydAttentionGrad.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!12523 个月前
FusedFloydAttention适配ut新框架 Co-authored-by: caihualilili<liangfuzhan@h-partners.com> # message auto-generated for no-merge-commit merge: !5463 merge ffa_tiling_ut into master FusedFloydAttention适配ut新框架 Created-by: caihualilili Commit-by: caihualilili Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次PR主要是修改FusedFloydAttention的ut框架,适配当前仓库新框架并新增op_tiling用例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#2573](https://gitcode.com/cann/ops-transformer/issues/2573) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ![image.png](https://raw.gitcode.com/user-images/assets/7673863/ba6c9ffa-4155-45a6-a9ce-af1270379fd1/image.png 'image.png') ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!54637 天前
新增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

FusedFloydAttention

产品支持情况

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

功能说明

  • 算子功能:训练场景下,使用FloydAttention算法实现多维自注意力的计算。

  • 计算公式:

    注意力的正向计算公式如下:

    weights=Softmax(attenMask+scale∗(einsum(query,key1T)+einsum(query,key2T)))weights = Softmax(attenMask + scale*(einsum(query, key1^T) + einsum(query, key2^T)))

    attention_out=einsum(weights,value1)+einsum(weights,value2)attention\_out = einsum(weights, value1) + einsum(weights, value2)

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
query 输入 公式中的输入query。 BFLOAT16、FLOAT16 ND
key1 输入 公式中的输入key1。 BFLOAT16、FLOAT16 ND
value1 输入 公式中的输入value1。 BFLOAT16、FLOAT16 ND
attenMaskOptional 可选输入 公式中的atten_mask,表示注意力掩码,取值为1代表该位不参与计算(不生效),为0代表该位参与计算。 BOOL、UINT8 ND
scaleValue 可选属性
  • 公式中的scale,表示缩放系数,作为计算流中Muls的scalar值。
  • 默认值为1.0。
DOUBLE -
softmaxMaxOut 输出 Softmax计算的Max中间结果,用于反向计算。 FLOAT ND
softmaxSumOut 输出 Softmax计算的Sum中间结果,用于反向计算。 FLOAT ND
attentionOut 输出 公式中的attention_out。 BFLOAT16、FLOAT16 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需相同。

  • softmaxMax与softmaxSum shape需相同。

  • D只支持32/64/128。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_fused_floyd_attention 通过aclnnFusedFloydAttention接口方式调用FusedFloydAttention算子。