msprof通信性能数据解析功能主要用于统计通信类的分段耗时、拷贝信息、带宽等信息,以便进行通信类数据分析。通信类数据只有在多卡、多节点或集群场景下存在。
执行分析命令。
命令示例如下:
msprof --analyze=on --rule=communication --output=<dir> [--clear=on]
或
python3 msprof.py analyze --rule communication --dir <dir> [--clear]
参数 |
说明 |
可选/必选 |
---|---|---|
--analyze analyze |
分析性能数据文件,可选on或off,默认值为off。 |
必选 |
--type |
设置性能数据解析结果文件格式,即可以选择msprof命令行执行后自动解析的结果文件格式,取值为:
默认为text。 |
可选 |
--rule |
分析规则,可取值为:
以上两个参数可以同时配置,使用逗号分隔,例如:--rule=communication,communication_matrix。 默认同时设置以上两个参数。 |
可选 |
--output --dir |
性能数据文件目录。须指定为PROF_XXX目录,例如:/home/HwHiAiUser/profiler_data/PROF_XXX。 |
必选 |
--clear |
数据精简模式,开启后将在导出性能数据后删除PROF_XXX目录下的sqlite目录,以节省存储空间。可选on或off,默认值为off。 |
可选 |
字段 |
说明 |
---|---|
hccl_op_name |
HCCL通信算子名称。 |
group_name |
通信算子的分组。 |
start_timestamp |
通信开始时间戳。 |
elapse_time |
算子的通信总耗时,单位ms。 |
transit_time |
通信时长,单位ms。表示通信算子的通信耗时,如果通信耗时过长,可能是某条链路存在问题。 |
wait_time |
等待时长,单位ms。节点之间通信前首先需要进行同步,确保通信的两个节点同步完成,再进行通信。 |
synchronization_time |
同步时长,单位ms。节点之间进行同步需要的时长。 |
idle_time |
通信算子下发耗时,单位ms。通信算子下发耗时(idle_time) = 算子的通信总耗时(elapse_time) - 通信时长(transit_time) - 等待时长(wait_time)。 |
字段 |
说明 |
---|---|
hccl_op_name |
HCCL通信算子名称。 |
group_name |
通信算子的分组。 |
transport_type |
通信传输类型,包含:LOCAL、SDMA、RDMA、PCIE、HCCS。 |
transit_size |
通信数据量,单位Byte。 |
transit_time |
通信时长,单位ms。表示通信算子的通信耗时,如果通信耗时过长,可能是某条链路存在问题。 |
bandwidth |
通信带宽大小。 |
large_packet_ratio |
通信数据大包占比。 |
package_size |
一次传输的通信数据包大小。 |
count |
通信传输次数。 |
total_duration |
数据传输总耗时。 |
字段 |
说明 |
---|---|
hccl_op_name |
HCCL通信算子名称。 |
group_name |
通信算子的分组。 |
src_rank |
通信源Rank。 |
dst_rank |
通信目的Rank。 |
transport_type |
通信传输类型,包含:LOCAL、SDMA、RDMA、PCIE、HCCS。 |
transit_size |
通信数据量。 |
transit_time |
通信时长,单位ms。表示通信算子的通信耗时,如果通信耗时过长,可能是某条链路存在问题。 |
bandwidth |
通信带宽大小。 |