diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md"
new file mode 100644
index 0000000000000000000000000000000000000000..33a373141ec7625a81a5c56b7f516b814d8466ba
--- /dev/null
+++ "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md"
@@ -0,0 +1,225 @@
+# C++预测测试开发规范
+
+## 目录
+- [0.概述](#概述)
+- [1.总览](#总览)
+ - [1.1 全链条自动化测试](#全链条自动化测试)
+ - [1.2 文本检测样板间概览](#文本检测样板间概览)
+- [2.全链条规范接入流程](#全链条规范接入流程)
+ - [2.1 规范化输出预测日志](#规范化输出预测日志)
+ - [2.2 准备测试模型和数据](#准备测试模型和数据)
+ - [2.3 编写自动化测试代码](#编写自动化测试代码)
+- [3.附录:自动化测试脚本test_inference_cpp.sh 函数介绍](#附录)
+
+
+## 0. 概述
+训推一体认证(TIPC)旨在监控框架代码更新可能导致的**模型训练、预测报错、性能下降**等问题。本文主要介绍TIPC中**C++预测测试**的接入规范和监测点,是在[基础测试]()上针对C++测试的补充说明。
+
+主要监控的内容有:
+
+- 飞桨框架更新后,代码仓库模型的C++预测是否能正常走通;(比如API的不兼容升级)
+- 飞桨框架更新后,代码仓库模型的C++预测速度是否合理;
+
+为了能监控上述问题,希望把代码仓库模型的C++预测测试加到飞桨框架的CI和CE中,提升PR合入的质量。因此,需要在代码仓库中加入运行脚本(不影响代码仓库正常运行),完成模型的自动化测试。
+
+可以建立的CI/CE机制包括:
+
+ 1. **全量数据走通开源模型C++预测,并验证模型预测速度和精度是否符合设定预期;(单模型30分钟内)**
+ a. 保证预测结果正确,预测速度符合预期(QA添加中)
+
+注:由于CI有时间限制,所以在测试的时候需要限制运行时间,所以需要构建一个很小的数据集完成测试。
+
+
+## 1. 总览
+
+### 1.1 全链条自动化测试
+
+本规范测试的链条如下(其中相邻两个模块之间是两两组合关系),可以根据代码仓库需要,适当删减链条。
+![](images/tipc_cpp_infer.png)
+
+上图各模块具体测试点如下:
+
+- slim模型选型方面:
+ - **非量化模型(必选)**
+ - 量化模型(可选)
+- Paddle C++ inference 预测部署方面:
+ - **Linux GPU上不同batchsize,是否开启TensorRT,不同预测精度(FP32,FP16,INT8)的运行状态(必选)**
+ - **Linux CPU上不同batchsize,是否开启MKLDNN,不同预测精度(FP32,FP16,INT8)的运行状态(必选)**
+ - Win GPU,macOS CPU和Win CPU(可选)
+
+### 1.2 文本检测样板间概览
+
+在PaddleOCR中,以文本检测为例,提供了本规范的样板间,可以完成概述部分提到的1种CI/CE机制。
+
+C++预测测试工具位于PaddleOCR dygraph分支下的[test_tipc目录](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc),与C++预测样板间相关的主要文件如下:
+
+```
+test_tipc/
+├── configs/ # 配置文件目录
+ ├── ppocr_det_mobile # ppocr_det_mobile模型的测试配置文件目录
+ ├── model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt # 测试Linux上c++预测的配置文件
+├── results/ # 预先保存的预测结果,用于和实际预测结果进行精读比对
+ ├── cpp_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型c++预测的fp32精度的结果
+ ├── cpp_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型c++预测的fp16精度的结果
+├── prepare.sh # 完成test_*.sh运行所需要的数据和模型下载
+├── test_inference_cpp.sh # 测试c++预测的主程序
+├── compare_results.py # 用于对比log中的预测结果与results中的预存结果精度误差是否在限定范围内
+└── readme.md # 使用文档
+```
+
+不同代码仓库的`configs`和`results`目录下的内容可根据实际情况进行调整。
+
+配置文件`model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt`需满足[TIPC配置文件命名规范](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83)。
+
+
+## 2. C++预测接入TIPC流程
+C++预测接入TIPC包含如下三个步骤,接下来将依次介绍这三个部分。
+
+ - 规范化输出预测日志
+ - 准备测试模型和数据
+ - 编写自动化测试代码
+
+
+
+### 2.1 规范化输出预测日志
+类似于python预测等基础测试,C++预测测试也需要规范不同代码仓库中Paddle Inference预测输出的格式,方便QA统一自动化测试。针对C++的预测log规范输出工具也已集成到[AutoLog工具包](https://github.com/LDOUBLEV/AutoLog)。
+
+C++测试要求规范输出预测结果及以下信息:
+
+- 运行的硬件,CPU还是GPU
+- 运行配置信息,是否开启了IR 优化、TRT、MKLDNN,以及具体使用的线程数
+- 运行的模型名称
+- 运行的数据信息,包括batch size,数据量
+- 性能信息,inference 各阶段平均预测时间
+- 单张图片的预测结果
+
+代码主要修改有三步:编译中引入auto_log类,预测耗时打点和打印输出信息。
+
+1.在`external-cmake`目录中引入日志打印工具[`autolog`](https://github.com/LDOUBLEV/AutoLog/blob/main/auto_log/autolog.h),并在`CMakeLists.txt`中进行配置。
+
+`external-cmake/auto-log.cmake`内容如下,[查看完整源码](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/deploy/cpp_infer/external-cmake/auto-log.cmake):
+```
+find_package(Git REQUIRED)
+include(FetchContent)
+
+set(FETCHCONTENT_BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/third-party")
+
+FetchContent_Declare(
+ extern_Autolog
+ PREFIX autolog
+ GIT_REPOSITORY https://github.com/LDOUBLEV/AutoLog.git
+ GIT_TAG main
+)
+FetchContent_MakeAvailable(extern_Autolog)
+```
+
+在`CMakeLists.txt`中进行配置,[查看完整源码](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/deploy/cpp_infer/CMakeLists.txt#L210):
+```
+include(FetchContent)
+include(external-cmake/auto-log.cmake)
+include_directories(${FETCHCONTENT_BASE_DIR}/extern_autolog-src)
+```
+
+2.添加预测耗时打点:
+
+(1)在模型预测中,统计前处理,预测,后处理时间,可参考[代码](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/deploy/cpp_infer/src/ocr_det.cpp#L171)。
+(2)在main函数中使用autolog工具打印日志,参考[代码](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/deploy/cpp_infer/src/main.cpp#L122)。主要包括:
+
+- 引入头文件:
+```
+#include "auto_log/autolog.h"
+```
+
+- 调用AutoLogger类打印日志:
+```
+ if (FLAGS_benchmark) {
+ AutoLogger autolog("ocr_det",
+ FLAGS_use_gpu,
+ FLAGS_use_tensorrt,
+ FLAGS_enable_mkldnn,
+ FLAGS_cpu_threads,
+ 1,
+ "dynamic",
+ FLAGS_precision,
+ time_info,
+ cv_all_img_names.size());
+ autolog.report();
+ }
+```
+
+3.打印输出信息:
+按照上述两步添加预测耗时打点和日志打印工具后,运行程序可打印出如下格式日志:
+![](images/tipc_cpp_infer_log.png)
+
+
+4.预测结果格式规范化:
+(1)预先保存预测结果,作为校验预测结果是否正确的groundtruth。预测结果可以保存为两个,分别是FP32精度下预测的输入,和FP16预测精度下的输出结果。以OCR 为例,在`PaddleOCR/test_tipc/results`文件夹下存放了两个txt文件,分别是:
+```
+cpp_ppocr_det_mobile_results_fp32.txt
+cpp_ppocr_det_mobile_results_fp16.txt
+```
+里面按行存储每张测试图片的预测结果,格式如下:
+![](images/tipc_cpp_infer_gt.png)
+
+(2)在运行日志中打印预测结果,或者保存在txt文件中,确保可以用python加载到输出并和预先保存的预测的结果进行对比。以PP-OCR检测为例,日志中的预测结果打印格式如下:
+![](images/tipc_cpp_infer_res.png)
+
+(3)预测精度比对。分别读取预测日志文件中的预测结果和预先保存在txt文件中的预测结果,验证两个结果是否是一致的。【验证是否一致的步骤可以在QA测试时完成,但是线下需要自测通过】
+
+结果对比脚本可以参考代码:https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/compare_results.py
+
+
+### 2.2 准备测试模型和数据
+与python训练预测等基础测试方式类似,使用脚本`prepare.sh`可以下载测试所需推理模型和数据(可以直接使用python预测所准备的数据集)。`prepare.sh` 根据不同的运行模式,配合从配置文件中解析得到的模型区别性名称,下载不同的数据和训练模型用于完成后续测试。
+![](images/tipc_cpp_infer_prepare.png)
+
+
+### 2.3 编写自动化测试代码
+C++预测的自动化测试代码在脚本[test_inference_cpp.sh](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/test_inference_cpp.sh)中,其中包含`编译opencv(可选)`、`编译可执行文件`、`运行测试`三个部分。
+
+C++预测自动化测试的运行命令如下:
+```shell
+bash test_tipc/test_inference_cpp.sh test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt
+```
+
+理论上只需要修改配置文件和`prepare.sh`就可以完成自动化测试,本节将详细介绍如何修改配置文件,完成C++预测测试。运行脚本`test_inference_cpp.sh`将会在附录中详细介绍。
+
+按如下方式在参数文件`model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt`中添加C++预测部分参数:
+![](images/tipc_cpp_infer_params.png)
+
+参数说明:
+
+|行号 | 参数 | 参数介绍 |
+|---|---|---|
+|2 | model_name: ocr_det | 模型名称,该参数会在prepare.sh脚本中用到|
+|3 | use_opencv: True/False | 表示是否使用use_opencv,如果代码仓库没有这个参数,可以设置为null。不需要opencv时,会跳过编译opencv的步骤|
+|4 | infer_model: ./inference/ch_ppocr_mobile_v2.0_det_infer/ | 模型路径 |
+|5 | infer_quant: True/False | 54行设置的模型路径是否是量化模型 |
+|6 | inference: ./deploy/cpp_infer/build/ppocr det| C++预测命令|
+|7 | --use_gpu:True|False | 设置GPU的参数,其他代码仓库可能是device参数,用于设置不同硬件的参数,作用类似。设置多个配置时,中间用|隔开,会分别运行不同配置下的预测 | --device:cpu|gpu|
+|8 | --enable_mkldnn:True|False | 设置是否开启mkldnn |
+|9 | --cpu_threads:1|6 | 设置CPU线程数,如果要测试CPU上不同线程下的预测速度和精度,可以设置多个值,不同值用|隔开 |
+|10 | --rec_batch_num:1 | 设置batch_size 的参数 |
+|11 | --use_tensorrt:False|True | 设置开启TRT的参数 |
+|12 | --precision:fp32|fp16| 设置开启TRT后预测精度的参数 | --precision:fp32|int8|fp16 |
+|13 | --det_model_dir: | 设置加载inference模型路径的参数,无需设置:后的部分 | null: |
+|14 | --image_dir:./inference/ch_det_data_50/all-sum-510/ | 设置预测的数据路径 |
+|15 | null:null | 预留位置,无需理会 | null:null:null |
+|16 | --benchmark:True | 设置是否开启AutoLog的参数 |
+
+
+## 3. 附录:C++预测自动化测试脚本test_inference_cpp.sh 函数介绍
+[C++预测核心函数](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/test_inference_cpp.sh#L43):
+
+- func_cpp_inference() :执行C++预测的函数,如果是GPU上,会测试是否开启TensorRT和不同精度,不同batch_size下的情况;如果是CPU,会测试是否开启mkldnn,不同CPU线程数,不同batch_size下的情况。另外,如果是量化模型,则仅测试CPU+mkldnn和GPU+TensorRT+int8的组合。
+
+[编译opencv](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/test_inference_cpp.sh#L116):
+
+- 如果不需要opencv,如语音或nlp任务,删除本段代码即可。
+- 需要编译opencv时,首先检查是否已经存在指定版本的opencv,比较md5,如果已有,则跳过编译,避免多次测试时重复下载和编译。
+
+[编译可执行文件](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/test_inference_cpp.sh#L158):
+
+- 可根据实际任务调整编译选项。
+
+
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer.png"
new file mode 100644
index 0000000000000000000000000000000000000000..ef23e23e5f679f926a3f98762e5b470dd02ad999
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer.png" differ
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_gt.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_gt.png"
new file mode 100644
index 0000000000000000000000000000000000000000..e351894edd800025b75ff42e3c09bbf4171faa9c
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_gt.png" differ
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_log.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_log.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b64d87e8d802b94192a9ec15858991f01972cdad
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_log.png" differ
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_params.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_params.png"
new file mode 100644
index 0000000000000000000000000000000000000000..3bc51cc13d0272a7812156419798dbab1ad0ed25
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_params.png" differ
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_prepare.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_prepare.png"
new file mode 100644
index 0000000000000000000000000000000000000000..d266fc0e7edeccfe85dc1603825c46086f9a0a9a
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_prepare.png" differ
diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_res.png" "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_res.png"
new file mode 100644
index 0000000000000000000000000000000000000000..27e222e3cb2512f0d8e814e039fe8a6ad35e0fc0
Binary files /dev/null and "b/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_res.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md"
new file mode 100644
index 0000000000000000000000000000000000000000..3015d1b16e4c6c288c116fbaf7df4fb71554ccf0
--- /dev/null
+++ "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md"
@@ -0,0 +1,102 @@
+# 目录
+- [1.背景](#背景)
+- [2.目录与命名规范](#目录与命名规范)
+- [3.文档规范](#文档规范)
+ - [3.1 主文档规范](#主文档规范)
+ - [3.2 子文档规范](#子文档规范)
+
+
+# 1. 背景
+各代码仓库完成TIPC训推一体认证工具开发后,同时需要提供相应的**TIPC测试文档**,方便用户查阅每种模型的推理部署打通情况,并可以按照教程进行一键测试。
+
+本文将**TIPC测试文档**的书写格式进行规范化,分为`目录规范`和`文档规范`两部分。
+
+
+# 2. 目录与命名规范
+**训推一体认证(Training and Inference Pipeline Certification(TIPC))工具目录统一命名为`test_tipc`**,位于代码仓库根目录下,下面以[PaddleOCR样板间](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc)为例说明目录结构规范。
+```
+test_tipc/
+├── configs/ # 配置文件目录
+ ├── ppocr_det_mobile # ppocr_det_mobile模型的测试配置文件目录
+ ├── det_mv3_db.yml # 测试mobile版ppocr检测模型训练的yml文件
+ ├── train_infer_python.txt.txt # 测试Linux上python训练预测(基础训练预测)的配置文件
+ ├── model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt # 测试Linux上c++预测的配置文件
+ ├── model_linux_gpu_normal_normal_infer_python_jetson.txt # 测试Jetson上python预测的配置文件
+ ├── train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt # 测试Linux上多机多卡、混合精度训练和python预测的配置文件
+ ├── ...
+ ├── ppocr_det_server # ppocr_det_server模型的测试配置文件目录
+ ├── ...
+ ├── ppocr_rec_mobile # ppocr_rec_mobile模型的测试配置文件目录
+ ├── ...
+ ├── ppocr_rec_server # ppocr_rec_server模型的测试配置文件目录
+ ├── ...
+ ├── ...
+├── results/ # 预先保存的预测结果,用于和实际预测结果进行精读比对
+ ├── python_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型python预测fp32精度的结果
+ ├── python_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型python预测fp16精度的结果
+ ├── cpp_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型c++预测的fp32精度的结果
+ ├── cpp_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型c++预测的fp16精度的结果
+ ├── ...
+├── prepare.sh # 完成test_*.sh运行所需要的数据和模型下载
+├── test_train_inference_python.sh # 测试python训练预测的主程序
+├── test_inference_cpp.sh # 测试c++预测的主程序
+├── test_serving.sh # 测试serving部署预测的主程序
+├── test_lite_arm_cpu_cpp.sh # 测试lite在arm_cpu上部署的C++预测的主程序
+├── compare_results.py # 用于对比log中的预测结果与results中的预存结果精度误差是否在限定范围内
+└── readme.md # 使用文档
+```
+主要关注:
+1. 所有工具位于`test_tipc`目录下,`test_tipc`目录位于代码仓库根目录下;
+2. `results`目录存放精度测试所需的gt文件;
+3. `doc`目录存放readme.md以外的其他子文档;
+4. `prepare.sh`用于准备测试所需的模型、数据等;
+5. `test_*.sh`为测试主程序,按照功能分为多个文件,命名格式为`test_[功能]_[语言].sh`。
+6. `configs`目录存放测试所需的所有配置文件,该目录下,按模型名称划分为子目录,子目录中存放所有该模型测试需要用到的配置文件,配置文件的命名遵循如下规范:
+
+- 基础训练预测配置简单命名为:`train_infer_python.txt`,表示**Linux环境下单机、不使用混合精度训练+python预测**,其完整命名对应`train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt`,由于本配置文件使用频率较高,这里进行了名称简化。
+- 其他带训练配置命名格式为:`train_训练硬件环境(linux_gpu/linux_dcu/…)_是否多机(fleet/normal)_是否混合精度(amp/normal)_预测模式(infer/lite/serving/js)_语言(cpp/python/java)_预测硬件环境(linux_gpu/mac/jetson/opencl_arm_gpu/...).txt`。如,linux gpu下多机多卡+混合精度链条测试对应配置 `train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt`,linux dcu下基础训练预测对应配置 `train_linux_dcu_normal_normal_infer_python_dcu.txt`。
+- 仅预测的配置(如serving、lite等)命名格式:`model_训练硬件环境(linux_gpu/linux_dcu/…)_是否多机(fleet/normal)_是否混合精度(amp/normal)_(infer/lite/serving/js)_语言(cpp/python/java)_预测硬件环境(linux_gpu/mac/jetson/opencl_arm_gpu/...).txt`,即,与2相比,仅第一个字段从train换为model,测试时模型直接下载获取,这里的“训练硬件环境”表示所测试的模型是在哪种环境下训练得到的。
+
+
+
+# 3. 文档规范
+
+## 3.1 主文档规范
+文档按以下格式进行撰写:
+
+**推理部署导航**
+**1. 简介**
+
+- 内容:主要说明背景,各代码仓库应该差异不大。
+- 示例:![](images/tipc_guide.png)
+
+**2. 汇总信息**
+
+- 内容:给出代码仓库所有模型的预测部署打通情况汇总信息,表格形式呈现,须包含`算法论文`、`模型名称`、`基础训练预测`、`更多训练方式`、`模型压缩`、`其他预测部署`这6个必选字段。
+ - 算法论文:该模型对应的算法,可以是算法简称;
+ - 模型名称:与代码仓库提供模型的名称对应;
+ - 基础训练预测:基础功能的支持情况,包括模型训练、Paddle Inference Python预测的支持情况,是所有代码仓库所有模型必须支持的功能。本字段有`"支持"`和`空缺`两种取值。
+ - 更多训练方式:包括多机多卡、混合精度。
+ - 模型压缩:包括裁剪、离线/在线量化、蒸馏。
+ - 其他预测部署:补充功能的支持情况,包括Paddle Inference C++预测、Paddle Serving部署、Paddle-Lite部署等,是各代码仓库可选支持的功能。填入已支持的功能,尚未支持的不填即可。支持的功能后注明硬件(lite相关)、语言等信息。
+
+- 示例:![](images/tipc_table.png)
+- **注意**:表格内填“支持“或填入了信息均表示可以使用本工具进行一键测试,代码仓库已支持但尚未接入测试的,都算还不支持,不应填写。
+
+**3. 一键测试工具使用**
+目录介绍:测试工具树状图,介绍各目录/文件的功能,示例:
+![图片](images/tipc_dir_tree.png)
+
+测试流程:测试流程整体说明,可参考[PaddleOCR样板间](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc#%E6%B5%8B%E8%AF%95%E6%B5%81%E7%A8%8B)
+![图片](images/tipc_test_pipeline.png)
+
+**最后需给出跳转链接,到每个test_*.sh的子文档**,如:
+![图片](images/tipc_more_tutorial.png)
+
+
+## 3.2 子文档规范
+请参考子文档规范文档:
+- [基础训练预测测试文档规范]()
+- [cpp预测测试文档规范]()
+- [serving测试文档规范]()
+- [lite测试文档规范]()
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md"
new file mode 100644
index 0000000000000000000000000000000000000000..25839b8b617cf5f730d18122d261b024918285a6
--- /dev/null
+++ "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md"
@@ -0,0 +1,42 @@
+# 背景
+
+基础训练文档对应C++预测功能测试,主程序为`test_inference_cpp.sh`。本文介绍C++预测功能测试文档的撰写规范。
+
+# 文档规范
+
+本文档和[基础训练预测文档]()大体结构类似,主要去掉了训练相关的部分,文档目录结构如下:
+
+### 1.测试结论汇总
+
+内容:基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,表格形式给出这两类模型对应的预测功能汇总情况,包含`模型类型`、`device`、`batchsize`、`tensorrt`、`mkldnn`、`cpu多线程`这6个字段。
+
+- 模型类型:“正常模型”或“量化模型”;
+- device:CPU或GPU,其他字段取值对应本字段指定的环境;
+- batchsize:一般包括1、6两种batchsize,根据实际支持情况填写。
+- tensorrt:开启tensorrt支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为CPU时,本字段填`-`。
+- mkldnn:开启mkldnn支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为GPU时,本字段填`-`。
+- cpu多线程:支持时填`支持`,不支持时留空即可,当device为GPU时,本字段填`-`。
+
+示例:
+![](images/tipc_cpp_infer_table.png)
+
+
+### 2.测试流程
+#### 2.1 功能测试
+内容1:给出C++预测具体测试命令。
+示例:
+![](images/tipc_cpp_infer_shell.png)
+
+内容2:给出预测log的解读指引。
+示例:
+![](images/tipc_cpp_infer_output.png)
+
+#### 2.2 精度测试
+内容:给出精度测试的具体命令和运行结果示例。
+示例:
+![](images/tipc_infer_compare_results.png)
+
+### 3.更多教程
+内容:给出代码仓库中基础训练预测的具体教程链接。
+示例:
+![](images/tipc_cpp_infer_more.png)
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b5df28639bcd17057904e30be4247dea59ef2e93
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png"
new file mode 100644
index 0000000000000000000000000000000000000000..292bbe1f63fb03e6ad4c21cd8c3980308263b564
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b5df28639bcd17057904e30be4247dea59ef2e93
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png"
new file mode 100644
index 0000000000000000000000000000000000000000..61e7361fd4787a1ebe63e90f222904fac8e3b84e
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png"
new file mode 100644
index 0000000000000000000000000000000000000000..60cf6fb64c27997978505da0c85f367b081dd54f
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png"
new file mode 100644
index 0000000000000000000000000000000000000000..340895ec5063c470543074a45ae867637818fa12
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_guide.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_guide.png"
new file mode 100644
index 0000000000000000000000000000000000000000..319ac819daff38ed77e84cdff2b122e8bc4a8e5f
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_guide.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png"
new file mode 100644
index 0000000000000000000000000000000000000000..244b8648fa91cfc409d0661669ef29f061d3bfa7
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png"
new file mode 100644
index 0000000000000000000000000000000000000000..e1e25d2745eb0589a59ee1a550381af456f05be0
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png"
new file mode 100644
index 0000000000000000000000000000000000000000..9cc9147097e42adb1ea19c34df392b6cd2d119bb
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png" differ
diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png"
new file mode 100644
index 0000000000000000000000000000000000000000..f99f23d7050eb61879cf317c0d7728ef14531b08
Binary files /dev/null and "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png" differ