使用约束与环境准备
工具介绍
Profiling性能分析工具用于分析运行在昇腾AI处理器上的APP工程各个运行阶段的关键性能瓶颈并提出针对性能优化的建议,最终实现产品的极致性能。
Profiling性能分析工具针对APP工程运行过程中的硬件和软件性能数据进行采集、分析并汇总展示:
- 硬件的性能数据包括:AI Core等模块的PMU指标及系统硬件性能指标。
- 软件的性能数据包括:AscendCL、GE、RTS等模块的性能指标数据。
工具使用约束
使用Profiling功能具有以下约束:
- Profiling提供命令行(hiprof.pyc)、acl.json、Ascend CL API三种方式,三种方式优先级为命令行(hiprof.pyc) > acl.json > AscendCL API。如果使用AscendCL API方式,需要确保删除acl.json文件中Profiling相关的所有配置信息或者aclInit()接口不传入acl.json文件。
- Profiling不支持发起多个基于相同结果目录的Profiling,可能会导致采集的数据结果不准确。比如main程序中包含多个独立推理任务,通过Profiling调用时会出现该问题。
- 不支持在同一个Device侧同时拉起2个Profiling任务。
- Profiling功能与Dump功能不建议同时使用,即启动Profiling前,请关闭数据Dump。原因:如果同时开启,由于Dump操作会影响系统性能,会造成Profiling采集的性能数据指标不准确。
- Profiling工具需要配套python3.7版本使用,推荐使用python3.7.5版本。
- Docker场景下,不支持将容器作为运行环境使用Profiling功能。
- 应用工程开发务必遵循《应用软件开发指南》手册,调用aclInit()接口完成AscendCL初始化和调用aclFinalize()接口完成AscendCL去初始化,才能获取到完整的Profiling性能数据。
如果应用程序已调用aclInit()接口而未调用aclFinalize()接口导致Profiling流程未正常结束,采集数据会不完整,最后1秒内profiling已采集的数据可能因未及时同步而丢失,但丢失的数据不大于2M,不影响已同步的性能数据分析。
工具使用前准备
在使用Profiling工具前,您需要参考《CANN 软件安装指南》完成环境搭建。
同时,需要使用root用户登录运行环境设置依赖的动态库。操作方法如下:
本文所有举例场景:以root用户安装Driver、Firmware和AI CPU,默认安装路径/usr/local/Ascend;以HwHiAiUser普通用户安装其他软件包,默认安装路径/home/HwHiAiUser/Ascend。请实际操作时根据您自己的环境进行替换。
本文描述的运行环境,请根据实际情况适配,针对不同环境对应以下情况:Ascend EP环境,表示Host侧环境;Ascend RC表示板端环境。
- root用户登录运行环境。
- 修改/etc/ld.so.conf文件,在文件最后增加APP工程运行依赖的动态库路径。格式如下:
- Ascend EP环境,填入以下内容:
/home/HwHiAiUser/Ascend/nnrt/latest/acllib/lib64 /usr/local/Ascend/driver/lib64
- Ascend RC环境,填入以下内容:
/home/HwHiAiUser/Ascend/acllib/lib64 /usr/lib64
- Ascend EP环境,填入以下内容:
- 执行命令ldconfig,使设置生效。