下载
EN
注册

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 推理产品

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 训练系列产品 )( Atlas 200I/500 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。