Runtime 架构文档
本文档集介绍 CANN Runtime 架构设计,面向希望为 Runtime 贡献代码的开发者。
架构总览
模块架构文档
特性文档
如何使用这些文档
阅读顺序建议
- 新手入门:先读 architecture.md 了解整体架构
- 模块开发:根据兴趣阅读对应模块文档
- 特性开发:参考 features/ 目录下的特性文档
不同角色的阅读路径
- Runtime 核心开发者:architecture → runtime → device → stream → task
- 驱动适配开发者:architecture → device → stream
- 性能优化开发者:memory → stream → task
- 特性开发者:architecture → 对应 feature 文档
项目结构
runtime/
├── api/ # API 接口层
│ ├── api.hpp # Runtime API 定义
│ ├── api_c_*.cc # C 语言接口实现
│ └── api_impl/ # API 版本实现
├── core/
│ ├── inc/ # 内部头文件
│ └── src/ # 核心实现
│ ├── runtime.cc # Runtime 全局管理
│ ├── device/ # Device 模块
│ ├── stream/ # Stream 模块
│ ├── task/ # Task 模块
│ ├── context/ # Context 模块
│ ├── kernel/ # Kernel 模块
│ ├── event/ # Event 模块
│ ├── engine/ # Engine 调度
│ ├── memory/ # Memory 模块
│ ├── profiler/ # Profiler 性能分析
│ ├── launch/ # Kernel Launch
│ ├── notify/ # Notify 通知
│ ├── dfx/ # DFX 功能
│ └── api_impl/ # API 实现
├── driver/ # 驱动适配层
│ ├── v100/ # v100 版本驱动
│ ├── v200/ # v200 版本驱动
│ └── v201/ # v201 版本驱动
├── feature/ # 特性功能实现
│ ├── aclgraph/ # ACL Graph 流捕获
│ ├── snapshot/ # Snapshot 进程快照
│ ├── model/ # Model 模型管理
│ ├── soma/ # SOMA 特性
│ ├── ccu/ # CCU 特性
│ ├── cntnotify/ # Count Notify
│ ├── xpu/ # XPU 特性
│ ├── fusion/ # Fusion 融合
│ ├── dqs/ # DQS 特性
│ └── ffts/ # FFTS 特性
├── config/ # 硬件差异配置
│ ├── as31xm1/ # AS31XM1 芯片配置
│ ├── bs9sx1a/ # BS9SX1A 芯片配置
│ ├── 910_B_93/ # 910B 芯片配置
│ └── ... # 其他芯片配置
├── inc/ # 公共头文件
│ ├── device/ # Device 相关头文件
│ └── sqe/ # SQE 相关头文件
└── cmake/ # 构建配置
本文档遵循开源仓架构文档模版格式。