Skip to content

PR CI Model benchmark Manual

xiegegege edited this page Apr 14, 2021 · 14 revisions

背景

当您提交一个PR(Pull_Request),您的PR需要经过一些CI(Continuous Integration)。其中PR-CI-Model-benchmark负责检查PR中的修改是否会造成模型性能下降或者运行错误。

该CI使用Dockerfile.cuda10_cudnn7_gcc8_ubuntu16镜像环境,依赖PaddlePaddle/benchmark提供的测试框架实现。

CI执行逻辑

模型性能测试CI任务流程图如下所示:

CI执行流程图

1)跳过判断:检查代码修改,跳过inference,tests,tools,cmake文件夹下修改文件的PR_CI_Model_Benchmark运行,如果是op文件的修改,检查修改的op文件是否在模型对应的op列表中,如果没有则不再运行PR_CI_Model_Benchmark。

2)由于效率云机子虚拟化的问题,个别机子上会出现运行性能差很多的情况。为避免误判,在出现性能下降问题后会在同一台机子上再运行次develop分支的结果,并作为标准值重新核验PR的性能结果。如果仍旧有性能问题,再返回失败。

CI失败原因

以下是几种失败的清形,如果无法确定失败原因或解决方案可以在PR评论处@xiegegege描述详细情况获取帮助。

1.模型运行失败

模型运行失败

【问题描述】日志中会有运行失败的提示,并且日志往前翻有详细的报错。

【解决方案】根据报错信息修改PR代码

2.性能下降问题

性能下降

【问题描述】PR修改导致模型性能下降超过了阈值

【解决方案】修改PR代码,避免模型性能下降

3.性能提升

性能提升

【问题描述】PR修改导致模型性能提升超过了阈值

【解决方案】需要在PR评论处@xiegegege或者@hysunflower在确认提升符合预期后,修改原有标准值

4.其余的编译,代码clone等相关报错与模型性能测试CI无关,建议先rerun

Clone this wiki locally