脚本及接口
表7-3中脚本的执行方法如下:
- 以安装时创建的HwHiAiUser普通用户登录开发环境。
- 切换到/home/HwHiAiUser/Ascend/ascend-toolkit/latest/toolkit/tools/profiler/profiler_tool/analysis/interface路径下。
- 执行表7-3中的命令调用工具。
- get_env_info_training.pyc、get_msvp_info_training.pyc、get_msvp_timeline_training.pyc、msvp_runss_training.pyc、remove_job.pyc为训练场景使用的脚本命令,本文不做介绍。
- __init__.pyc(标识文件所在目录为python的模块包)、msvp_analyzer.pyc(参数校验和参数准备函数文件)和msvp_runss.pyc(流程调用文件)不对外提供接口,本文不做介绍。
- 执行以下脚本命令时,不支持以下特殊字符:[';*?`!#$%^&+=<>{}]|"。
- 执行脚本时,如果参数值含有括号字符,需要将参数值放在英文双引号里。
- 本节所有脚本示例中--project为必选参数,不再一一说明。
- --deviceid为可选参数。
- 针对msvp_import.pyc,缺省情况下取值所有Device设备。
- 针对get_msvp_timeline.pyc、get_msvp_info.pyc,如果--project指定目录下是多Device数据,此时需要配置--deviceid为具体的Device ID。
表7-3 脚本及接口脚本及作用
接口参数及示例
get_msvp_info.pyc
获取指定工程的Summary页签的数据
获取Summary页签Collection Info信息
--collection_info:获取Collection Info信息接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --collection_info
获取Summary页签Host Info信息
--host_info:获取Host Info信息接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --host_info
获取设备ID
--msvp_device:获取设备ID接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --msvp_device
获取指定设备的设备信息
--msvp_deviceinfo:获取设备信息接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --msvp_deviceinfo --deviceid=0
获取指定设备的系统内存信息
--sys_mem:获取系统内存信息接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --sys_mem --deviceid=0
获取Runtime API数据
- --data_type=runtime_api:获取Runtime API数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --data_type=runtime_api --deviceid=0
获取Task Scheduler数据
- --data_type=task_scheduler:获取Task Scheduler数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=task_scheduler
获取Control CPU PMU Events数据
--data_type=control_cpu_pmu_events:获取Control CPU PMU Events数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=control_cpu_pmu_events
获取Control CPU Top 5 Functions
--data_type=control_cpu_top_functions:获取Control CPU Top 5 Functions接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=control_cpu_top_functions
获取TS CPU PMU Events数据
--data_type=ts_cpu_pmu_events:获取TS CPU PMU Events数据接口。
示例: python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ts_cpu_pmu_events
获取AI CPU PMU Events数据
--data_type=ai_cpu_pmu_events:获取AI CPU PMU Events数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ai_cpu_pmu_events
获取AI CPU Top 5 Functions
--data_type=ai_cpu_top_functions:获取AI CPU Top 5 Functions接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ai_cpu_top_functions
获取AI core CPU PMU Events数据
- --data_type=ai_core_pmu_events:获取AI core CPU PMU Events数据接口。
- --page_length:指定每页显示多少条数据,可选参数。sample-based模式不支持。
- --page_index:指定要获取第几页的数据,可选参数。sample-based模式不支持。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ai_core_pmu_events
获取NIC外设数据
- --data_type=nic:获取nic外设数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=nic
获取DVPP外设信息
- --data_type=dvpp:获取dvpp外设信息接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=dvpp
获取LLC bandwidth数据
--data_type=llc:获取llc bandwidth数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=llc
获取LLC的capacity数据(AI CPU)
--data_type=llc_aicpu:获取LLC的capacity数据(AI CPU)接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=llc_aicpu
获取LLC的capacity数据(Control CPU)
--data_type=llc_ctrlcpu:获取LLC的capacity数据(Control CPU)接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=llc_ctrlcpu
获取DDR数据
--data_type=ddr:获取ddr数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ddr
获取GE task and graph data信息
- --data_type=ge_basic:获取GE task and graph data信息接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ge_basic
获取GE加载模型信息
- --data_type=ge_model_load:获取GE加载模型信息接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ge_model_load
获取模型的耗时信息
- --data_type=ge_model_time:获取模型的耗时信息。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ge_model_time
获取AscendCL数据
- --data_type=acl:获取AscendCL数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=acl
获取System AI CPU和Control CPU利用率
--data_type =sys_cpu_usage:获取System AI CPU和Control CPU利用率接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=sys_cpu_usage
获取Process CPU Usage数据(Top 50)
--data_type=process_cpu_usage:获取Process CPU Usage数据(Top 50)接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=process_cpu_usage
获取System Memory Summary数据
--data_type=sys_mem:获取System Memory Summary数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=sys_mem
获取Process Memory Info数据
--data_type=process_mem:获取Process Memory Info数据接口。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=process_mem
获取AI Core OP Summary数据
- --data_type=ai_core_op_summary:获取AI Core OP Summary数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
- --iter_id:推理轮数。默认为1,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=ai_core_op_summary
获取Top Down数据
- --data_type=top_down:获取Top Down数据接口。
- --iter_id:推理轮数。默认为1,如果设置为0表示导出所有轮数数据。可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=top_down
获取AI Core OP Statistic信息
- --data_type=op_counter:获取AI Core OP Statistic数据接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=op_counter
获取每个core的使用率以及所有core平均使用率的数据(仅AI Core采集项配置为sample-based场景支持)
- --utilization:获取core使用率数据接口。
- --start_time:开始时间。
- --end_time:结束时间。
- --number:指定获取条数。
示例:python3.7.5 get_msvp_info.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --utilization --start_time=0 --end_time=6 --number=1000
获取所有性能相关数据
- --data_type=all:获取所有性能相关数据采集接口。
- --page_length:指定每页显示多少条数据,可选参数。
- --page_index:指定要获取第几页的数据,可选参数。
示例:python3.7.5 get_msvp_info.pyc --save_file --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --data_type=all
查看帮助信息
-h/--help
以下get_msvp_info.pyc功能接口暂不支持,接口保留。
获取Summary页签指定CPU的CPU Usage信息
- --project
- --deviceid
- --cpuusage
- --type
- --start_time
- --end_time
- --number
获取TS CPU Top 5 Functions数据
--ts_cpu_top_functions
获取指定事件类型的AI core CPU PMU Events数据
--event_type
获取AI Vector core CPU PMU Events数据
- --data_type=ai_vector_core_ pmu_events
- --page_length
- --page_index
获取TS CPU Usage数据
- --ts_cpu_usage
- --start_time
- --end_time
- --number
获取AI Vector Core Status数据
- --ai_vector_status
- --number
获取AI Core Status数据
- --ai_core_status
- --number
获取RTS track数据
- --autotuning
- --page_length
- --page_index
按列名排序
--sort_column
--sort_type
get_msvp_timeline.pyc
获取Timeline页签的数据
获取Runtime timeline数据
- --runtime_timeline:获取Runtime timeline数据接口。
- --start_time:开始时间。
- --end_time:结束时间。
示例:python3.7.5 get_msvp_timeline.pyc --runtime_timeline --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --start_time=1 --end_time=9999999999
获取task scheduler timeline数据
- --timeline_task:获取task scheduler timeline数据接口。
- --start_time:开始时间。
- --end_time:结束时间。
示例:python3.7.5 get_msvp_timeline.pyc --timeline_task --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --start_time=1 --end_time=9999999999
获取Timeline的开始时间、结束时间、Duration参数值(大数据量情况下用于展示一次接受多长时间的数据)
--timeline_maxtime:获取Timeline的开始时间、结束时间、Duration参数值接口。
示例:python3.7.5 get_msvp_timeline.pyc --project=/home/HwHiAiUser/tools/profiling_result_dir --timeline_maxtime --deviceid=0
获取GE timeline数据
- --timeline_ge:获取GE timeline数据接口。
- --start_time:开始时间。
- --end_time:结束时间。
示例:python3.7.5 get_msvp_timeline.pyc --timeline_ge --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --start_time=1 --end_time=9999999999
获取AscendCL timeline数据
- --timeline_acl:获取AscendCL timeline数据接口。
- --start_time:开始时间。
- --end_time:结束时间。
示例:python3.7.5 get_msvp_timeline.pyc --timeline_acl --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0 --start_time=1 --end_time=9999999999
获取Top Down数据
- --timeline_top_down:获取Top Down timeline数据接口。
- --iter_id:推理轮数。默认为1,如果设置为0表示导出所有轮数数据。可选参数。
python3.7.5 get_msvp_timeline.pyc --timeline_top_down --project=/home/HwHiAiUser/tools/profiling_result_dir --deviceid=0
说明:命令执行完毕后,会在--project指定的目录下生成csv/top_down_data_*.*.log文件。
该文件可以通过以下方式打开查看:在Chrome浏览器中输入“chrome://tracing”地址,然后将该文件拖到空白处即可打开文件并展示各模块耗时信息。
查看帮助信息
-h/--help
以下get_msvp_timeline.pyc功能接口暂不支持,接口保留。
获取时序图数据
- --project
- --start_time
- --end_time
- --deviceid
- --timeline_nic
获取llc的timeline数据
- --type
- --timeline_llc
获取ddr的timeline数据
- --master_id
- --timeline_ddr
获取timeline页签Host侧的数据
--timeline_host
获取左侧外设数据列表
--timeline_list_peri
获取dvpp的timeline数据
- --timeline_dvpp
- --enginetype
- --engineid
- --number
获取timeline_apitask数据
- --timeline_apitask
- --row_id
msvp_import.pyc
将采集结果导入数据库
将采集结果导入数据库
- --target:指定要导入的目标文件夹。
- --deviceid:指定设备ID,默认值为0。可选参数。
- --export_type:导出指定Device的数据解析结果。取值为all(全部数据)或basic(部分数据),默认取值为basic。可选参数。
- --adc_dir:指定adc目录。可选参数。
示例:python3.7.5 msvp_import.pyc --target=/home/HwHiAiUser/tools/profiler/projects/68:05:ca:83:ad:57/projects_20190221/rts_test_2019022109234475
查看帮助信息
-h/--help
以下对外开放接口,本版本暂不支持,功能保留。
get_env_info.pyc
校验文件夹或删除文件/文件夹
包含以下预留参数:
- --verify/-v
- --remove/-r
- -h/--help
get_msvp_function.pyc
根据指定的project、Module名称、Function名称获取Function页签的数据
包含以下预留参数:
- --project
- --target
- --deviceid
- --type
- --order/-o
- --core/-c
- --pid/-p
- --tid/-t
- --sort/-s
- --limit/-l
- --export/-e
- --module/-m
- --function/-f
- -h/--help
get_msvp_instruction.pyc
实现代码跳转的功能,获取code页签的数据
包含以下预留参数:
- --project
- --module/-m
- --function/-f
- --source
- --type
- --deviceid
- --core/-c
- --pid/-p
- --tid/-t
- --field/-fld
- --symtab
- -h/--help
get_rstrack_info.pyc
获取Timeline页签的RTStrack数据
包含以下预留参数:
- --project
- --start_time
- --end_time
- --deviceid
- --rtstrack
- --timerange
- -h/--help