export_type为torch_npu.profiler.ExportType.Db时,生成ascend_pytorch_profiler_{rank_id}.db (无rankId时:ascend_pytorch_profiler.db)表结构文件,该文件推荐使用MindStudio Insight工具查看,也可以使用Navicat Premium等数据库开发工具直接打开。当前db文件汇总的性能数据如下:
字段名 |
类型 |
索引 |
含义 |
---|---|---|---|
id |
INTEGER |
主键 |
string对应的id |
value |
TEXT |
- |
string内容 |
字段名 |
类型 |
含义 |
---|---|---|
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中 |
字段名 |
类型 |
含义 |
---|---|---|
id |
INTEGER |
对应PYTORCH_API表的connectionId |
connectionId |
INTEGER |
用于表示关联关系的id,当前包括task_queue、fwd_bwd、torch-cann-task三种关联关系 |
字段名 |
类型 |
含义 |
---|---|---|
id |
INTEGER |
对应PYTORCH_API表的callchainId |
stack |
INTEGER |
当前栈的字符串内容在STRING_IDS表中对应的id |
stackDepth |
INTEGER |
当前栈所在深度 |
字段名 |
类型 |
含义 |
---|---|---|
component |
INTEGER |
组件名(GE、PTA、PTA+GE)在STRING_IDS表中对应的id |
timestamp |
INTEGER |
时间戳 |
totalAllocated |
INTEGER |
内存分配总额 |
totalReserved |
INTEGER |
内存预留总额 |
totalActive |
INTEGER |
PTA流申请的总内存 |
streamPtr |
INTEGER |
ascendcl流地址 |
deviceId |
INTEGER |
设备Id |
字段名 |
类型 |
含义 |
---|---|---|
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_id场景不生成该表。
字段名 |
类型 |
含义 |
---|---|---|
rankId |
INTEGER |
集群中标记卡的ID |
deviceId |
INTEGER |
节点上的设备ID |
保存profiler采集step起始时间。
字段名 |
类型 |
含义 |
---|---|---|
id |
INTEGER |
step id值 |
startNs |
INTEGER |
step开始时间,单位ns |
endNs |
INTEGER |
step结束时间,单位ns |
保存profiler采集的GC事件。
字段名 |
类型 |
含义 |
---|---|---|
startNs |
INTEGER |
GC事件开始时间,单位ns |
endNs |
INTEGER |
GC事件结束时间,单位ns |
globalTid |
INTEGER |
GC事件的全局tid |