Pull Request已成功合入, 合并人@ascend-robot
(感谢 xieanran 的贡献)变更摘要
该 PR 增强了 torch_npu profiler 的分析展示能力:在 prof level0 展示模式下,KernelViewParser 生成的 kernel 视图现在可以额外显示算子的输入/输出形状、数据类型、数据格式等 shape 信息。核心改动是新增 _get_kernel_headers 方法,在未开启全量 kernel 头部(is_all_kernel_headers 为 False,即 level0 场景)时,于 OP_SUMMARY_SHOW_HEADERS 基础上追加源数据中存在的 shape 头部,并新增 CsvHeaders.OP_SUMMARY_SHAPE_HEADERS 常量承载这些头部字段;同时重写相应单元测试以覆盖有无 shape 及非 level0 的场景。
主要改动
-
新增 shape 头部常量: 在
CsvHeaders中新增OP_SUMMARY_SHAPE_HEADERS,包含Input Shapes、Input Data Types、Input Formats、Output Shapes、Output Data Types、Output Formats六个字段,作为 kernel 视图展示形状信息的头部来源。 -
新增
_get_kernel_headers方法: 在KernelViewParser中新增类方法_get_kernel_headers(all_headers, is_all_kernel_headers),当is_all_kernel_headers为 True 时返回全部头部;否则返回OP_SUMMARY_SHOW_HEADERS加上源数据中实际存在的 shape 头部,实现 level0 模式下形状列的按需展示。 -
run方法接入新逻辑:KernelViewParser.run中OpSummaryBean.headers的赋值由原先在"全量头部"与OP_SUMMARY_SHOW_HEADERS之间二选一,改为调用_get_kernel_headers(all_data[0].all_headers, ProfilerConfig().is_all_kernel_headers()),使 level0 输出 CSV 中可包含形状列。 -
重写单元测试: 将
test_kernel_view_parser.py从unittest迁移到torch_npu.testing.TestCase/run_tests框架,新增_get_kernel_headers在 level0 有无 shape、非 level0 三种场景的用例,并补充generate_view在有无 shape 情况下的输出头部与写入断言。


/


/lgtm




【合入来源】
【修改方案】
【资料变更】
【接口变更】
【功能验证】
【CheckList】