| adapt graph mc2 a5 aicpu launch
Co-authored-by: jiangxinyu3<jiangxinyu3@hisilicon.com>
# message auto-generated for no-merge-commit merge:
!5091 merge graph into master
adapt graph mc2 a5 aicpu launch
Created-by: jiangxinyu3
Commit-by: jiangxinyu3
Merged-by: cann-robot
Description: ## 描述
<!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->
adapt graph mc2 a5 aicpu launch
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。-->
[Requirement|需求建议]: MC2 950架构aicpu的场景需要适配静态图
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [ ] 🐛 Bug 修复
- [x] ✨ 新特性
- [ ] ⚡ 性能优化
- [ ] ♻️ 重构
- [ ] 🧪 测试
- [ ] 📦 构建/CI
- [ ] 🔧 配置变更
- [ ] 📝 文档更新
- [ ] ⬆️ 依赖升级
- [ ] 🔒 安全修复
- [ ] 🧹 代码清理
- [ ] ❓ 其他,请描述:
# 代码检视报告
**项目名称**:ops-transformer
**检视模块**:PR #5091 - merge 'graph' into 'master'
**检视人**:AI Code Reviewer
**检视日期**:2026-05-18
---
## 🔍 检视概览
| 统计项 | 数值 |
| ---- | ---- |
| 检视条款总数 | 10 条 |
| 通过条款 | 8 条 |
| 不适用条款 | 2 条 |
| 发现问题总数 | 0 个 |
**核心结论**:本次 PR 变更代码安全合规性良好,未发现安全编码问题。
---
## 📋 变更文件清单
| 文件路径 | 变更类型 | 代码侧别 |
|---------|---------|---------|
| mc2/common/op_graph/mc2_gen_task_ops_utils.cpp | 修改 | Tiling/Host |
| mc2/common/op_graph/mc2_moe_gen_task_ops_utils.cpp | 修改 | Tiling/Host |
---
## ✅ 检视结果详情
### 1. LOG API 安全规范(条款 11.1-11.3)
**检视项**:LOG API 参数数量、类型匹配、空指针防护
**检视代码**:
```cpp
// mc2_gen_task_ops_utils.cpp:214-216
OPS_LOG_I(context->GetNodeName(), "Create AICPU KFC task for MC2, so[%s], kernel[%s], useA5AicpuServer[%d].",
soName.c_str(), kernelName.c_str(), useA5AicpuServer);
```
**分析结果**:
| 检查项 | 结果 | 说明 |
|-------|------|------|
| 参数数量匹配 | ✅ PASS | 3个占位符,3个参数 |
| 参数类型匹配 | ✅ PASS | %s 对应 const char*,%d 对应 bool |
| 空指针防护 | ✅ PASS | std::string::c_str() 保证非空 |
---
### 2. 外部输入校验(条款 4.1)
**检视项**:IsTargetPlatformNpuArch() 返回值使用
**检视代码**:
```cpp
const bool useA5AicpuServer = IsTargetPlatformNpuArch(context->GetNodeName(), NPUARCH_A5);
```
**分析结果**:✅ PASS - bool 返回值直接用于条件判断,符合规范。
---
### 3. 指针安全(条款 3.5)
**检视项**:新增指针解引用操作
**分析结果**:✅ PASS - 变更代码仅使用 std::string 引用,无新增指针解引用风险。
---
### 4. 函数返回值校验(TOPK-1)
**检视项**:GetNodeName() 返回值处理
**分析结果**:✅ PASS - 框架 API 保证返回有效指针,直接传给 LOG API 符合规范。
---
### 5. 类型安全(条款 1.1)
**检视项**:变量类型声明与隐式转换
**分析结果**:✅ PASS - 所有变量都有明确类型声明:
- const bool useA5AicpuServer
- const std::string& soName
- const std::string& kernelName
---
### 6. 变量初始化(条款 3.1)
**检视项**:变量使用前初始化
**分析结果**:✅ PASS - 所有变量在声明时即完成初始化。
---
## 📌 变更内容总结
本次 PR 主要实现 **A5 平台 AICPU Server 适配**:
1. **新增常量定义**:
- SO_NAME_MC2_SERVER = "libmc2_server.so"
- KERNEL_NAME_MC2_SERVER = "Mc2ServerKernel"
2. **平台判断逻辑**:
- 使用 IsTargetPlatformNpuArch(nodeName, NPUARCH_A5) 判断平台类型
- 根据平台选择不同的 .so 文件和内核名称
3. **日志增强**:
- 新增 INFO 级别日志,记录 AICPU KFC 任务创建信息
---
## 🎯 改进建议(可选)
无安全相关问题需修复。代码质量良好,符合编码规范。
---
## 报告生成时间
2026-05-18
## 报告状态
✅ 已完成检视,未发现安全问题
See merge request: cann/ops-transformer!5091 | 15 天前 |