已合并
fix(msprof): update task_type and mix_block_dim_ratio from bs_task_type #1057
fix(msprof): update task_type and mix_block_dim_ratio from bs_task_type #1057
已合并
candyhong创建于 1月7日
candyhong成员
1月7日

描述

一、背景

当前性能采集流程存在两类核心问题,直接导致mix类型算子性能分析偏差:

  1. task_type识别错误:TA侧无法精准区分mix类型(MIX_AIC/MIX_AIV)与纯AIC算子,所有mix算子均被误上报为MSPROF_GE_TASK_TYPE_AI_CORE,无法建立mix算子与kernel元信息的正确关联;

  2. 从核数据采集缺失:缺乏主核/从核比例(mix_block_dim_ratio)上报,导致msprof工具无法识别从核数量,mix算子的从核性能数据(如MIX_AIC算子的aiv_time)始终为空,数据完整性不足。

二、改动目标

  1. 根据bs上报的bs_task_type 精准识别MIX_AIC/MIX_AIV两种混合算子类型;
  2. 实现mix_block_dim_ratio上报,修复从核性能数据采集为空的问题;
  3. 保持纯AIV/纯AIC算子原有上报逻辑不变,当bs没有上报bs_task_type时,保持原有上报逻辑。

三、编码规则

bs_task_type编码规则表

编码位 含义 取值范围 对应说明
十位 基础task_type 1-4 1=AIV、2=AI_CORE、3=MIX_AIC、4=MIX_AIV
个位 mix_block_dim_ratio(主/从核比例) 0-2 仅mix类型算子有效,纯算子场景默认0

核数比例映射规则表(以block_dim=10为例)

算子类型 mix_block_dim_ratio 主核规格 从核规格
MIX_AIC(主核AIC,从核AIV) 0 AIC:10 AIV:0
1 AIC:10 AIV:10
2 AIC:10 AIV:20
MIX_AIV(主核AIV,从核AIC) 0 AIV:10 AIC:0
1 AIV:10 AIC:10

四、具体改动方案

  1. 新增回调函数与变量映射:编译器新增回调函数xx__infer_task_type_function,引入TA侧变量bs_task_type,根据编码规则获取 task_type 和 mix_block_dim_ratio
  2. mix算子ctxID上报:基于bs_task_type识别出mix类型算子时,判断是否是mix算子,mix算子则上报ctxID;纯AIC/AIV算子保持原有逻辑。
  3. 新增nodeBasicBlockDim字段:解析bs_task_type中的mix_block_dim_ratio,将nodeBasicBlockDim更新为 (mixBlockNumRation << 16) + blockNum:
    • 低16位:保留原blockNum(实际运行的主核数量);
    • 高16位:存储mix_block_dim_ratio(从核数量比例)。
  4. 回退机制
    • 当没有获取xx__infer_task_type_function时,task_type 回退回原来规则(如果mix_mode='aiv' 则设置为AIV,否则设置为AI_CORE),对应mix_block_dim_ratio默认为0

五、核心流程图

graph TD  
    A["性能采集上报触发"] --> B{"是否获取到 xx__infer_task_type_function 回调"}  
    B -- 是 --> C["解析为TA侧bs_task_type变量"]  
    C --> D{"根据十位编码判断task_type"}  
    D -- 纯AIV(1) --> E["保持原有逻辑,不上报ctxID"]  
    D -- 纯AIC(2) --> E  
    D -- MIX_AIC(3)/MIX_AIV(4) --> F["补充上报 ctxID,用于关联subtask的kernel元信息"]  
    F --> G["解析个位编码获取mix_block_dim_ratio"]  
    G --> H["重构nodeBasicBlockDim:(ratio << 16) + blockNum"]  
    B -- 否 --> I["执行回退机制"]  
    I --> J{"mix_mode是否为'aiv'"}  
    J -- 是 --> K["task_type设为AIV,ratio默认为0"]  
    J -- 否 --> L["task_type设为AI_CORE,ratio默认为0"]  
    E --> M["上报性能数据的nodeBasicInfo(或 ctxID)"]  
    H --> M  
    K --> M  
    L --> M

相关资料

  1. 关联PR:https://gitcode.com/Ascend/triton-ascend/pull/936
  2. 文档参考:https://www.hiascend.com/document/detail/zh/canncommercial/83RC1/API/ascendcopapi/atlasascendc_api_07_0218.html

checklist

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 candyhong 的贡献)
Ccandyhong成员
1月7日 创建了 pull request,commit 9f5492d3
ascend-robot
ascend-robot成员
1月7日 评论:

Thank your for your pull-request.

The full list of commands accepted by me can be found at here.

You can get sig-info at here

likedislike
CANN-robot
CANN-robot成员
1月7日 评论:

libing-pipeline创建中,请等待……

likedislike
ascend-robot
ascend-robot成员
1月7日 评论:

以下是根据您提交的修改文件推荐的Reviewer和Committer序列,需各模块评审通过后方可合入

Module List Reviewers Committers
repo-Ascend/triton-ascend meloliu12327, wcleungaj, fengrui886, kang-ingu, candyhong HinPeng, ccdedreams, wcleungaj, shijingchang, zhaozhijie
likedislike
此处折叠了73条消息 查看更多
ascend-robotascend-robot成员
1月7日 添加了label:approved
luobq
luobq
1月7日 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
1月7日 添加了label:lgtm
ascend-robot
ascend-robot成员
1月7日 评论:

Review Guide

This Pull-Request Passes Review.
Committers who writed a comment of /approve are: zhang-chunli01.
Reviewers who writed a comment of /lgtm are: candyhong, zhang-chunli01, luobaiqing.

likedislike
ascend-robotascend-robot成员
1月7日 合入了pull request