From 46ce9c225c994e0d50df9d0de1b7d1544a8021a7 Mon Sep 17 00:00:00 2001 From: Ronnie_zheng Date: Wed, 17 Nov 2021 18:35:12 +0800 Subject: [PATCH 1/3] add FAQ about resize and benchmark/msame --- ...47\272\277\346\216\250\347\220\206-FAQ.md" | 86 +++++++++++++++++- .../images/FAQ001.png" | Bin 0 -> 34042 bytes 2 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 "Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/images/FAQ001.png" diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" index 614d750..cba8fe4 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" @@ -4,9 +4,11 @@ - [2 om模型转换问题汇总](#2-om模型转换问题汇总) - [2.1 如何查看 `ONNX/om/pbtxt` 模型](#21-如何查看-onnxompbtxt-模型) - [2.2 `Exporting the operator {opname} to ONNX opset version {version} is not supported.`](#22-exporting-the-operator-opname-to-onnx-opset-version-version-is-not-supported) + - [2.3 resize不支持5d输入的解决方案](#23-resize不支持5d输入的解决方案) - [3 OM离线推理失败问题汇总](#3-om离线推理失败问题汇总) - [3.1 找不到atc命令或找不到ascend动态库](#31-找不到atc命令或找不到ascend动态库) - - [模型推理工具常见的错误&&解决方案](#模型推理工具常见的错误解决方案) + - [3.2模型推理工具常见的错误&&解决方案](#32模型推理工具常见的错误解决方案) + - [3.3msame和benchmark在多batch下推理区别](#33msame和benchmark在多batch下推理区别) - [4 精度调试常见问题](#4-精度调试常见问题) - [5 性能优化常见问题](#5-性能优化常见问题) - [5.1 如何使用AIPP进行性能提升](#51-如何使用aipp进行性能提升) @@ -45,6 +47,65 @@ #x = F.adaptive_avg_pool2d(input, output_size=bin_size) x = adaptive_avg_pool_op(input, (bin_size, bin_size)) # 替换上面代码 ``` +## 2.3 resize不支持5d输入的解决方案 +- 错误现象 + atc转om报错,经定位发现是resize输入是5D的导致后面算子shape不对 + ```shell + # 报错信息 + E89999: Inner Error! + op[Concat_114], the input shape dims should be equal except merge axis.[FUNC:ConcatInferShapeCommon][FILE:split_combination_ops.cc][LINE:705] + Call InferShapeAndType for node:Concat_114(ConcatD) failed[FUNC:Infer][FILE:infershape_pass.cc][LINE:117] + process pass InferShapePass on node:Concat_114 failed, ret:4294967295[FUNC:RunPassesOnNode][FILE:base_pass.cc][LINE:433] + build graph failed, graph id:0, ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1327] + ``` +- 原因分析 + CANN层目前还不支持5d输入的resize,所以需要改图规避支持。修改前后对比如下 + ![FAQ001](./images/FAQ001.png) +- 解决方案 + 使用 [MagicONNX工具](https://gitee.com/Ronnie_zheng/MagicONNX/tree/master) 进行改图,这里给出该问题的改图代码,更多功能详见[使用教程](https://gitee.com/Ronnie_zheng/MagicONNX/blob/master/docs/tutorials.md)和[API说明](https://gitee.com/Ronnie_zheng/MagicONNX/blob/master/docs/operations.md) + ```python + import numpy as np + from magiconnx import OnnxGraph + + + def modify(path): + graph = OnnxGraph(path) + resizes = graph.get_nodes("Resize") + shapes = [[[1, 512*4, 4, 8], [1, 512*4, 8, 16], [1, 512, 4, 8*16], [1, 512, 8, 8*16], [1, 512, 8, 8, 16]], + [[1, 256*8, 8, 16], [1, 256*8, 16, 32], [1, 256, 8, 16*32], [1, 256, 16, 16*32], [1, 256, 16, 16, 32]], + [[1, 128*16, 16, 32], [1, 128*16, 32, 64], [1, 128, 16, 32*64], [1, 128, 32, 32*64], [1, 128, 32, 32, 64]]] + for idx, node in enumerate(resizes): + reshape1 = graph.add_node(f'Reshape_{node.name}', 'Reshape') + graph.add_initializer(f'shape_{node.name}', np.array(shapes[idx][0])) + reshape1.inputs = [node.inputs[0], f'shape_{node.name}'] + reshape1.outputs = [f'Reshape_{node.name}'] + + graph[node.inputs[-1]].value = np.array(shapes[idx][1]) + out_name = node.outputs[0] + node.set_input(0, f'Reshape_{node.name}') + node.set_output(0, f'{node.name}_reshape') + + reshape2 = graph.add_node(f'Reshape2_{node.name}', 'Reshape') + graph.add_initializer(f'shape2_{node.name}', np.array(shapes[idx][2])) + reshape2.inputs = [f'{node.name}_reshape', f'shape2_{node.name}'] + reshape2.outputs = [f'Reshape2_{node.name}_out'] + + resize2 = graph.add_node(f'Resize2_{node.name}', 'Resize') + graph.add_initializer(f'size_{node.name}', np.array(shapes[idx][3])) + resize2.inputs = [f'Reshape2_{node.name}_out', node.inputs[1], node.inputs[1], f'size_{node.name}'] + resize2.outputs = [f'Resize2_{node.name}'] + + reshape3 = graph.add_node(f'Reshape3_{node.name}', 'Reshape') + graph.add_initializer(f'shape3_{node.name}', np.array(shapes[idx][4])) + reshape3.inputs = [f'Resize2_{node.name}', f'shape3_{node.name}'] + reshape3.outputs = [out_name] + + graph.save('modify.onnx') + + if __name__ == "__main__": + modify('src.onnx') + ``` + # 3 OM离线推理失败问题汇总 ## 3.1 找不到atc命令或找不到ascend动态库 - 现象描述 @@ -68,7 +129,7 @@ export ASCEND_AICPU_PATH=/usr/local/Ascend/ascend-toolkit/latest ``` -## 模型推理工具常见的错误&&解决方案 +## 3.2模型推理工具常见的错误&&解决方案 当前默认的模型推理是benchmark工具,以下为常见错误和一些解决方案: - 错误现象: @@ -86,6 +147,27 @@ - 通常是输入的input_image_path/input_text_path格式问题,如常见的nlp模型通常会有多输入的场合会有输入顺序/输入名的问题 - 当前benchmark工具支持的模型类型有:图像/自然语音/YOLO检测/搜索/语义理解/翻译,但存在不支持的输入类型如:3D的输入(如视频理解/点云等),可以采用[msame工具](https://gitee.com/ascend/tools/tree/master/msame)进行推理。 +## 3.3msame和benchmark在多batch下推理区别 +- 错误现象 + 使用msame推理报如下错误 + ```shell + [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.376 [davinci_model.cc:3466]7672 CheckUserAndModelSize: ErrorNo: 145000(Parameter invalid.) [EXEC][DEFAULT][Check][Param] input size:150528 from user add align:64 < op_size:2408448 in model, model_id:1 + [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.386 [davinci_model.cc:3546]7672 UpdateIoTaskArgs: ErrorNo: 145000(Parameter invalid.) [EXEC][DEFAULT][Call][CheckInputAndModelSize] failed, op[image] + [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.395 [davinci_model.cc:3483]7672 CopyModelData: ErrorNo: 145000(Parameter invalid.) [EXEC][DEFAULT][Call][UpdateIoTaskArgs] [ZCPY] Update input data to model:1 failed. + [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.406 [davinci_model.cc:3921]7672 NnExecute: ErrorNo: 4294967295(failed) [EXEC][DEFAULT][Copy][ModelData] failed. model id: 1 + [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.414 [graph_loader.cc:283]7672 ExecuteModel: ErrorNo: 145000(Parameter invalid.) [EXEC][DEFAULT][Execute][Model] failed, model_id:1. + [ERROR] ASCENDCL(7672,msame):2021-11-16-12:57:02.335.428 [model.cpp:824]7672 ModelExecute: [EXEC][DEFAULT][Exec][Model]Execute model failed, ge result[145000], modelId[1] + [ERROR] ASCENDCL(7672,msame):2021-11-16-12:57:02.335.446 [model.cpp:869]7672 aclmdlExecute: [EXEC][DEFAULT][Exec][Model]modelId[1] execute failed, result[145000] + [ERROR] execute model failed, modelId is 1 + [ERROR] model execute failed + [ERROR] Sample process failed + ``` + - 原因分析 + benchmark工具多batch模式下设置 `batch_size=16` 数值后,benchmark工具会一次读取16个bin进行推理,所以一个bin对应的是一张图片; + msame工具只会一次读取1个bin进行推理(没有`batch_size`命令行参数),所以多batch模式下需要一个bin对应的是16张图片; + - 解决方案 + 预处理时把16张图片保存成一个bin文件 + # 4 精度调试常见问题 # 5 性能优化常见问题 diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/images/FAQ001.png" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/images/FAQ001.png" new file mode 100644 index 0000000000000000000000000000000000000000..0c396ece29c3a7daaffe1c0aeba1adfd4a475d5a GIT binary patch literal 34042 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 literal 0 HcmV?d00001 -- Gitee From 0a877328c4f337b8675b6bf1b998a86fb2c1ac47 Mon Sep 17 00:00:00 2001 From: Ronnie_zheng Date: Wed, 17 Nov 2021 19:10:52 +0800 Subject: [PATCH 2/3] foramt optimizer --- ...46\273\347\272\277\346\216\250\347\220\206-FAQ.md" | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" index cba8fe4..41f0101 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" @@ -7,8 +7,8 @@ - [2.3 resize不支持5d输入的解决方案](#23-resize不支持5d输入的解决方案) - [3 OM离线推理失败问题汇总](#3-om离线推理失败问题汇总) - [3.1 找不到atc命令或找不到ascend动态库](#31-找不到atc命令或找不到ascend动态库) - - [3.2模型推理工具常见的错误&&解决方案](#32模型推理工具常见的错误解决方案) - - [3.3msame和benchmark在多batch下推理区别](#33msame和benchmark在多batch下推理区别) + - [3.2 模型推理工具常见的错误&&解决方案](#32-模型推理工具常见的错误解决方案) + - [3.3 msame和benchmark在多batch下推理区别](#33-msame和benchmark在多batch下推理区别) - [4 精度调试常见问题](#4-精度调试常见问题) - [5 性能优化常见问题](#5-性能优化常见问题) - [5.1 如何使用AIPP进行性能提升](#51-如何使用aipp进行性能提升) @@ -49,6 +49,7 @@ ``` ## 2.3 resize不支持5d输入的解决方案 - 错误现象 + atc转om报错,经定位发现是resize输入是5D的导致后面算子shape不对 ```shell # 报错信息 @@ -59,9 +60,11 @@ build graph failed, graph id:0, ret:1343242270[FUNC:BuildModel][FILE:ge_generator.cc][LINE:1327] ``` - 原因分析 + CANN层目前还不支持5d输入的resize,所以需要改图规避支持。修改前后对比如下 ![FAQ001](./images/FAQ001.png) - 解决方案 + 使用 [MagicONNX工具](https://gitee.com/Ronnie_zheng/MagicONNX/tree/master) 进行改图,这里给出该问题的改图代码,更多功能详见[使用教程](https://gitee.com/Ronnie_zheng/MagicONNX/blob/master/docs/tutorials.md)和[API说明](https://gitee.com/Ronnie_zheng/MagicONNX/blob/master/docs/operations.md) ```python import numpy as np @@ -129,7 +132,7 @@ export ASCEND_AICPU_PATH=/usr/local/Ascend/ascend-toolkit/latest ``` -## 3.2模型推理工具常见的错误&&解决方案 +## 3.2 模型推理工具常见的错误&&解决方案 当前默认的模型推理是benchmark工具,以下为常见错误和一些解决方案: - 错误现象: @@ -147,7 +150,7 @@ - 通常是输入的input_image_path/input_text_path格式问题,如常见的nlp模型通常会有多输入的场合会有输入顺序/输入名的问题 - 当前benchmark工具支持的模型类型有:图像/自然语音/YOLO检测/搜索/语义理解/翻译,但存在不支持的输入类型如:3D的输入(如视频理解/点云等),可以采用[msame工具](https://gitee.com/ascend/tools/tree/master/msame)进行推理。 -## 3.3msame和benchmark在多batch下推理区别 +## 3.3 msame和benchmark在多batch下推理区别 - 错误现象 使用msame推理报如下错误 ```shell -- Gitee From 605a89b5ac45d01932c9e59f49b79ada247baeaf Mon Sep 17 00:00:00 2001 From: Ronnie_zheng Date: Wed, 17 Nov 2021 19:14:37 +0800 Subject: [PATCH 3/3] foramt optimizer2 --- ...rch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" index 41f0101..e74e7ae 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-FAQ.md" @@ -152,6 +152,7 @@ ## 3.3 msame和benchmark在多batch下推理区别 - 错误现象 + 使用msame推理报如下错误 ```shell [ERROR] GE(7672,msame):2021-11-16-12:57:02.335.376 [davinci_model.cc:3466]7672 CheckUserAndModelSize: ErrorNo: 145000(Parameter invalid.) [EXEC][DEFAULT][Check][Param] input size:150528 from user add align:64 < op_size:2408448 in model, model_id:1 @@ -166,9 +167,11 @@ [ERROR] Sample process failed ``` - 原因分析 + benchmark工具多batch模式下设置 `batch_size=16` 数值后,benchmark工具会一次读取16个bin进行推理,所以一个bin对应的是一张图片; msame工具只会一次读取1个bin进行推理(没有`batch_size`命令行参数),所以多batch模式下需要一个bin对应的是16张图片; - 解决方案 + 预处理时把16张图片保存成一个bin文件 # 4 精度调试常见问题 -- Gitee