| feat:introduce cuda2ascend-simt
Co-authored-by: qixingkai<qixingkai@huawei.com>
# message auto-generated for no-merge-commit merge:
!210 merge master into master
feat:introduce cuda2ascend-simt
Created-by: qixingkai
Commit-by: qixingkai
Merged-by: cann-robot
Description: ## 描述
cuda2ascend-simt 是一个 Ascend C SIMT 迁移Skill,通过可规划、可追踪、可验证、可复用的工程化流程,快速迁移 CUDA 算子资产,继承其高性能实践,扩展 Ascend 算力生态。
## 已支持能力说明
### 1. 支持多种交付形态
- 支持 sample、torch_npu、pybind 三类迁移模式。
- sample 产物:可独立编译运行的 Ascend C SIMT 示例工程,包含 .asc、host 代码、CMakeLists.txt、验证入口。
- torch_npu 产物:可安装的 torch_npu 扩展工程,包含 SIMT kernel、host wrapper、注册代码、Python 调用入口、安装与验证脚本。
- pybind 产物:可从 Python import 的 pybind 扩展工程,包含 SIMT kernel、host wrapper、binding 代码、构建安装与 Python 验证入口。
- 能根据原始工程形态选择交付方式,避免把复杂扩展工程简单降级成 standalone sample。
### 2. 高保真迁移策略
- 默认保持原始算法结构、变量命名、Kernel 拆分、launch policy 与调用链路。
- 系统分析 dtype 覆盖、shape / layout 分支、fast path 与 kernel 选择策略,降低行为偏差风险。
- 对 TensorIterator、gpu_kernel、共享 math helper 等可复用抽象层,优先采用复用或 Ascend counterpart 迁移方案,提升跨算子复用能力。
### 3. 规则化知识库驱动
- 内置 CUDA Runtime API、Device API、语法规则、约束规则等本地迁移参考。
- 以 YAML 规则表作为事实源,Markdown 作为可读视图,兼顾机器可解析性与人工审查效率。
- 在迁移前强制查询 API 映射、语法约束与不支持能力,提升 Ascend C SIMT 改写决策的一致性和可追溯性。
### 4. 可审计的降级与阻塞治理
- 对能力缺失统一分类为 downgrade、blocked、excluded。
- 对重大降级设置硬停止审批门,例如抽象层降级、多路径 kernel 调度简化、核心设备执行路径替换等。
- 降级前必须明确迁移成本、技术收益、验证影响、复用影响和恢复路径,支撑客户进行可审计的技术决策。
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单的链接。-->
## 测试
当前测试覆盖基础 CUDA 样例、PyTorch ATen 大模型热点算子、多机多卡通信库三类场景,用于验证技能在不同复杂度工程中的迁移分析和交付能力。
### 1. CUDA Samples 基础算子集(成功数/总数:12/12)
- 来源仓库:NVIDIA [cuda-samples](https://github.com/NVIDIA/cuda-samples)
- 测试范围:覆盖 matrixMul、simpleStreams、simpleAtomicIntrinsics 等 12个典型 CUDA sample。
- 迁移产物:已沉淀在 [cuda-transporter-testcase](https://gitcode.com/cann-sigs/cuda-transporter-testcase/tree/main/ported-cuda-samples),用于验证基础 kernel、runtime API、stream、多 GPU、atomic、assert / printf 等常见 CUDA 能力迁移。
### 2. PyTorch ATen 大模型热点算子集(成功数/总数:17/20)
- 来源仓库:PyTorch aten/src/ATen。
- 测试范围:基于[torch API](https://docs.pytorch.org/docs/main/torch.html),对其中 493 个 torch 接口进行实现方式分类,覆盖 15 类算子实现路径,选取 20 个大模型热点算子作为迁移测试集。
- 迁移结果:迁移产物沉淀在 [cuda-transporter-testcase](https://gitcode.com/cann-sigs/cuda-transporter-testcase/tree/main/tasks/ported-ops),用于验证 ATen 调用链、dtype / shape 分支、可复用抽象层和 Python 调用路径保真能力。
- 失败原因:3个失败用例均由于缺少高阶的生态库能力,导致迁移阻塞
### 3. DeepEP 多机多卡通信场景
- 来源仓库:DeepSeek [deepep](https://github.com/deepseek-ai/DeepEP)。
- 测试范围:面向多机多卡通信、专家并行调度和高性能通信算子进行迁移可行性分析。
- 分析产物:deepep迁移.pdf,用于评估技能在复杂分布式通信库中的依赖分析、阻塞识别和迁移路径规划能力。
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [x] 🌟 新特性
- [ ] ✨ 特性增强
- [ ] 🐛 Bug 修复
- [ ] ⚡ 性能优化
- [ ] 🧪 测试用例
- [ ] 📦 构建 / CI
- [ ] 📝 文档更新
- [ ] 🔧 配置变更
- [ ] ⬆️ 依赖升级
- [ ] 🔒 安全修复
- [ ] ♻️ 代码重构
- [ ] 🧹 代码清理
- [ ] ❓ 其他,请描述:
## 流水线故障排查
<!-- 如果下方的流水线检查未通过,可参考以下指引进行自助修复 -->
> **UT_Test 未通过?**
> 请在下方流水线表格的 **UT_Test** 行,点击右侧的 >>>>> 下载「UT_Test 自检修复提示词模版」。
> 将下载的模版内容粘贴给 Agent,Agent 将根据日志自动定位并修复问题。
>
> 示例:
> 
See merge request: cann/cannbot-skills!210 | 10 天前 |