菜单

TIPC 性能基准测试

相关源文件

TIPC (Training and Inference Performance Check) 是一个自动化的测试和基准测试框架,旨在验证模型性能、确保可复现性,并在 PaddleOCR 中跨不同硬件配置和精度设置测量训练/推理速度。该系统为 PaddleOCR 生态系统中的所有模型提供了标准化的测试工作流,从轻量级移动模型到服务器级架构。

有关 TIPC 测试的核心 OCR 管道信息,请参阅 核心管道。有关特定部署的测试,请参阅 部署和推理

框架架构

TIPC 作为多阶段管道运行,在不同的测试模式和模型配置中协调准备、执行和分析阶段。

来源: test_tipc/prepare.sh1-700 test_tipc/test_train_inference_python.sh1-344 test_tipc/benchmark_train.sh1-295

测试模式和工作流

TIPC 支持多种测试模式,在全面性和执行时间之间取得平衡,可以进行快速验证和全面基准测试。

核心测试模式

模式目的训练数据推理范围用例
lite_train_lite_infer快速验证精简数据集基础推理CI/CD 管道
lite_train_whole_infer导出验证精简数据集完整推理矩阵预发布测试
whole_train_whole_infer全面验证完整数据集完整测试发布验证
whole_infer仅推理预训练模型推理矩阵部署测试
benchmark_train性能测试基准数据集训练指标性能分析

来源: test_tipc/test_train_inference_python.sh5-6 test_tipc/prepare.sh6-8

工作流执行管道

来源: test_tipc/test_train_inference_python.sh181-343 test_tipc/benchmark_train.sh150-294

配置系统

TIPC 使用结构化的配置格式,该格式定义了每个模型变体的测试参数、模型规格和执行设置。

配置文件结构

配置文件遵循标准格式,具有不同的测试阶段的独立部分

===========================train_params===========================
model_name:layoutxlm_ser
python:python3.7
gpu_list:0|0,1
Global.use_gpu:True|True
Global.auto_cast:fp32
Global.epoch_num:lite_train_lite_infer=1|whole_train_whole_infer=17

来源: test_tipc/configs/layoutxlm_ser/train_infer_python.txt1-12

参数类别

章节功能关键参数
train_params训练配置gpu_list, epoch_num, batch_size_per_card
eval_params评估设置eval_py, 评估指标
infer_params推理配置硬件标志、精度设置
train_benchmark_params性能测试batch_size, fp_items, 性能分析选项

配置解析器实现

配置解析由 common_func.sh 中的函数处理,这些函数提取键值对并支持基于测试模式的条件参数。

来源: test_tipc/common_func.sh test_tipc/test_train_inference_python.sh15-89

性能分析

TIPC 集成了 PaddlePaddle 的性能分析功能,提供详细的性能指标和优化洞察。

性能分析器集成

ppocr/utils/profiler.py 中的 ProfilerOptions 类提供了全面的性能分析配置

来源: ppocr/utils/profiler.py51-59

性能分析工作流

来源: ppocr/utils/profiler.py87-131

基准分析管道

基准测试系统生成结构化的性能数据,这些数据由分析脚本进行处理

来源: test_tipc/docs/benchmark_train.md39 test_tipc/benchmark_train.sh238-290

硬件和精度测试矩阵

TIPC 系统地测试不同的硬件配置和精度设置,以确保在各种部署场景下的最佳性能。

硬件配置矩阵

来源: test_tipc/test_train_inference_python.sh99-179

推理函数实现

func_inference() 函数协调了跨硬件矩阵的全面测试

参数CPU 选项GPU 选项
use_gpuFalse, cpuTrue, gpu
use_mkldnnTrue, False不适用
use_trt不适用True, False
精度fp32, int8fp32, fp16, int8
cpu_threads1, 6不适用

来源: test_tipc/test_train_inference_python.sh109-178

文件结构和关键组件

TIPC 框架组织成几个关键组件,负责测试管道的不同方面。

核心脚本组件

脚本职责

脚本主要功能关键操作
prepare.sh环境准备数据集下载、模型设置、依赖安装
test_train_inference_python.sh测试编排训练执行、模型导出、推理测试
benchmark_train.sh性能测量性能分析、速度分析、指标收集
common_func.sh实用函数配置解析、参数提取

来源: test_tipc/prepare.sh1-4 test_tipc/test_train_inference_python.sh1-4 test_tipc/benchmark_train.sh1-4

模型特定配置结构

每个模型维护其自己的配置目录,其中包含训练参数、推理设置和模型特定的 YAML 配置

test_tipc/configs/layoutxlm_ser/
├── train_infer_python.txt     # TIPC test configuration
└── ser_layoutxlm_xfund_zh.yml # Model training configuration

YAML 配置文件定义了 TIPC 在测试期间使用的完整模型架构、数据管道和训练超参数。

来源: test_tipc/configs/layoutxlm_ser/train_infer_python.txt test_tipc/configs/layoutxlm_ser/ser_layoutxlm_xfund_zh.yml1-123