diff --git a/profiler/compare_tools/README.md b/profiler/compare_tools/README.md index daca4bb55446b1f4a7bdad91c69afbbda1522851..ce0782a0970775abbdcbd9df08c17d9ec17696b4 100644 --- a/profiler/compare_tools/README.md +++ b/profiler/compare_tools/README.md @@ -175,6 +175,21 @@ python performance_compare.py [基准性能数据文件] [比对性能数据文 | --use_input_shape | 开启算子精准匹配,默认关闭。使用示例:--use_input_shape | 否 | | --max_kernel_num | 设置CPU侧算子下发的最大kernel数量,当超过设定值时工具会自动往下找子算子,直至满足条件。默认仅比对最上层算子,粒度较粗;若想要更细粒度的算子比对,可设置该参数,参数值不得小于4,参数值设置越小,比对粒度越细。使用示例:--max_kernel_num=10 | 否 | | --op_name_map | 设置GPU与NPU等价的算子名称的映射关系,以字典形式存入。使用示例:--op_name_map={'Optimizer.step#SGD.step':'Optimizer.step#NpuFusedSGD.step'} | 否 | +| --disable_module | 算子性能比对。当前配置该参数时,无论是否采集module信息,均进行算子级别的比对。 | 否 | + +#### 自定义比对算子 + +一般情况下compare功能按照默认配置的算子进行比对,若用户需要对特定算子的性能进行比对和分析,可以通过在[compare_config.ini](https://gitee.com/ascend/mstt/blob/master/profiler/compare_tools/compare_backend/compare_config/compare_config.ini)文件中配置需要比对的算子名的识别关键词,之后再执行比对操作(msprof-analyze compare),比对结果在结果文件performance_comparison_result_{timestamp}.csv中呈现。 + +配置算子名的识别关键词为算子名称中的一部分,代表只要算子名称中包含该关键词,那么该算子会进行比对。 + +配置格式如下,算子名识别关键词之间用逗号隔开且名称为英文全小写: + +![config](img/config.PNG) + +上图中为compare_config.ini文件当前的默认配置,即默认进行如上类型算子的性能比对。 + +其中FA_MASK、CONV_MASK、MATMUL_MASK为GPU和NPU共有的上层应用operator的识别关键词,CUBE_MASK为底层GPU kernel cube识别的关键词,TRANS_MASK为底层NPU转换类kernel识别的关键词。 ## 比对结果说明 @@ -210,7 +225,7 @@ MindSpore场景仅支持**总体性能**和**通信性能**的对比。 #### csv文件结果 -总体性能比对结果在performance_comparison_result_*.xlsx中OverallMetrics的sheet页呈现时,示例如下: +总体性能比对结果在performance_comparison_result_*.csv中OverallMetrics的sheet页呈现时,示例如下: ![OverallMetrics](./img/OverallMetrics.png) @@ -302,7 +317,7 @@ MindSpore场景暂不支持。 - Module Level:Module的层级。 - Module Name:Module唯一标识名,如/ DynamicNet_0/ Linear_0。 - Operator Name:框架侧算子名,如aten::add。字段为[ TOTAL ]代表该module的总体情况。 -- Kernel Detail:算子详细信息。 +- Kernel Details:算子详细信息,包括:算子名、task id、task type、input shape、执行耗时。 - Device Self Time(ms):该模块调用的算子(排除子模块)在device侧执行的总耗时,单位ms。 - Number:该Module或算子被调用的次数。 - Device Total Time(ms):该模块调用的算子(包含子模块)在device侧执行的总耗时,单位ms。 @@ -318,7 +333,7 @@ ModuleCompare:模块及模块下算子比对的明细展示,可以查看每 - Module Level:Module的层级。 - Module Name:Module唯一标识名,如/ DynamicNet_0/ Linear_0。 - Operator Name:框架侧算子名,如aten::add。字段为[ TOTAL ]代表该module的总体情况。 -- Kernel Detail:算子详细信息。 +- Kernel Details:算子详细信息,包括:算子名、task id、task type、input shape、执行耗时。 - Device Self Time(us):该模块调用的算子(排除子模块)在device侧执行的总耗时,单位us。 - Device Total Time(us):该模块调用的算子(包含子模块)在device侧执行的总耗时,单位us。 - Device Total Time Diff(us):GPU与NPU的Device Total Time(us)差值。 diff --git a/profiler/compare_tools/img/config.PNG b/profiler/compare_tools/img/config.PNG new file mode 100644 index 0000000000000000000000000000000000000000..01d83c80ef97b9dd4acf6009151c24bfd46b0785 Binary files /dev/null and b/profiler/compare_tools/img/config.PNG differ