HUAWEI ATLAS200学习日志(二)Mind Studio开发辅助工具的使用
在开发的过程中,Atlas200是黑盒,我们无法很好的了解程序的运行情况,Atlas200的性能情况以及发生异常后的捕获。所以需要用到相关的开发辅助工具帮助我们了解程序的执行状态 Mind Studio中的性能数据包含时间片分析、指令数性能、内存性能指标、HCCS性能指标、FU性能指标、Task Scheduler性能指标、带宽性能指标、系统性能指标 这么多的数据怎么显示查看呢?
在开发的过程中,Atlas200是黑盒,我们无法很好的了解程序的运行情况,Atlas200的性能情况以及发生异常后的捕获。所以需要用到相关的开发辅助工具帮助我们了解程序的执行状态
Mind Studio中的性能数据包含时间片分析、指令数性能、内存性能指标、HCCS性能指标、FU性能指标、Task Scheduler性能指标、带宽性能指标、系统性能指标
这么多的数据怎么显示查看呢?
在Mind Studio中提供了三种工具(日志、profiling工具、还有黑匣子异常捕获,通过这三种工具查看。
日志:
日志主要用于记录系统的运行过程及异常信息,为快速定位系统运行中出现的问题及开发过程中程序调试问题提供详细信息。
养成查看日志的良好习惯有助于直接定位问题(但往往很多人都忽视了)
日志分成两种,一种是Deivce的log一种是Host的log。
先来看device(对应文件/var/device-0*.log)主要是采集Control CPU上的日志
下面将演示如何查看日志
点击连接配置图标(WiFi图标的位置)
和Atlas200成功建立连接之后会出现device和host两个日志文件
可以点击左上角的设置,设置日志记录级别
可以在右上角设置是否自动刷新,也可以通过下拉框筛选日志
之后是host(对应位置/var/host-0*.log)主要是用户态和内核态的日志
和查看device日志一样的操作
下面是日志文件中各个字段的说明:
Type:日志级别
Time:日志生成的时间戳
Module:上报日志的模块名
Content: 日志内容,如果需要查看日志信息的上下文内容,可双击该列下的日志
信息,在系统显示的页面中查看日志信息的上下文内容。若Time列内容为空,则
无法查看对应日志信息的上下文内容。
PID:上报日志的进程号
PName:上报日志的进程名
SubModule:上报日志的子模块名
日志的导出和上传:
日志同样也可以导出
还可以选择上传日志
系统化性能分析工具Profiling
Profiling可以实现硬件和软件的性能数据的采集、分析、汇总展示
能够采集的数据分成硬件和软件部分
硬件:Control CPU上的PMU事件、Task Schedule CPU上的PMU事件、AI CPU上的PMU事件、外围设备的性能数据等。
软件:HIAI Engine、OME、RTS等模块的性能数据
下面演示如何使用图像化展示Profiling采集的数据
点击在.mind文件中的流程编排工具栏中的Profiling按钮
硬件数据采集配置界面和软件数据采集配置界面
硬件配置参数说明-Part1
硬件配置参数说明-Part2
上图是硬件配置界面参数说明
软件配置参数说明
上图是软件配置参数说明
之后点击start按钮开始自动采集性能数据
当红色框标出的两条消息日志中间没有错误表示采集成功
展示性能数据:
节点右键点击Profiling Result直接可以跳转到msvp性能数据展示的页面
下面对性能分析的各部分数据进行一个说明
summary分析:(下面的数据是真实采集的数据)
对采集的性能数据以表格的形式进行汇总呈现,其中包括很多部分采集的数据接下来一一说明
Collection Info:呈现本次性能数据采集的起止时间及本次采集的性能数据大小
Host Info:呈现本次性能数据采集的Host侧基本信息,包括Host侧的操作系统和
CPU信息。在开发者板形态,由于Host和Device皆位于miniRC上,所以此处采集
到的数据即为miniRC的基本信息
Atlas200 8核可还行
Device:呈现本次性能数据采集的Device侧信息
NPU(嵌入式神经网络处理器,华为手机上的寒武纪就是NPU)
HiAi引擎的相关信息:显示每个Engine运行的起止时间
OME信息:模型的数据输入、推理、数据输出耗时;每个op运行的详细信
息,包括op name、op type、运行时间和内存使用情况等
Control CPU信息:
Control CPU使用量相关信息
TS CPU信息:
AI CPU 信息:
AI CPU使用量截图
AI Core信息:显示采集AI Core PMU事件计算出的指标数据以及AI Core状态
信息
Peripherals信息(外围设备信息):
上下行数据:
Timeline时间线分析:
HiAI Engine:每个Engine运行的起止时间
每个引擎的运行时间都很明确
RTS分析:
其中有
Thread:每个线程调用runtime API的时序信息
compute:AI Core上kernel函数的运行时序信息,单击每个kernel函数运行的矩
形,可以显示kernel函数运行的起止时间和task-based模式采集的AI Core PMU
值
Streams:Stream内的task运行时序信息,包括流间同步信息
Scheduling:Task Scheduler调度的task的运行时序信息
OME信息:每个op运行的起止时间和相关信息
黑匣子异常获取工具:
在tool选项卡下
可以获取最新的异常信息、全部的异常信息、还有可以获得n条异常信息
显示没有异常(等有异常再更新下)
总结:
Mind Studio的性能分析工具异常的强大,灵活性很高,并且易于使用。有友好的UI界面,并且设计的监控数据足够的多且详细(官方文档只是针对了一部分数据采集字段的说明,其他也没说,网上也查不到太多资料。)用性能分析工具能够很好的得出卡发板功耗性能等数据,有助于做算法的优化。