CANN Runtime架构设计文档

Runtime 架构文档

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

本文档集介绍 CANN Runtime 架构设计,面向希望为 Runtime 贡献代码的开发者

架构总览

文档说明
architecture.md系统架构总览,介绍 Runtime 整体设计和核心组件

模块架构文档

文档说明
modules/runtime/runtime.mdRuntime 全局管理,单例模式和资源管理
modules/device/device.mdDevice 设备管理,设备初始化、状态管理、错误处理
modules/stream/stream.mdStream 流管理,任务队列和同步机制
modules/task/task.mdTask 任务管理,任务类型和执行流程
modules/context/context.mdContext 上下文管理,与 Device/Stream 的关系
modules/memory/memory.mdMemory 内存管理,内存池和分配策略
modules/kernel/kernel.mdKernel 核函数管理,二进制加载与执行
modules/event/event.mdEvent 事件管理,同步机制

特性文档

文档说明
features/aclgraph.mdACL Graph 特性,流捕获和模型构建
features/snapshot.mdSnapshot 特性,进程状态保存和恢复
features/fusion.mdFusion 特性,算子融合执行

如何使用这些文档

阅读顺序建议

  1. 新手入门:先读 architecture.md 了解整体架构
  2. 模块开发:根据兴趣阅读对应模块文档
  3. 特性开发:参考 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/ # 构建配置

本文档遵循开源仓架构文档模版格式。

【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址: https://gitcode.com/cann/runtime

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考