Pull Request已成功合入, 合并人@CANN-robot
(感谢 liuyufan 的贡献)以下是根据您提交的修改文件推荐的Reviewer和Committer序列,需各模块评审通过后方可合入
| Module List | Reviewers | Committers |
|---|---|---|
| sig-ops-nn | zhou-qilong, fanqirui, liu-wei, chaotang233, zhangyuxiang0119 | chenqi317, liubo75, crystalhu, tangweiwei2 |


🔵 source code change are detected, tasks labels is removed in this pull request!


compile


问题/功能描述
本次PR主要包含两项构建系统的优化与修复。第一,统一并简化了构建脚本中编译器相关的头文件与库文件路径配置,解决了Graph模式示例编译时的链接错误,提升了构建系统的健壮性和兼容性。第二,增加了对特定示例算子(add_example 和 add_example_aicpu)的编译支持,修复了当用户指定编译这些算子时,CMake脚本无法自动包含其源码目录的问题,确保了构建流程的完整性。
修改方案描述
修改方案分为两部分。首先,将多个编译器相关的路径从${ASCEND_HOME_PATH}/compiler/统一指向${ASCEND_HOME_PATH}/,并在Graph模式示例的编译命令中增加了通用头文件路径引用和-lge_compiler库的链接。其次,在CMake宏中增加了对特定示例算子名称的条件判断,以自动包含examples子目录,并在Python依赖解析脚本中预先将这两个算子加入列表,确保依赖分析逻辑正确。


代码逻辑和结构: 在OpDependenciesParser.__init__方法中,将self.all_ops的初始化值从空列表[]修改为包含两个示例算子名称["add_example", "add_example_aicpu"]的列表。这一改动引入了硬编码的算子名称,与代码的整体逻辑和设计意图不符。代码的主要功能是从外部配置文件ops_config.txt中解析算子及其依赖关系,self.all_ops列表应动态地从配置文件中加载所有算子,而不是预先定义一部分。这种硬编码方式破坏了代码的通用性和可维护性,可能导致以下问题:1. 如果配置文件中不存在这两个算子,self.all_ops中将包含无效条目。2. 如果后续需要处理其他算子集,此硬编码列表会成为干扰项。3. 在find_all_dependency方法中,会检查算子是否在self.all_ops中,硬编码的条目可能导致本应报错的无效算子被错误地接受。
问题类型: 代码逻辑和结构
文件路径: scripts/util/dependency_parser.py
行号: 52
问题代码:
self.all_ops = ["add_example", "add_example_aicpu"]
修改建议:
应恢复`self.all_ops`为空列表`[]`的初始化方式。代码的核心逻辑`parse_dependency`方法会通过读取`ops_config.txt`文件,在`parse_line`方法中(第85行)将解析出的算子(`op_type`)动态添加到`self.all_ops`列表中。这是正确且必要的做法,确保了`self.all_ops`的内容完全由外部配置文件决定,增强了代码的灵活性和可配置性。
此评论由代码审查工具自动生成


🔵 ops-nn pipeline is running. Please wait a moment... (Link 1708)
🔵 Already succeed task list is: [Anti_Virus], will not be build again this time !


| Check Name | Build Result | Log Report | Package Link |
|---|---|---|---|
| CI_Ascend_Ops-Nn_Compile | ✅ SUCCESS | #1708 | >>> |
| check-commit-message | ✅ SUCCESS | >>> | |
| download-business-code | ✅ SUCCESS | >>> | |
| Compile_Ascend_X86 | ✅ SUCCESS | >>> | >>> |
| Compile_Ascend_ARM | ✅ SUCCESS | >>> | >>> |
| Compile_Ascend_ARM-single | ✅ SUCCESS | >>> | >>> |
| Check_pr | ✅ SUCCESS | >>> | |
| UT_Test_ophost | ✅ SUCCESS | >>> | |
| UT_Test_opapi | ✅ SUCCESS | >>> | |
| UT_Test_kernel | ✅ SUCCESS | >>> | |
| Smoke_Test_A900 | ✅ SUCCESS | >>> |


/lgtm


描述
支持examples文件夹下样例算子的编译与运行,修复geir的run example脚本
关联的Issue
关联Issue #245
关联Issue #226
测试
文档更新
类型标签