Skip to content

Enable Eager Mode in Paddle CI

pangyoki edited this page May 11, 2022 · 14 revisions

Paddle CI流水线切换至新动态图eager模式说明

概要:

  • 第1节,背景
  • 第2节,PR-CI-Py3流水线单测失败的复现方法
  • 第3节,跳过失败单测方法

1. 背景

为了监控新动态图模式下CPU单测的正确性,防止开发的PR导致新动态图功能错误,需要让CI流水线执行在新动态图eager模式下进行监控。

目前,已将PR-CI-Py3流水线切换至新动态图eager模式下执行(其他流水线暂时仍然执行在老动态图模式下)。

在PR-CI-Py3流水线中,已设置export FLAGS_enable_eager_mode=1,启用新动态图模式进行编译、执行单测。

2. PR-CI-Py3流水线单测失败的复现方法

由于PR-CI-Py3流水线已执行在新动态图模式下,在本地复现PR-CI-Py3流水线的单测问题时,需要开启FLAGS_enable_eager_mode=1环境变量来执行单测,让本地单测也执行在新动态图模式下:

FLAGS_enable_eager_mode=1 python test_xxx.py

复现问题后需要修复单测,直至新动态图模式下该单测通过。

3. 跳过失败单测方法

如果有特殊原因,需要跳过新动态图模式下对该单测的检查,可以尝试让该单测只执行在老动态图模式下。方法如下:

  • 在新动态图模式下报错的单测文件中,调用_enable_legacy_dygraph()方法,让该单测切换到老动态图模式下执行。

注:

  • 需要注释说明该单测无法执行在新动态图模式下的原因,并且需要特殊人员审核,否则PR-CI-approval无法通过。
  • 在单测文件中,设置环境变量FLAGS_enable_eager_mode=0,无法让单测切换到老动态图执行。
Clone this wiki locally