ops-transformer:基于 CANN 的 transformer 类大模型算子库项目

本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。

分支10Tags7
文件最后提交记录最后更新时间
添加 sub_pipline_support.yaml 工作流配置 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5072 merge master into master 添加 sub_pipline_support.yaml 工作流配置 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 添加 sub_pipline_support.yaml 工作流配置 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2314 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!507217 天前
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!17651 个月前
[FIA][mxfp8] update test Co-authored-by: shen_weiling<shenweiling@huawei.com> # message auto-generated for no-merge-commit merge: !6125 merge dev_0529 into master [FIA][mxfp8] update test Created-by: shen_weiling Commit-by: shen_weiling Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> mxfp8更新测试脚本 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2333 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 不涉及 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!61252 小时前
解除对ascend环境下面的op_common的依赖 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2216 merge test_ut_task into master 解除对ascend环境下面的op_common的依赖 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!22162 天前
补充动态图fallback符号索引逻辑 Co-authored-by: gitcode_lijd<lijiandong20@huawei.com> # message auto-generated for no-merge-commit merge: !6094 merge fix into master 补充动态图fallback符号索引逻辑 Created-by: gitcode_lijd Commit-by: gitcode_lijd Merged-by: cann-robot Description: ## 描述 补充GE动态图 fallback回调时寻找符号逻辑,之前遗漏了libopapi_transformer.so ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2760 # 代码检视报告 **项目名称**:ops-transformer PR#6094 检视报告 **检视模块**:common/include/fallback/fallback.h(完整绝对路径:/mnt/workspace/gitCode/gitcode_lijd/ops-transformer/common/include/fallback/fallback.h) **检视人**:Turing Team (AI Code Review) **检视日期**:2026-05-29 **检视模式**:PR 检视(变更范围仅覆盖 diff 部分) **代码侧别**:Host 侧(Tiling 侧) ## 🔍 检视概览 | 统计项 | 数值 | | ---- | ---- | | 检视条款总数 | 11 条 | | 通过条款 | 8 条 | | 需关注条款 | 2 条 | | 发现问题条款 | 0 条 | | 预存在问题(非PR引入) | 2 条 | **核心结论**:本次 PR 变更(补充动态图 fallback 符号索引逻辑)代码质量良好,新增代码严格遵循已有代码模式,空指针保护充分,LOG API 参数匹配正确。存在 2 处"需关注"级别问题(均为预存在模式的延续,非本次 PR 引入):dlopen 资源未显式释放、搜索链路无 dlclose 调用。此外发现 1 处预存在 bug(GetAclnnArrdByApiName 函数中 static 变量在循环内误用导致只搜索第一个库),建议单独修复。 ## 🔶 需关注问题详情 ### 问题ID:ISSUE-001 | 严重级别:MEDIUM(需关注) #### 🔬 假设检验过程 **代码段**:GetOpApiFuncAddr() 函数 — dlopen 资源管理 **假设**:H0: 该代码段的内存/资源管理是安全的 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | 1.2/5.2 | dlopen 获取的 3 个 handler(custOpApi、opApi、transformerOpApi)均未调用 dlclose 释放 | +40% | 40% | | 2 | 上下文防御缺失 | 1.2/5.2 | 全文件无任何 dlclose 调用,新增代码同样无释放逻辑 | +30% | 70% | **结论**:自信值 **70%** > 60%,**推翻原假设H0**,该代码段存在资源管理风险。 --- **关联规范条款**:SEC-1.2(保证内存安全)、SEC-5.2(资源泄露防护) **代码路径**:common/include/fallback/fallback.h:122,130,138(新增行 138-146) **问题类型**:资源泄露(dlopen 无 dlclose) **问题描述**:GetOpApiFuncAddr() 函数中通过 dlopen 获取的 3 个动态库句柄(custOpApiHandler、opApiHandler、transformerOpApiHandler)均以 static 变量存储,但从未调用 dlclose 释放。虽然这些库需要持续可用直到进程结束(动态图 fallback 场景),且进程退出时 OS 会回收资源,但缺少显式释放路径不符合 SEC-5.2 "资源申请和释放必须匹配" 的要求。本次 PR 新增的 transformerOpApiHandler 沿用了相同的模式。 **风险等级评估**: - 当前场景(进程级生命周期、无 dlclose 需求):风险可控,MED 级别 - 未来若需要支持库的热加载/卸载:风险升级,需补充 dlclose 逻辑 **是否为本次 PR 引入**:❌ 否,为预存在问题延续 #### 修改建议 **当前代码**(新增部分): ```cpp static auto transformerOpApiHandler = GetOpApiLibHandler(GetTransformerOpApiLibName()); if (transformerOpApiHandler != nullptr) { auto funcAddr = GetOpApiFuncAddrInLib(transformerOpApiHandler, GetTransformerOpApiLibName(), apiName); if (funcAddr != nullptr) { return funcAddr; } } ``` **建议方案**(可选,非紧急): 1. 短期:保持现状,在代码注释中说明设计意图(进程级生命周期,无需 dlclose) 2. 长期:如需支持库卸载,可引入 RAII 管理类封装 dlopen/dlclose **修改说明**:当前设计在动态图 fallback 场景下是合理的(库需持续可用),建议添加注释说明设计意图,而非立即修改。若未来需要库热加载功能,则需要补充 dlclose 和 handler 生命周期管理。 --- ### 问题ID:ISSUE-002 | 严重级别:MEDIUM(需关注)— 预存在 bug #### 🔬 假设检验过程 **代码段**:GetAclnnArrdByApiName() 函数(行105-119) **假设**:H0: 该代码段能正确搜索所有 aclnn 库 | 证据序号 | 证据类型 | 规范ID | 证据描述 | 分值增量 | 累计自信值 | |---------|---------|--------|---------|---------|-----------| | 1 | 规范违反 | TOPK-3 | static auto libHandler 在 for 循环内部声明,只初始化一次(首次迭代),后续迭代复用首次值 | +40% | 40% | | 2 | 函数调用链风险 | TOPK-3 | libHandler 始终为 libaclnn_ops_infer.so 的 handler,6个库中只有第一个被实际搜索 | +25% | 65% | **结论**:自信值 **65%** > 60%,**推翻原假设H0**,该代码段存在逻辑 bug。 --- **关联规范条款**:TOPK-3(生命周期内使用局部变量指针,避免野指针) **代码路径**:common/include/fallback/fallback.h:109 **问题类型**:static 变量在循环内误用导致逻辑错误 **问题描述**:GetAclnnArrdByApiName() 函数在 for 循环内部使用 static auto libHandler = GetOpApiLibHandler(libName.c_str()),由于 static 局部变量只初始化一次,libHandler 在首次迭代时绑定 libaclnn_ops_infer.so 的 handler,后续迭代中 libName 变化但 libHandler 不变,导致只搜索了第一个库。这不是本次 PR 引入的问题,但与新增的 fallback 搜索逻辑相关,可能影响 fallback 链路的完整性。 **是否为本次 PR 引入**:❌ 否,为预存在 bug #### 修改建议 **当前代码**: ```cpp inline void* GetAclnnArrdByApiName(const char *apiName) { vector<std:: string> libs = {"libaclnn_ops_infer.so", "libaclnn_ops_train.so", "libaclnn_math.so", "libaclnn_rand.so", "libaclnn_sparse.so", "libaclnn_fft.so"}; for (const auto &libName : libs) { static auto libHandler = GetOpApiLibHandler(libName.c_str()); // BUG: static 只初始化一次 if (libHandler != nullptr) { auto funcAddr = GetOpApiFuncAddrInLib(libHandler, libName.c_str(), apiName); if (funcAddr != nullptr) { return funcAddr; } } } ``` **修改后代码**: ```cpp inline void* GetAclnnArrdByApiName(const char *apiName) { vector<std::string> libs = {"libaclnn_ops_infer.so", "libaclnn_ops_train.so", "libaclnn_math.so", "libaclnn_rand.so", "libaclnn_sparse.so", "libaclnn_fft.so"}; for (const auto &libName : libs) { auto libHandler = GetOpApiLibHandler(libName.c_str()); // 移除 static,每次迭代重新获取 if (libHandler != nullptr) { auto funcAddr = GetOpApiFuncAddrInLib(libHandler, libName.c_str(), apiName); if (funcAddr != nullptr) { return funcAddr; } } } ``` **修改说明**:移除循环内的 static 关键字,确保每次迭代都能正确获取对应库的 handler。如果需要缓存 handler 避免重复 dlopen,应使用数组或 map 存储,而非在循环内使用 static。 --- ## ✅ 通过条款汇总 | 条款编号 | 条款标题 | 检视结论 | 关键证据 | |---------|---------|---------|---------| | SEC-3.5 | 指针使用前判空 | PASS | transformerOpApiHandlerfuncAddr 在使用前均判空 | | SEC-5.1 | 资源申请后判断是否成功 | PASS | dlopen/dlsym 返回值在 GetOpApiLibHandler/GetOpApiFuncAddrInLib 内部及调用处均判空 | | SEC-10.5 | 接口变更考虑兼容性 | PASS | 新增搜索层在已有搜索失败后执行,不阻断已有成功路径;为有意功能增强 | | SEC-11.2 | LOG API参数数量与占位符匹配 | PASS | 新日志 5个 %s 对应 5个 const char* 参数,完全匹配;修复了原代码 GetOpApiLibName() 重复调用bug | | SEC-11.3 | LOG API参数类型与格式化说明符匹配 | PASS | 所有参数均为 const char* 类型,对应 %s 说明符 | | TOPK-1 | 必须校验函数返回值 | PASS | GetTransformerOpApiLibName()GetOpApiLibHandler()GetOpApiFuncAddrInLib() 返回值均在使用前校验 | | TOPK-12 | 宏定义中临时变量命名 | PASS | 本次 PR 未新增宏内临时变量,仅修改日志格式字符串 | | TOPK-13 | dlopen管理的so禁用thread_local | PASS | 使用 static 而非 thread_local,符合要求;当前无 dlclose 操作,竞态不存在 | ## 📋 检视维度专项总结 ### 1. 安全编码维度 - **内存泄漏**:dlopen handler 无 dlclose(MED,预存在延续,进程级场景可接受) - **空指针风险**:充分保护,所有指针使用前判空(PASS) - **资源管理**:dlopen/dlsym 返回值均校验,但缺少释放路径(MED,预存在延续) ### 2. API使用维度 - **dlopen/dlsym 使用**:API 参数正确,RTLD_LAZY 模式合理(PASS) - **dlopen 错误处理**:失败时记录 dlerror() 日志并返回 nullptr(PASS) ### 3. 性能优化维度 - **static 变量初始化顺序**:transformerOpApiHandlercustOpApiHandleropApiHandler 之后初始化,符合搜索优先级(cust > op > transformer > aclnn) - **库加载顺序**:新增 transformer 库在 opApi 之后搜索,合理——自定义库优先,通用库次之,transformer 专用库第三 - **潜在性能影响**:新增 dlopen 调用仅在首次访问时执行(static 初始化),后续调用直接使用缓存的 handler,无性能损失 ### 4. 代码规范维度 - **命名规范**:GetTransformerOpApiLibNameGetOpApiLibName/GetCustOpApiLibName 命名风格一致(PASS) - **日志格式一致性**:新日志格式与已有格式一致,修复了原日志的参数重复 bug(PASS) - **代码风格一致性**:新增代码块的缩进、花括号风格与已有 opApiHandler 搜索块完全一致(PASS) ### 5. 逻辑正确性维度 - **搜索顺序**:custOpApi → opApi → transformerOpApi → aclnn,优先级合理(PASS) - **fallback 链路完整性**:新增 transformer 层在已有搜索失败后执行,不阻断已有路径(PASS) - **遗漏场景**:GetOpApiFuncAddr 函数覆盖了所有库搜索场景;EXEC_OPAPI_CMD 宏中的日志更新包含了新增库名(PASS) - **⚠️ 预存在 bug**:GetAclnnArrdByApiNamestatic auto libHandler 在循环内误用,导致 aclnn fallback 只搜索第一个库(MED,非本次 PR 引入,建议单独修复) ### 6. 风险点维度 - **死循环**:不存在(PASS) - **竞态条件**:static 初始化线程安全(C++11 magic statics),无 dlclose 操作所以无 handler 失效竞态(PASS) - **符号冲突**:搜索顺序确保优先级,custOpApi 中找到的符号不会被 transformer 库覆盖(PASS) - **dlopen 线程安全**:dlopen 本身是线程安全的(POSIX 规定),static 初始化也是线程安全的(PASS) ## 报告生成时间 2026-05-29 ## 报告状态 已完成检视,2处需关注问题(均为预存在延续),1处预存在bug建议单独修复 See merge request: cann/ops-transformer!609412 小时前
新增 inplace_fused_causal_conv1d Co-authored-by: wkyan<yanwenkai@huawei.com> # message auto-generated for no-merge-commit merge: !5928 merge 0525_FCC into master 新增 inplace_fused_causal_conv1d Created-by: xiapengcheng5 Commit-by: wkyan Merged-by: cann-robot Description: ## 描述 新增 inplace_fused_causal_conv1d ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2712 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59281 天前
解除对ascend环境下面的op_common的依赖 Co-authored-by: hblnb<huangbolin3@huawei.com> # message auto-generated for no-merge-commit merge: !2216 merge test_ut_task into master 解除对ascend环境下面的op_common的依赖 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!22162 天前
compressor算子修改参数数据类型 Co-authored-by: 莫允扬<moyunyang@huawei.com> Co-authored-by: guigui_jzh<jinzhonghao@huawei.com> # message auto-generated for no-merge-commit merge: !5980 merge cpfp32 into master compressor算子修改参数数据类型 Created-by: myy268 Commit-by: 莫允扬;guigui_jzh Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> compressor算子,normweight、ropesin、ropecos参数数据类型从bf16/fp16更改为float32。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [x] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59801 天前
fix: aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 Co-authored-by: Developer user<jialimin1@huawei.com> # message auto-generated for no-merge-commit merge: !5918 merge master into master fix: aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 Created-by: jialimin1 Commit-by: Developer user Merged-by: cann-robot Description: ## 描述 1、修改aclrtMemcpy host to host for schedule_context, 修正示例代码内存拷贝类型错误 2、修改日志打印内容 ## 关联的Issue Issue #2640 Issue #2641 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 ``` 编译包验证: [2026-05-26 03:18:07] ./uninstall.sh [2026-05-26 03:18:07] ./upgrade.sh [2026-05-26 03:18:07] CRC: 1888598674 [2026-05-26 03:18:07] SHA256: e5e52d301ebc0a74b5f34866bf194936a5fc441b6658e781ba1bc761fd8fbde1 [2026-05-26 03:18:07] Skipping md5sum at user request [2026-05-26 03:18:07] [2026-05-26 03:18:07] Self-extractable archive "cann-ops-transformer-custom_linux-x86_64.run" successfully created. 样例验证: [2026-05-26 03:21:42] Start compile and run example file: ../ffn/ffn_worker_scheduler/examples/test_aclnn_inplace_ffn_worker_scheduler.cpp [2026-05-26 03:21:49] Init ffn success, token_info_buf_size=192,token_data_buf_size= 1024. [2026-05-26 03:21:49] layer_ids_buf_size = 8. [2026-05-26 03:21:49] session_ids_buf_size = 8. [2026-05-26 03:21:49] micro_batch_ids_buf_size = 8. [2026-05-26 03:21:49] expert_ids_buf_size = 80. [2026-05-26 03:21:49] layer_ids[0] is: 55 [2026-05-26 03:21:49] layer_ids[1] is: 55 [2026-05-26 03:21:49] session_ids[0] is: 0 [2026-05-26 03:21:49] session_ids[1] is: 1 [2026-05-26 03:21:49] micro_batch_ids[0] is: 0 [2026-05-26 03:21:49] micro_batch_ids[1] is: 0 [2026-05-26 03:21:49] expert_ids[0] is: 0 [2026-05-26 03:21:49] expert_ids[1] is: 1 [2026-05-26 03:21:49] expert_ids[2] is: 2 [2026-05-26 03:21:49] expert_ids[3] is: 3 [2026-05-26 03:21:49] expert_ids[4] is: 4 [2026-05-26 03:21:49] expert_ids[5] is: 5 [2026-05-26 03:21:49] expert_ids[6] is: 6 [2026-05-26 03:21:49] expert_ids[7] is: 7 [2026-05-26 03:21:49] expert_ids[8] is: 8 [2026-05-26 03:21:49] expert_ids[9] is: 9 [2026-05-26 03:21:49] expert_ids[10] is: 0 [2026-05-26 03:21:49] expert_ids[11] is: 1 [2026-05-26 03:21:49] expert_ids[12] is: 2 [2026-05-26 03:21:49] expert_ids[13] is: 3 [2026-05-26 03:21:49] expert_ids[14] is: 4 [2026-05-26 03:21:49] expert_ids[15] is: 5 [2026-05-26 03:21:49] expert_ids[16] is: 6 [2026-05-26 03:21:49] expert_ids[17] is: 7 [2026-05-26 03:21:49] expert_ids[18] is: 8 [2026-05-26 03:21:49] expert_ids[19] is: 9 [2026-05-26 03:21:50] run test_aclnn_ffn_worker_scheduler, execute samples success [2026-05-26 03:21:50] Example completed successfully ``` <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x]? Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59183 天前
GMM mxA8W4性能优化-scale通过vec实现dn2nz Co-authored-by: shirui17@huawei.com<shirui17@huawei.com> # message auto-generated for no-merge-commit merge: !5741 merge GMM_A16W4 into master GMM mxA8W4性能优化-scale通过vec实现dn2nz Created-by: shi-rui Commit-by: shirui17@huawei.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 优化 grouped_matmul MxA8W4 场景的 weight quant basic block 处理逻辑。 主要变更: - 调整 MxA8W4 场景下 kaL1 的计算公式,根据 mL1/nL1/kbL1 和 A 矩阵 L1 预留空间动态计算 kaL1Size,提升 A 矩阵 L1 载入效率。 - 调整 cube 侧 L1 内存分配,重新划分 Weight/Bias/Scale/A 的 L1 buffer 空间,并将 A L1 预留空间调整为 80KB。 - 优化 MxA8W4 scale 处理流程,使用vec处理Dn2nz的过程。 新增并整理 MxA8W4 scale transId 常量定义。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2765 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 冒烟测试,200+case泛化验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [x] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!574111 小时前
清理cleancode Co-authored-by: zzg_code<zengzhiguo1@huawei.com> # message auto-generated for no-merge-commit merge: !6046 merge newkfc into master 清理cleancode Created-by: zzg_code Commit-by: zzg_code Merged-by: cann-robot Description: ## 描述 清理cleancode ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2735 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!604613 小时前
MhcPostBackward matmul修改 Co-authored-by: qinqiuyue<qinqiuyue@huawei.com> # message auto-generated for no-merge-commit merge: !5931 merge mhc_5_22 into master MhcPostBackward matmul修改 Created-by: gcw_2XKemcvz Commit-by: qinqiuyue Merged-by: cann-robot Description: ## 描述 修改MhcPostBackward Matmul部分kernel实现 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2727 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59311 天前
MoeInitRoutingV3算子新增fp8 perblock量化 Co-authored-by: tujun6<tujun6@huawei.com> # message auto-generated for no-merge-commit merge: !5506 merge mirv3_fp8_perblock_tj into master MoeInitRoutingV3算子新增fp8 perblock量化 Created-by: tujun6 Commit-by: t00620168;tujun6 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> MoeInitRoutingV3算子支持对bf16/fp16输入的x,新增fp8 perblock量化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2715 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 算子泛化白盒验证,二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> moe/moe_init_routing_v3/README.md moe/moe_init_routing_v3/docs/aclnnMoeInitRoutingV3.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!550613 小时前
fix: 修正文档中 transformer 拼写错误问题 Co-authored-by: baidu_41609401<1294651225@qq.com> # message auto-generated for no-merge-commit merge: !5950 merge master into master fix: 修正文档中 transformer 拼写错误问题 Created-by: baidu_41609401 Commit-by: baidu_41609401 Merged-by: cann-robot Description: ## 描述 更新文档中transformer的拼写错误 | 文档 | 行数 | 修改前 | 修改后 | |--|--|--|--| | posembedding/norm_rope_concat/docs/aclnnNormRopeConcat.md | 18 | transfomer | transformer | | posembedding/norm_rope_concat/README.md | 16 | transfomer | transformer | | posembedding/norm_rope_concat_grad/docs/aclnnNormRopeConcatBackward.md | 16 | transfomer | transformer | | posembedding/norm_rope_concat_grad/README.md | 16 | transfomer | transformer | | docs/zh/op_api_list.md | 157 | transfomer | transformer | | docs/zh/op_api_list.md | 158 | transfomer | transformer | | docs/zh/install/dir_structure.md | 14 | transfomer | transformer | ## 文档更新 更新的文档如下: posembedding/norm_rope_concat/docs/aclnnNormRopeConcat.md posembedding/norm_rope_concat/README.md posembedding/norm_rope_concat_grad/docs/aclnnNormRopeConcatBackward.md posembedding/norm_rope_concat_grad/README.md docs/zh/op_api_list.md docs/zh/install/dir_structure.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59502 天前
添加aclnn头文件弃用警告功能 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5474 merge master into master 添加aclnn头文件弃用警告功能 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 在算子构建安装流程中,为 Level2 目录下的头文件自动添加 #warning 废弃告警,提示用户迁移到 include/aclnnop 路径下的同名头文件。 改动原因 Level2 头文件计划废弃,需要在编译时通过 #warning 提前通知用户切换到新的头文件路径,避免后续版本移除时出现编译失败。 改动方法 新增脚本 scripts/util/add_deprecation_warning.py:解析头文件,定位最后一个 #include 行,在其后插入 #warning "This file is scheduled to be deprecated. Please use the file with the same name under include/aclnnop in the CANN package installation path instead." 修改 cmake/opbuild.cmake:在 Level2 头文件安装完成后,通过 install(CODE ...) 调用上述 Python 脚本,对已安装的头文件执行告警注入 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2516 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!547410 天前
refactor: remove dead S1 outer split code in flash_attn arch35 tiling and add UT Co-authored-by: PerrySkywalerk<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !5947 merge fix_fa_ut into master refactor: remove dead S1 outer split code in flash_attn arch35 tiling and add UT Created-by: PerrySkywalker Commit-by: PerrySkywalerk Merged-by: cann-robot Description: ## 描述 清理 flash_attn arch35 tiling 中未使用的 S1 外切分代码,新增 arch35 tiling UT 用例提升测试覆盖率。 ## 改动 - 移除 flash_attn_tiling.cpp/.h 中未使用的 GetWinLeftsRightUp、FixParamWithRowInvalid、CheckS1OutSplit、SplitOutSeq 方法 - 移除未使用的成员变量 enableS1OutSplit - 简化 SplitPolicy,移除死代码 S1 outer split 分支 - 新增 arch35 tiling UT 用例(PA_BBND 正常场景、dtype 不一致、headnum 非法、layout 非法、format 非法等 13 条) - 在 test_config.yaml 中启用 flash_attn UT ## 关联的Issue #2693 ## 测试 - UT 新增用例覆盖 arch35 tiling 校验路径 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!59471 天前
megamoe torch_extension接口修改入参weight_type默认值 Co-authored-by: weixin_49300047<lijianhua56@huawei.com> # message auto-generated for no-merge-commit merge: !5894 merge fix_torch into master megamoe torch_extension接口修改入参weight_type默认值 Created-by: weixin_49300047 Commit-by: weixin_49300047 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修改接口入参的默认值,保证当用户不传参的情况下,weight_type默认为None ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-transformer/issues/2664 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!58944 小时前
更新license Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge lic into master 更新license Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新license <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!5685 个月前
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!35781 个月前
通过gitmodules引入third_party/catlass Co-authored-by: longjihui<longjihui@huawei.com> # message auto-generated for no-merge-commit merge: !1765 merge master into master 通过gitmodules引入third_party/catlass Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 新增.gitmodules文件,引入第三方库catlass,分支为v1.3.1-notla ## 关联的Issue 不涉及 ## 测试 仅引入三方仓,使用方式暂不确定,无需测试 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:新引入三方仓catlass See merge request: cann/ops-transformer!17651 个月前
增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !3578 merge master_precommit into master 增加pre-commit配置,commit代码时完成代码格式化及OAT扫描 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!35781 个月前
Transformer 更新Latest News Co-authored-by: lidongsheng<lidongsheng43@huawei.com> # message auto-generated for no-merge-commit merge: !771 merge docs into master Transformer 更新Latest News Created-by: qq_46353993 Commit-by: lidongsheng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!7714 个月前
gtest add scope Co-authored-by: sunhao<sunhao104@huawei.com> # message auto-generated for no-merge-commit merge: !5819 merge shape_err_msg_0523 into master gtest add scope Created-by: Bugslover Commit-by: sunhao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> gtest构建时 add scope ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#2617](https://gitcode.com/cann/ops-transformer/issues/2617) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [x] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!58196 天前
docs: 补充生态算子精度标准引用 Co-authored-by: chaotang233<tangchao47@hisilicon.com> # message auto-generated for no-merge-commit merge: !5006 merge master into master docs: 补充生态算子精度标准引用 Created-by: chaotang233 Commit-by: chaotang233 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加精度标准的索引,确保仓可以引用到精度标准 会议纪要:https://etherpad-cann.meeting.osinfra.cn/p/TSC ![纪要.png](https://raw.gitcode.com/user-images/assets/7673863/56e07fe6-5e88-44fe-8e4d-ba00b38e15ba/纪要.png '纪要.png') ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->CONTRIBUTING.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!500621 天前
init 7 个月前
规范化OAT.xml中许可证声明形式 Co-authored-by: chenyx2012<975102023@qq.com> # message auto-generated for no-merge-commit merge: !3571 merge master into master 规范化OAT.xml中许可证声明形式 Created-by: chenyx_2012 Commit-by: chenyx2012 Merged-by: cann-robot Description: ## 描述 规范化OAT.xml中许可证声明形式 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!35711 个月前
新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5187 merge master into master 新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 新增本地编译FAQ&&新增ascend950算子列表&&quick_op_invocation整改 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2350 https://gitcode.com/cann/ops-transformer/issues/1683 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!518714 天前
doc Tools工具扫描问题修改 Co-authored-by: gitee-yanglulu<yanglulul@h-partners.com> # message auto-generated for no-merge-commit merge: !3432 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!34322 个月前
支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Co-authored-by: lidongsheng<lidongsheng43@huawei.com> Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2170 merge 910_lds into master 支持按模板参数编译算子kernel、支持编译入参调试异常与调优参数 Created-by: qq_46353993 Commit-by: 吴剑飞;lidongsheng Merged-by: cann-robot Description: ## 描述 本次修改支持用户通过build.sh的编译入口传入模板参数--kernel_template_input后按tilingkey编译、传入--bisheng_flags进行调试异常 ## 关联的Issue [支持按模板参数指定编译kernel](https://gitcode.com/cann/ops-transformer/issues/1036) [支持编译入参新增调试异常和调优参数](https://gitcode.com/cann/ops-transformer/issues/1044) ## 测试 二级冒烟、指定模板参数编译并执行测试用例 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!21702 个月前
更新protobuf版本 Co-authored-by: PerrySkywalker<wangmingkang1@huawei.com> # message auto-generated for no-merge-commit merge: !522 merge prof into master 更新protobuf版本 Created-by: PerrySkywalker Commit-by: PerrySkywalker Merged-by: cann-robot Description: ## 描述 更新protobuf版本 ## 关联的Issue 关联Issue [#316](https://gitcode.com/cann/ops-transformer/issues/316) <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-transformer!5225 个月前
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 天前
修复GMMFR算子统计不到UT覆盖率的问题 Co-authored-by: zhangzhizhuo<zhangzhizhuo1@huawei.com> # message auto-generated for no-merge-commit merge: !4938 merge fixgmmfrut into master 修复GMMFR算子统计不到UT覆盖率的问题 Created-by: zhangzhizhuo Commit-by: zhangzhizhuo Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 改动原因:目前算子UT覆盖率统计,统计不到GMMFinalizerouting算子,修改配置文件以统计到覆盖率 方法:修改相关配置文件。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联issue [#2400](https://gitcode.com/cann/ops-transformer/issues/2400) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> na ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新example的命名。 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!493812 小时前
移除gawk依赖,使用shell内置命令替代 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4704 merge master into master 移除gawk依赖,使用shell内置命令替代 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 移除gawk依赖,使用shell内置命令替代 资料描述错误修改 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2119 https://gitcode.com/cann/ops-transformer/issues/2049 https://gitcode.com/cann/ops-transformer/issues/2149 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!470422 天前
前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !4532 merge master into master 前置依赖资料修改&&build.sh --help提示&&requirement.txt明确依赖版本 Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 1、手动安装,最小化环境依赖不清晰 资料调整 2、SOC 参数错误应更新 build.sh 支持列表并完善文档说明 3、requirement.txt Python 依赖冲突应显式声明版本约束与缺失依赖 ## 关联的Issue https://gitcode.com/cann/ops-transformer/issues/2018 https://gitcode.com/cann/ops-transformer/issues/2017 https://gitcode.com/cann/ops-transformer/issues/2016 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-transformer!45321 个月前
chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Co-authored-by: huang-chuhong<huangchuhong1@h-partners.com> # message auto-generated for no-merge-commit merge: !5895 merge chore/version-upgrade-9.1.0 into master chore: upgrade ops-transformer version to 9.1.0 and update opbase tag Created-by: huang-chuhong Commit-by: huang-chuhong Merged-by: cann-robot Description: ## 描述 ops-transformer 版本升级至 9.1.0,同步更新 opbase 依赖 tag,移除不再需要的 asc-tools 构建依赖。 ## 改动 - version.cmake: 版本号从 9.0.0 升级至 9.1.0 - version.cmake: 移除 asc-tools >=8.5 构建依赖 - cmake/third_party/opbase.cmake: opbase tag ID 从 6604d3c 更新为 ee5334d ## 关联的Issue #2662 https://gitcode.com/cann/ops-transformer/issues/2599 ## 测试 - bash build.sh --pkg --jit 编译打包通过 ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [ ] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [x] ❓ 其他,请描述:版本升级 See merge request: cann/ops-transformer!58953 天前
check_compile_version Co-authored-by: 吴剑飞<wujianfei15@huawei.com> # message auto-generated for no-merge-commit merge: !2085 merge check_version into master check_compile_version Created-by: hid81635372 Commit-by: 吴剑飞 Merged-by: cann-robot Description: ## 描述 工程上支持在编译时对子包版本进行校验 ## 关联的Issue https://gitcode.com/cann/ops-transformer/pull/2085 ## 测试 功能上可以在子包版本低于构建依赖时进行告警,RDV已通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 工程能力增加编译时版本校验功能 See merge request: cann/ops-transformer!20852 个月前

ops-transformer

🔥Latest News

🚀概述

ops-transformer是CANN (Compute Architecture for Neural Networks)算子库中提供transformer类大模型计算的进阶算子库,包括attention类、moe类、mc2类等,覆盖各类attention、MoE计算、通算融合等场景,算子库在架构图中的位置如下。

架构图

📌版本配套

本项目源码会跟随CANN软件版本发布,关于CANN软件版本与本项目标签的对应关系请参阅release仓库中的相应版本说明 。 请注意,为确保您的源码定制开发顺利进行,请选择配套的CANN版本与Gitcode标签源码,使用master分支可能存在版本不匹配的风险。

🛠️环境准备

环境部署是体验本项目能力的前提,请先完成NPU驱动、CANN包安装等,确保环境正常。

⬇️源码下载

环境准备好后,下载与CANN版本配套的分支源码,命令如下,${tag_version}替换为分支标签名。

说明:若环境中已存在配套分支源码,可跳过本步骤,例如CANNLab默认已提供最新商发版CANN对应的源码 。

git clone -b ${tag_version} https://gitcode.com/cann/ops-transformer.git

📖学习教程

  • 快速入门:从零开始快速体验项目核心基础能力,涵盖源码编译、算子调用、开发与调试等操作。
  • 进阶教程:如需深入了解项目编译部署、算子调用、开发、调试调优等能力,请查阅文档中心获取详细指引。

💬相关信息


PS:本项目功能和文档正在持续更新和完善中,欢迎您关注最新版本。

  • 问题反馈:通过GitCode【Issues】提交问题。
  • 社区互动:通过GitCode【讨论】参与交流。
  • 技术专栏:通过GitCode【Wiki】获取技术文章,如系列化教程、优秀实践等。

项目介绍

本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

C++88.94%
C4.4%
Python4.17%
CMake2.11%
Shell0.37%