文件最后提交记录最后更新时间
修复agent扫描文档问题 Co-authored-by: qzzzy1<qiziyu2@huawei.com> # message auto-generated for no-merge-commit merge: !4405 merge master into master 修复agent扫描文档问题 Created-by: qzzzy1 Commit-by: qzzzy1 Merged-by: cann-robot Description: ## 描述 修复agent扫描出来的文档问题 ## 关联的Issue 关联issue1958 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!44051 个月前
优化mc2下部分注释内容 Co-authored-by: lidongsheng<lidongsheng43@huawei.com> # message auto-generated for no-merge-commit merge: !2111 merge else into master 优化mc2下部分注释内容 Created-by: qq_46353993 Commit-by: lidongsheng Merged-by: cann-robot Description: ## 描述 mc2目录下代码注释中存在todo等字样,需要进行删除处理。 ## 关联的Issue [优化MC2目录下注释](https://gitcode.com/cann/ops-transformer/issues/966) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-transformer!21112 个月前
【MC2】修改mc2的aclnninner调用方式 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3660 merge master_inner into master 【MC2】修改mc2的aclnninner调用方式 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 【MC2】修改mc2的aclnninner调用方式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!36601 个月前
将mc2下的算子中gen_task包含3-8包编译部分的内容删除 Co-authored-by: hid81635372<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2793 merge gen_task into master 将mc2下的算子中gen_task包含3-8包编译部分的内容删除 Created-by: hid81635372 Commit-by: hid81635372 Merged-by: cann-robot Description: ## 描述 将gen_task中废弃的3-8包编译部分内容删除 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1477 ## 测试 回黄编译transformer包通过,编译legacy包通过,产物检查无异常,MC2的A2、A3、A5二级冒烟已过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!27932 个月前
[MC2] tiling代码芯片隔离 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2878 merge tiling_soc_iso into master [MC2] tiling代码芯片隔离 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 对MC2的tiling编译进行芯片隔离,减少编译时间。在编包时先根据soc找到对应的arch,然后编译对应arch文件夹下面的cpp,其他arch文件夹不会编译 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/1692 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!28781 个月前
mc2算子op_kernel代码文件代际隔离 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !1830 merge agmv2_csv into master mc2算子op_kernel代码文件代际隔离 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!183010 天前
修改mc2目录下的arch32为arch22 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !4314 merge change_A2A3_arch into master 修改mc2目录下的arch32为arch22 Created-by: hblnb Commit-by: hblnb Merged-by: cann-robot Description: ## 描述 修改mc2目录下的arch32为arch22 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!43141 个月前
Update AttentionToFFN/FFNToAttention License Co-authored-by: z1017i<zengzhe4@huawei.com> # message auto-generated for no-merge-commit merge: !943 merge master_0122 into master Update AttentionToFFN/FFNToAttention License Created-by: z1017i Commit-by: z1017i Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!9434 个月前
doc Tools扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !3415 merge master into master doc Tools扫描问题修改 Created-by: gitee-yanglulu Commit-by: gitee-yanglulu Merged-by: cann-robot Description: doc Tools扫描问题修改 See merge request: cann/ops-transformer!34152 个月前
README.md

FFNToAttention

产品支持情况

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

功能说明

  • 算子功能:将FFN节点上的数据发往Attention节点。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 本卡发送的token数据,2D Tensor,shape为 (Y, H)(H=hidden size)。 FLOAT16、BFLOAT16 ND
sessionIds 输入 每个token的Attention Worker节点索引,1D Tensor,shape为 (Y, )sessionIds取值区间为[0, attnRankNum-1] INT32 ND
microBatchIds 输入 每个token的microBatch索引,1D Tensor,shape为 (Y, ),microBatchIds取值区间为[0, MircoBatchNum-1] INT32 ND
tokenIds 输入 每个token在microBatch中的token索引,1D Tensor,shape为 (Y, ),tokenIds取值区间为[0, Bs-1] INT32 ND
expertOffsets 输入 每个token在tokenInfoTableShape中PerTokenExpertNum的索引,1D Tensor,shape为 (Y, ),expertOffsets取值区间为[0, ExpertNumPerToken-1]。 INT32 ND
actualTokenNum 输入 本卡发送的实际token总数,1D Tensor,shape为 (1, ),actualTokenNum的取值为[0, Y]。 INT64 ND
attnRankTableOptional 可选输入 映射每一个Attention Worker对应的卡Id。
Attention Worker必须从0卡开始连续部署;
若输入空指针,采用默认策略:每张卡的Id作为对应Attention Worker的Id,取值区间为[0, attnRankNum-1]。
INT32 ND(支持非连续Tensor)
group 属性 通信域名称(专家并行),字符串长度[1, 128)。 STRING -
worldSize 属性 通信域大小:取值区间[2, 768]。 INT64 -
tokenInfoTableShape 属性 Token信息列表大小,包含microBatch的大小(MircoBatchNum)、BatchSize大小(Bs)、以及每个Token对应的Expert数量(ExpertNumPerToken)。 INT32 -
tokenDataShape 属性 Token数据列表大小,包含microBatch的大小(MircoBatchNum)、BatchSize大小(Bs)、每个Token对应的Expert数量(ExpertNumPerToken)、以及token和scale长度(HS)。 INT32 -

约束说明

  • 调用算子过程中使用的groupworldSizetokenInfoTableShapetokenDataShape参数及HCCL_BUFFSIZE取值所有卡需保持一致,网络中不同层中也需保持一致。

  • 参数说明里shape格式说明:

    • Y:表示本卡需要分发的最大token数量。
    • BS:示各Attention节点上的发送token数,取值范围为0 < BS ≤ 512。
    • H:表示hidden size隐藏层大小,取值范围为1024 ≤ H ≤ 8192。
    • HS:表示hidden与scale 隐藏层大小,取值范围为1152 ≤ HS ≤ 8320。
    • ffnRankNum:表示选取ffnRankNum个卡作为FFnWorker,取值范围为0 < ffnRankNum < worldSize
    • attnRankNum:表示选取attnRankNum个卡作为AttnWorker,取值范围为0 < attnRankNum < worldSize
    • sharedExpertNum:表示共享专家数量(一个共享专家可以复制部署到多个ffnRank卡上),取值范围为0 ≤ sharedExpertNum ≤ 4。
  • 通信域使用约束:

    • FFNToAttention算子的通信域中不允许有其他算子。
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:

    • 该场景下单卡包含双DIE(简称为“晶粒”或“裸片”),因此参数说明里的“本卡”均表示单DIE。

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_ffn_to_attention.cpp 通过aclnnFFNToAttention接口方式调用FFNToAttention算子。