解析结果
生成的结果保存在--output-path指定的路径下。
解析结果  | 
采集domain域  | 
|---|---|
profiler.db  | 
"BatchSchedule; ModelExecute; Request; KVCache"  | 
chrome_tracing.json  | 
无强限制。若要查看请求间flow event,需采集"Request"。  | 
batch.csv  | 
"BatchSchedule; ModelExecute"  | 
kvcache.csv  | 
"KVCache"  | 
request.csv  | 
"Request"  | 
pd_split_communication.csv  | 
"Communication"  | 
pd_split_kvcache.csv  | 
"KVCache"  | 
request_summary.csv  | 
"Request"  | 
batch_summary.csv  | 
"BatchSchedule; ModelExecute"  | 
service_summary.csv  | 
"Request; BatchSchedule; ModelExecute"  | 
prefill.csv  | 
"BatchSchedule; ModelExecute; Request"  | 
decode.csv  | 
"BatchSchedule; ModelExecute"  | 
包括如下文件:
profiler.db
用于生成可视化折线图的SQLite数据库文件。
其中含有下述数据库表,具体作用如下:
Table名称  | 
含义  | 
|---|---|
batch  | 
用于在MindStudio Insight展示batch表格数据。  | 
decode_gen_speed  | 
用于生成decode阶段,服务化数据不同时刻吞吐的token平均时延折线图。  | 
first_token_latency  | 
用于生成服务化框架首token时延折线图。  | 
kvcache  | 
用于生成服务化kvcache显存使用情况折线图可视化。  | 
prefill_gen_speed  | 
用于生成prefill阶段,服务化数据不同时刻吞吐的token平均时延折线图。  | 
req_latency  | 
用于生成服务化框架请求端到端时延使用折线图。  | 
request_status  | 
用于生成服务化采集数据不同时刻请求状态折线图。  | 
request  | 
用于在MindStudio Insight展示请求表格数据。  | 
batch_exec  | 
用于反映batch和模型执行关系对应表。  | 
batch_req  | 
用于反映batch和请求对应关系表。  | 
data_table  | 
用于在MindStudio Insight展示表格数据。  | 
counter  | 
用于在trace图显示counter类数据。  | 
flow  | 
用于在trace图显示flow类数据。  | 
process  | 
用于在trace图显示二级泳道数据。  | 
thread  | 
用于在trace图显示三级泳道数据。  | 
slice  | 
用于在trace图显示色块数据。  | 
pull_kvcache  | 
用于在MindStudio Insight展示PD分离场景下D节点拉取kvcahce表格数据(只在PD分离场景下涉及)。  | 
pd_split_communication  | 
用于在MindStudio Insight展示PD分离场景下PD节点通信的表格数据(只在PD分离场景下涉及)。  | 
ep_balance  | 
记录DeepSeek专家模型服务化推理时,基于Mspti采集的GroupedMatmul算子负载不均的分析结果。  | 
moe_analysis  | 
记录DeepSeek专家模型服务化推理时,基于MSPTI采集的MoeDistirbuteCombine算子和MoeDistributeDispatch算子快慢卡分析结果。  | 
此文件主要用于可视化阶段连接grafana展示图像,不对各表项细节做具体解释说明。
chrome_tracing.json
记录推理服务化请求trace数据,可使用不同可视化工具进行查看,详细介绍请参见数据可视化。
batch.csv
记录服务化推理batch为粒度的详细数据。
字段  | 
说明  | 
|---|---|
name  | 
用于区分组batch和执行batch。 name为batchFrameworkProcessing表示组batch;name为modelExec表示执行batch。  | 
res_list  | 
batch组合情况。  | 
start_time(ms)  | 
组batch或执行batch的开始时间,单位ms。  | 
end_time(ms)  | 
组batch或执行batch的结束时间,单位ms。  | 
batch_size  | 
batch中的请求数量。  | 
batch_type  | 
batch中的请求状态(prefill和decode)。  | 
during_time(ms)  | 
执行时间,单位ms。  | 
dp*_rid  | 
DP域包含的请求ID,*表示DP域ID,取值为[0, n-1]。  | 
dp*_size  | 
DP域的batchsize,*表示DP域ID,取值为[0, n-1]。  | 
dp*_forward(ms)  | 
DP域中执行时长最长的forward的执行时间,单位ms,*表示DP域ID,取值为[0, n-1]。  | 
kvcache.csv
记录推理过程的显存使用情况。
字段  | 
说明  | 
|---|---|
domain  | 
标注KVcache事件。  | 
rid  | 
请求ID。  | 
timestamp(ms)  | 
发生显存使用情况变更的时间,单位ms。  | 
name  | 
具体改变显存使用的方法。  | 
device_kvcache_left  | 
显存中剩余blocks数量。  | 
request.csv
记录服务化推理请求为粒度的详细数据。
字段  | 
说明  | 
|---|---|
http_rid  | 
HTTP请求ID。  | 
start_time(ms)  | 
请求到达的时间,单位ms。  | 
recv_token_size  | 
请求的输入长度。  | 
reply_token_size  | 
请求的输出长度。  | 
execution_time(ms)  | 
请求端到端耗时,单位ms。  | 
queue_wait_time(ms)  | 
请求在整个推理过程中在队列中等待的时间,这里包括waiting状态和pending状态的时间,单位ms。  | 
first_token_latency(ms)  | 
首Token时延,单位ms。  | 
pd_split_communication.csv
PD分离部署场景通信类数据。PD分离部署场景属于多机多卡(集群)场景之一,需要在执行采集时使用共享配置文件。
PD分离部署场景及概念详细介绍请参见《MindIE Motor开发指南》中的“集群服务部署 > PD分离服务部署”章节。
字段  | 
说明  | 
|---|---|
rid  | 
请求ID。  | 
http_req_time(ms)  | 
请求到达时间,单位ms。  | 
send_request_time(ms)  | 
P节点开始向D节点发送请求时间,单位ms。  | 
send_request_succ_time(ms)  | 
请求发送成功时间,单位ms。  | 
prefill_res_time(ms)  | 
Prefill执行完成时间,单位ms。  | 
request_end_time(ms)  | 
请求执行完毕的时间,单位ms。  | 
pd_split_kvcache.csv
记录PD分离推理过程的KVCache在PD节点间的传输情况。PD分离部署场景属于多机多卡(集群)场景之一,需要在执行采集时使用共享配置文件。
PD分离部署场景及概念详细介绍请参见《MindIE Motor开发指南》中的“集群服务部署 > PD分离服务部署”章节。
字段  | 
说明  | 
|---|---|
domain  | 
标注PullKVCache事件。  | 
rank  | 
设备ID。  | 
rid  | 
请求ID。  | 
block_tables  | 
block_tables信息。  | 
seq_len  | 
请求长度。  | 
during_time(ms)  | 
KVCache从P节点传输到D节点的执行时间,单位ms。  | 
start_datetime(ms)  | 
KVCache从P节点传输到D节点的开始时间,显示为具体日期,单位ms。  | 
end_datetime(ms)  | 
KVCache从P节点传输到D节点的结束时间,显示为具体日期,单位ms。  | 
start_time(ms)  | 
KVCache从P节点传输到D节点的开始时间,显示为时间戳,单位ms。  | 
end_time(ms)  | 
KVCache从P节点传输到D节点的结束时间,显示为时间戳,单位ms。  | 
request_summary.csv
多维度解析拆解出的request维度数据。
字段  | 
说明  | 
|---|---|
Metric  | 
指标项,包含列表头的指标项和行表头的指标数据。  | 
指标项(列表头)  | 
|
first_token_latency (ms)  | 
首Token时延,单位ms。  | 
subsequent_token_latency (ms)  | 
非首Token时延,指模型生成第一个Token之后,生成后续每个Token所花费的平均时间,单位ms。  | 
total_time (ms)  | 
HTTP请求到结束的总时长,单位ms。  | 
exec_time (ms)  | 
模型执行的总时长,单位ms。  | 
waiting_time (ms)  | 
请求的等待耗时,单位ms。  | 
input_token_num  | 
每个请求对应的输入Token数量。  | 
generated_token_num  | 
每个请求对应的输出Token数量。  | 
指标数据(行表头)  | 
|
Average  | 
平均值。  | 
Max  | 
最大值。  | 
Min  | 
最小值。  | 
P50  | 
P50聚合统计。  | 
P90  | 
P90聚合统计。  | 
P99  | 
P99聚合统计。  | 
batch_summary.csv
多维度解析拆解出的batch维度数据。
字段  | 
说明  | 
|---|---|
Metric  | 
指标项,包含列表头的指标项和行表头的指标数据。  | 
指标项(列表头)  | 
|
prefill_batch_num  | 
每个batch中所有batch_type为prefill的记录数量。  | 
decode_batch_num  | 
每个batch中所有batch_type为decode的记录数量。  | 
prefill_exec_time (ms)  | 
每个batch中batch_type为prefill modelExec的记录的during_time,单位ms。  | 
decode_exec_time (ms)  | 
每个batch中batch_type为decode modelExec的记录的during_time,单位ms。  | 
指标数据(行表头)  | 
|
Average  | 
平均值。  | 
Max  | 
最大值  | 
Min  | 
最小值。  | 
P50  | 
P50聚合统计。  | 
P90  | 
P90聚合统计。  | 
P99  | 
P99聚合统计。  | 
service_summary.csv
多维度解析拆解出的总体服务维度数据。
字段  | 
说明  | 
|---|---|
Metric  | 
指标项,包含列表头的指标项和行表头的指标数据。  | 
指标项(列表头)  | 
|
total_input_token_num  | 
总输入Token数量。  | 
total_generated_token_num  | 
总输出Token数量。  | 
generate_token_speed (token/s)  | 
每秒输出Token数,单位token/s。  | 
generate_all_token_speed (token/s)  | 
每秒处理Token数,单位token/s。(输入输出总数)  | 
指标数据(行表头)  | 
|
Value  | 
值。  | 
prefill.csv
多维度解析拆解出Prefill的batch数据。
字段  | 
说明  | 
|---|---|
name  | 
标注batch内事件名称。  | 
during_time(millisecond)  | 
事件的执行时间,单位ms。  | 
max  | 
事件的最大执行时间,单位ms。  | 
min  | 
事件的最小执行时间,单位ms。  | 
mean  | 
事件的平均执行时间,单位ms。  | 
std  | 
事件执行时间的标准差。  | 
pid  | 
事件的进程号。  | 
tid  | 
事件的线程号。  | 
start_time(microsecond)  | 
事件的开始时间,显示为时间戳,单位us。  | 
end_time(microsecond)  | 
事件的结束时间,显示为时间戳,单位us。  | 
rid  | 
请求ID。  | 
decode.csv
多维度解析拆解出Decode的batch数据。
字段  | 
说明  | 
|---|---|
name  | 
标注batch内事件名称。  | 
during_time(millisecond)  | 
事件的执行时间,单位ms。  | 
max  | 
事件的最大执行时间,单位ms。  | 
min  | 
事件的最小执行时间,单位ms。  | 
mean  | 
事件的平均执行时间,单位ms。  | 
std  | 
事件执行时间的标准差。  | 
pid  | 
事件的进程号。  | 
tid  | 
事件的线程号。  | 
start_time(microsecond)  | 
事件的开始时间,显示为时间戳,单位us。  | 
end_time(microsecond)  | 
事件的结束时间,显示为时间戳,单位us。  | 
ep_balance.csv
记录DeepSeek专家模型服务化推理时,基于MSPTI采集的GroupedMatmul算子负载不均的分析结果。
只要有ep_balance分析能力对应的数据,执行解析命令,结果目录下默认会生成该分析结果的热力图ep_balance.png,图中横轴为各个Device对应的Process ID,纵轴为模型的Decoder Layer层。图中像素点越亮说明耗时越久,各行色差越大说明负载不均现象越明显。
字段  | 
说明  | 
|---|---|
<Process ID>(行表头)  | 
该文件中的行表头显示的是各个Device运行时的进程ID。  | 
<Decoder Layer>(列取值)  | 
该文件中的列取值为各个Device运行的模型Decoder Layer层的序号。  | 
moe_analysis.csv
记录DeepSeek专家模型服务化推理时,基于MSPTI采集的MoeDistirbuteCombine算子和MoeDistributeDispatch算子快慢卡分析结果。
只要有moe_analysis分析能力对应的数据,执行解析命令,结果目录下默认会生成该分析结果的箱型图moe_analysis.png,图中横轴为各个Device对应的Process ID,纵轴为耗时之和。图中展示耗时之和的均值和上下2.5%分位点,各个卡之间差距越大,上下分位点间隔越远,说明快慢卡现象越明显。
字段  | 
说明  | 
|---|---|
Dataset  | 
对应Device的Process ID。  | 
Mean  | 
该Device上MoeDistirbuteCombine算子和MoeDistributeDispatch算子的耗时之和的平均值。  | 
CI Lower  | 
该Device上MoeDistirbuteCombine算子和MoeDistributeDispatch算子之和的下2.5%分位数。  | 
CI Upper  | 
该Device上MoeDistirbuteCombine算子和MoeDistributeDispatch算子之和的上2.5%分位数。  |