ascend_pytorch_profiler_{rank_id}.db数据说明

export_type为torch_npu.profiler.ExportType.Db时,生成ascend_pytorch_profiler_{rank_id}.db (无rankId时:ascend_pytorch_profiler.db)表结构文件,该文件推荐使用MindStudio Insight工具查看,也可以使用Navicat Premium等数据库开发工具直接打开。当前db文件汇总的性能数据如下:

STRING_IDS

表1 格式

字段名

类型

索引

含义

id

INTEGER

主键

string对应的id

value

TEXT

-

string内容

PYTORCH_API

表2 格式

字段名

类型

含义

startNs

INTEGER

op api开始时间,单位ns

endNs

INTEGER

op api结束时间,单位ns

globalTid

INTEGER

该api所属的全局tid。高32位:pid,低32位:tid

connectionId

INTEGER

用于在CONNECTION_IDS表查询对应的connection_id;如果无connection_id,此处为空

name

INTEGER

该op api名,STRING_IDS(name)

sequenceNumber

INTEGER

op序号

fwdThreadId

INTEGER

op前向线程id

inputDtypes

INTEGER

输入数据类型,STRING_IDS(inputDtypes)

inputShapes

INTEGER

输入shape,STRING_IDS(inputShapes)

callchainId

INTEGER

用于在PYTORCH_CALLCHAINS表查询对应的call stack信息;如果无stack信息,此处为空

type

INTEGER

标记数据类型,op、queue、mstx还是python_trace,数据类型存于枚举表ENUM _API_TYPE中

CONNECTION_IDS

表3 格式

字段名

类型

含义

id

INTEGER

对应PYTORCH_API表的connectionId

connectionId

INTEGER

用于表示关联关系的id,当前包括task_queue、fwd_bwd、torch-cann-task三种关联关系

PYTORCH_CALLCHAINS

表4 格式

字段名

类型

含义

id

INTEGER

对应PYTORCH_API表的callchainId

stack

INTEGER

当前栈的字符串内容在STRING_IDS表中对应的id

stackDepth

INTEGER

当前栈所在深度

MEMORY_RECORD

表5 格式

字段名

类型

含义

component

INTEGER

组件名(GE、PTA、PTA+GE)在STRING_IDS表中对应的id

timestamp

INTEGER

时间戳

totalAllocated

INTEGER

内存分配总额

totalReserved

INTEGER

内存预留总额

totalActive

INTEGER

PTA流申请的总内存

streamPtr

INTEGER

ascendcl流地址

deviceId

INTEGER

设备Id

OP_MEMORY

表6 格式

字段名

类型

含义

name

INTEGER

torch op/ge op名称,STRING_IDS(name)

size

INTEGER

算子占用内存大小,单位Byte

acllocationTime

INTEGER

算子内存申请时间,单位ns

releaseTime

INTEGER

算子内存释放时间,单位ns

activeReleaseTime

INTEGER

内存实际归还内存池时间,单位ns

duration

INTEGER

内存占用时间,单位ns

activeDuration

INTEGER

内存实际占用时间,单位ns

allocationTotalAllocated

INTEGER

算子内存分配时PTA和GE内存分配总额,单位Byte

allocationTotalReserved

INTEGER

算子内存分配时PTA和GE内存占用总额,单位Byte

allocationTotalActive

INTEGER

算子内存分配时当前流申请的内存总额,单位Byte

releaseTotalAllocated

INTEGER

算子内存释放时PTA和GE内存分配总额,单位Byte

releaseTotalReserved

INTEGER

算子内存释放时PTA和GE内存占用总额,单位Byte

releaseTotalActive

INTEGER

算子内存释放时当前流申请的内存总额,单位Byte

streamPtr

INTEGER

ascendcl流地址

deviceId

INTEGER

设备Id

RANK_DEVICE_MAP

无rank_id场景不生成该表。

表7 格式

字段名

类型

含义

rankId

INTEGER

集群中标记卡的ID

deviceId

INTEGER

节点上的设备ID

STEP_TIME

保存profiler采集step起始时间。

表8 格式

字段名

类型

含义

id

INTEGER

step id值

startNs

INTEGER

step开始时间,单位ns

endNs

INTEGER

step结束时间,单位ns

GC_RECORD

保存profiler采集的GC事件。

表9 格式

字段名

类型

含义

startNs

INTEGER

GC事件开始时间,单位ns

endNs

INTEGER

GC事件结束时间,单位ns

globalTid

INTEGER

GC事件的全局tid