下载
中文
注册

task_time(任务调度信息)

任务调度信息数据timeline信息在msprof_*.json文件的Ascend Hardware层级展示,summary信息在task_time_*.csv文件汇总,用于识别AI任务运行时的调度耗时。

支持的型号

Atlas 200/300/500 推理产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

Atlas A2 训练系列产品/Atlas 800I A2 推理产品

msprof_*.json文件中的任务调度信息数据说明

msprof_*.json文件中的任务调度信息数据在Ascend Hardware中的各个Stream呈现,通过记录AI任务运行时,各个Task在不同加速器下的执行耗时,可以直观判断任务调度耗时长短。

msprof_*.json文件中的任务调度信息数据示例如下:

图1 Ascend Hardware

关键字段说明如下。

表1 字段说明

字段名

字段含义

Title

选择某个组件的接口名称。

Start

显示界面中时间轴上的时刻点,chrome trace自动对齐,单位ms。

Wall Duration

表示当前接口调用耗时,单位ms。

Task Time(us)

AI CPU算子的Task任务耗时,单位us。

Reduce Duration(us)

ALL REDUCE算子的集合通信时间,单位us。

Model Id

模型ID。

Task Type

执行该Task的加速器类型,包含AI CORE、AI VECTOR CORE、AI CPU等。

Stream Id

该Task所处的Stream ID。在Ascend Hardware下的Stream Id为该任务的完整逻辑流ID,而在右侧Timeline内的各个接口的Stream Id属性则为该接口的物理流ID(Physic Stream Id)。

Task Id

对应的Task ID。

Subtask Id

对应的Subtask ID。

Aicore Time(ms)

当所有的Block被同时调度,且每个Block的执行时长相等时,该Task在AI Core上的理论执行时间,单位ms。通常情况下,不同的Block开始调度时间略有差距,故该字段值略小于Task在AI Core上的实际执行时间。手动调频、功耗超出默认功耗值时动态调频以及Atlas 300V/Atlas 300I Pro情况下该数据不准确,不建议参考。

Total Cycle

该Task在AI Core上执行的cycle总数,由所有的Block的执行cycle数累加而成。

Receive Time

Device收到内存拷贝Task的信息接收时间,单位us。仅MemcopyAsync接口展示。

Start Time

内存拷贝Task开始拷贝的时间,单位us。仅MemcopyAsync接口展示。

End Time

内存拷贝Task结束拷贝的时间,单位us。仅MemcopyAsync接口展示。

task_time_*.csv文件说明( Atlas 200/300/500 推理产品 )( Atlas 200I/500 A2 推理产品

task_time_*.csv文件内容格式示例如下:

图2 task_time_*.csv

可以通过查看Task的耗时占比、平均执行时间、最短耗时、最长耗时、等待时间、执行时间等,判断Task耗时长的具体原因。

表2 字段说明

字段名

字段含义

Device_id

设备ID。

Time(%)

总耗时占比。

Time(us)

总耗时,单位us。

Count

对应的Task被执行的次数。

Avg/Min/Max

平均执行时间、最短耗时、最长耗时,单位us。

Waiting

对应Task总计waiting时间,单位us。

Running

对应Task总计running时间。表示Task的实际运行时间,单位us,过长的Task运行时间可能意味着算子实现存在问题。

Pending

对应Task总计pending时间,单位us。

Type

对应Task 的类型。

API

对应的API名称。

Task ID

Task任务的ID。

OP Name

对应的算子名称。

Stream ID

该Task所处的Stream ID。

task_time_*.csv文件说明( Atlas 推理系列产品 )( Atlas 训练系列产品 )( Atlas A2 训练系列产品

task_time_*.csv文件内容格式示例如下:

图3 task_time_*.csv

可以通过查看Task的Top耗时对应的算子,根据该算子的具体实现来判断算子是否存在问题。

表3 字段说明

字段名

字段含义

Device_id

设备ID。

kernel_name

kernel的名称。显示为N/A表示为非计算类算子。

kernel_type

kernel的类型,包含:KERNEL_AICORE、KERNEL_AICPU等。

stream_id

该Task所处的Stream ID。

task_id

Task任务的ID。

task_time(us)

Task耗时,包含调度到加速器的时间、加速器上的执行时间以及结束响应时间,单位us。

task_start(us)

Task开始时间,单位us。

task_stop(us)

Task结束时间,单位us。