背景描述(Background)
继承代际芯片的软硬件调度全流程能力,主要扩展A5芯片的调度、计算&&通信、AI核计算单元、系统硬件指标的调优能力构筑,支持性能调优分析。
用例分析(Use Case)
功能点1:D-Die/U-Die带宽信息的呈现能力
使用限制:A5形态
使用约束:NA
DFX设计:
- 兼容性:代际芯片新增特性,不涉及兼容性
- 可维护性:NA
- 可靠性:Stars数据上报任务,包含链路编号及数据正确性校验
功能点2:Fusion Task任务的呈现能力
使用限制:A5形态
使用约束:NA
DFX设计:
- 兼容性:代际芯片新增特性,不涉及兼容性
- 可维护性:NA
- 可靠性:Fusion Task包含aic、aicpu、ccu等子任务类型,增加子任务范围校验
功能点3:DPU算子耗时统计及呈现能力
使用限制:A5形态、使用DPU进行运算
使用约束:NA
DFX设计:
- 兼容性:代际芯片新增特性,不涉及兼容性
- 可维护性:NA
- 可靠性:DPU任务数据解析正确性校验
功能点4:代际芯片特性继承能力
使用限制:A5芯片
使用约束:NA
DFX设计:
- 兼容性:代际芯片参数功能对齐,保证代际芯片前后兼容
- 可维护性:NA
- 可靠性:命令行参数规范性校验,参数配置校验
方案设计(Design Details)
-
设计思路
A5 全栈结构图 ┌───────────────────────────────────────────────────────────────────────────────┐ │ AI Framework │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ PyTorch │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌───────────────────────────────────────────────────────────────────────────────┐ │ CANN │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ AscendCL │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ ┌───────────────────────┐ ┌───────────────────┐ ┌──────────────────┐ │ │ │ GE │ │ ACLNN │ │ ... │ │ │ └───────────────────────┘ └───────────────────┘ └──────────────────┘ │ │ ┌─────────────────────────────────────────────────────────────────────────┐ │ │ │ Runtime │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌───────────────────────────────────────────────────────────────────────────────┐ │ NPU │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ │ │ │ │ AICPU │ │ │ │ │ │ LP │ │ │ └──────────────┘ │ │ │ │ │ │ │ │ ┌──────────────┐ │ │ │ │ └──────────────┘ │ │ │ CCU │ │ │ │ │ ┌──────────────┐ │ Stars │ └──────────────┘ │ UB │ │ │ │ │ │ │ ┌──────────────┐ │ │ │ │ │ L2 Cache │ │ │ │ AICore │ │ │ │ │ │ │ │ │ └──────────────┘ │ │ │ │ └──────────────┘ └──────────────┘ └───────────────┘ │ └───────────────────────────────────────────────────────────────────────────────┘代际芯片的软硬件调度全流程能力,结合A5芯片能力,主要扩展调度器、计算&&通信通路、AI核上计算单元、系统级硬件指标等多方面的调优能力构筑。
- Stars调度器新增fusion task类别任务
- AI核计算单元Die间带宽能力
- DPU算子调度执行能力
- CCU通信指令及带宽呈现
-
实现设计
-
D/U-Die带宽功能实现设计
D/U Die结构图 ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ │ UDie0 │<-->│ DDie0 │<-->│ DDie1 │<-->│ UDie1 │ └───────┘ └───────┘ └───────┘ └───────┘Die间带宽数据通过Stars数据格式上报,Profiling落盘性能数据后,解析完成后生成timeline柱形图,支持分析D/U-Die之间的带宽信息。带宽范围主要由上图可见:UDie0与DDie0、DDie0与DDie1、DDie1与UDie1的带宽统计
DFX设计
- 性能:增加一类硬件性能数据上报,可在数据解析阶段并发掩盖,性能无影响
- 可靠性分析:Stars数据上报任务,包含链路编号及数据正确性校验
-
Fusion Task呈现功能实现设计 通过Profiling采集性能数据,fusion task任务通过Stars数据格式上报,Profiling落盘性能数据后,解析完成后生成Task任务的数据,并在timeline trace图上呈现Fusion Task子任务信息。
Fusion Task包含几类子任务:
- AIC/AIV
- AICPU
- CCU
DFX设计
- 性能:新增数据类别,stars数据分发,单Fusion Task任务较少,几乎不影响性能。
- 可靠性分析:增加子任务范围校验,避免新增子任务无法及时感知
- 安全:数据格式固定,无变长数据,需保证数据格式完整性
-
DPU算子功能实现设计
DPU 数据呈现展示图 ┌─────────┐ CANN: CPU │ runtime │─────────────┐ └────│────┘ │ Thread ID ─────────────────│──────────────────│────────────────────────── │ ┌────V────┐ CANN: CPU │ │ DPU │ │ └─────────┘ Stream ID ─────────────────│───────────────────────────────────────────── │ Ascend Hardware: NPU │ ┌─────────┐ └──────│> NPU │ └─────────┘ Stream ID ───────────────────────────────────────────────────────────────A5代际芯片Host新增DPU运算模块,包含计算和通信类任务,支持通过Device ID进行区分,DPU和NPU的ID分开,数据解析同样通过唯一ID进行关联和呈现,timeline trace图新增CANN层的DPU泳道数据,支持性能的分析。
计算类任务:直接在Host侧的DPU模块进行下发和执行,不会下发到Device
通信类任务:在Host进行下发到DPU,但同时任务会下发到NPU侧,通过消息交互进行数据通信。
DFX设计
- 性能:DPU类数据可支持并发解析,可掩盖,几乎不影响性能
- 可靠性分析:DPU新增模块的数据匹配、丢失情况进行校验,唯一ID目前可保证数据关联正确性
-
代际芯片命令行参数功能实现设计
- reports参数补齐:对标代际芯片支持reports参数筛选timeline trace图中需要呈现的泳道内容
- 默认导出DB:通过msprof进行数据解析过程需要补齐默然导出DB文件
- 性能数据交付件(task_time.csv / soc_pmu.csv)拷贝到ASCEND_PROFILER_OUTPUT目录下,支持数据的呈现和分析
DFX设计
- 性能:继承特性,不涉及性能影响
- 可靠性分析:NA
-
使用说明(User Guide)
-
接口描述:A5支持reports参数控制返回timeline数据内容
-
接口原型:msprof --reports
-
输入/输出参数:
参数名称 输入/输出 类型 描述 取值范围 reports Json Json文件 Timeline Trace的内容控制 NA -
返回参数:
参数名称 类型 描述 取值范围 -
异常处理:
Json文件大小/权限不合法
Json内容不合法,检查并进行提示
-
约束说明:NA
-
变更说明:NA
-
调用参考代码:
msprof --export=on --output=/home/profiler_data/PROF_XXX --reports=${INSTALL_DIR}/tools/profiler/profiler_tool/analysis/msconfig/reports_sample_config.json
测试设计(Test Plan)
| 用例名称 | 预置条件 | 预期输入 | 预期输出 |
|---|---|---|---|
| D/U-Die带宽数据采集用例 | A5 CANN软件包正确安装 | 通过msprof执行业务应用:msprof --output=* ./main [args] | 1、采集到PROF性能数据,并打印自动解析完成 2、生成timeline数据,新增泳道可展示D/U-Die带宽柱形曲线 |
| Fusion Task任务呈现用例 | A5 CANN软件包正确安装 | 通过msprof执行业务应用:msprof --output=* ./main [args] | 1、采集到PROF性能数据,并打印自动解析完成 2、生成timeline数据,Ascend Hardware下可展示fusion task任务耗时信息 |
| DPU算子耗时统计及呈现能力用例 | A5 CANN软件包正确安装 | 通过msprof执行业务应用:msprof --output=* ./main [args] | 1、采集到PROF性能数据,并打印自动解析完成 2、生成timeline数据,新增CANN:DPU下可展示DPU任务的耗时呈现 |
| msprof命令行支持report参数用例 | A5 CANN软件包正确安装 内置reports_sample_config.json(只配置“ascend:true”,其他全为false) |
通过msprof执行业务应用:msprof --output=* ./main [args] --reports=“reports_sample_config.json” | 1、采集到PROF性能数据,并打印自动解析完成 2、生成timeline数据,只支持AscendHardware泳道的呈现 |
| msprof命令行支持解析默认导出DB | A5 CANN软件包正确安装 | 通过msprof执行业务应用:msprof --output=* ./main [args] | 1、采集到PROF性能数据,并打印自动解析完成 2、生成的交付件包含DB文件 |
缺点与风险(可选)(Drawbacks)
DPU关联正确性:算子任务通过 CANN平台下发任务,混合了NPU和DPU侧的任务,数据的正确关联存在挑战
复杂性:异构系统+AI框架的全栈性能数据采集和呈现,强依赖组件数据,以及增加了对于数据理解的难度
备选方案(可选)(Alternatives)
暂无备选方案
未解决问题(可选)(Unresolved Questions)
暂不涉及未解决的问题