Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIR 动转静理想态单测推全验证任务列表(二期)🥳 #60131

Closed
DrRyanHuang opened this issue Dec 19, 2023 · 6 comments
Closed
Assignees
Labels
PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc status/close 已关闭 type/others 其他问题

Comments

@DrRyanHuang
Copy link
Member

DrRyanHuang commented Dec 19, 2023

一. BackGround 📚

任务背景:#58633

二. Task 🙋🏻‍♀️

✅:已经完全修复,所有单测都OK!
🟢:待合入,合入之后完全修复!
🟡:当前阶段不需要人力继续跟进,下阶段推进(Save、控制流、AMP、编译器、PyFuncOp、TrainStep整图导出)
❌:单测没有通过,需要人力跟进。
🚧:待分析,单测还没有进行分析,可以进行分析或者是修复。

整体进度(108/115):

单测总数 已完成覆盖 ✅ 控制流 🔀 Save/Load 💾 其它 🚧
115 108 1 1 5
- 94% 1% 1% 4%
遗留问题修复(点击展开)
序号 认领人 文件 错误类型 case 问题 报错 pr
✅1 @SigureMo test_assert.py 控制流 TestAssertVariable.test_non_variable
✅2 @gouzil test_bert.py ? {test_train, test_train_composite} 段错误, 详细链接 The owner op type is:pd_op.full_like #60164, #60173
✅3 @DrRyanHuang @SigureMo test_container.py API TestSequential 需要适配OpResult.__eq__ TypeError: The type of 'input' in ConditionalBlock must be (<class 'paddle.base.framework.Variable'>, <class 'paddle.Tensor'>), but received <class 'paddle.base.libpaddle.pir.OpResult'>. #63190
✅4 test_convert_call.py API TestRecursiveCall2 需要适配paddle.nn.Layer.__call__或者paddle.nn.Layer._dygraph_call_func,含 cond OP,控制流尚不支持 ValueError: (InvalidArgument) linear(): argument 'weight' (position 1) must be Tensor, but got Parameter (at Paddle/paddle/fluid/pybind/eager_utils.cc:1136) [operator < linear > error] #61447
✅5 @DrRyanHuang test_convert_operators.py API test_variable OpResult 不支持 __eq__
✅6 @SigureMo test_grad.py ? TestGrad 段错误, 详细链接 #60621
test_grad.py Save/Load TestGradLinear
✅7 @SigureMo test_lac.py 跳过 #63192
🟡8 @SigureMo test_lstm.py Save/Load test_lstm_to_static
test_lstm.py API test_lstm_to_static RNN 相关 API 没有适配 TypeError: Cannot interpret '<DataType.FLOAT32: 10>' as a data type
test_lstm.py 精度问题 test_lstm_to_static PIR + SOT 会导致精度不足 Not equal to tolerance rtol=1e-05, atol=0 #60343
test_lstm.py 动转静执行 test_lstm_to_static EagerTensor 传入到 API 中,需要将其转换为 Value,将会在 #59761 完成 #59761
✅9 @gouzil test_no_gradient.py 反向 #59764#63216#63694
🟡10 @DrRyanHuang test_program_translator.py API all 控制流
🟡11 @gouzil test_save_inference_model.py API TestDyToStaticSaveInferenceModel python/paddle/jit/dy2static/py_layer.pysave_for_backward有做类型检查,尝试解决后还需要解决paddle/static/nn/static_pylayer.py文件下一些方法的适配 ValueError: (InvalidArgument) Currently, we can only get name of OpResult that is persistable #60211
test_save_inference_model.py 动转静执行 TestPartialProgramRaiseError 需要适配PartialProgramLayer下的_check_params_all_inited AttributeError: 'paddle.base.libpaddle.pir.Program' object has no attribute 'blocks'
✅12 @SigureMo test_sentiment.py 动转静执行 all 段错误, 挂在forward里面了, #59314 (review) #63192
✅13 @gouzil test_seq2seq.py API all paddle.nn.functional.sequence_mask 尚不支持,该任务为 #58067 202 题,见 #59058#60345 会支持该 API #60423#60454
🟡14 @gouzil test_slice.py 控制流 {TestSliceInIf, TestSliceInWhileLoop, TestSliceInForLoop} #60200
test_slice.py 依赖setitem {TestSetValueWithLayerAndSave, TestSetValue} setitem @建业
✅15 @SigureMo test_tensor_memcpy_on_cpu.py 动转静执行 test_tensor_cuda_on_default_cpu set_parameter 会导致插入 D2H copy 回 CPU #60363

其他的有依赖项的具体分类见下面 comments

@DrRyanHuang
Copy link
Member Author

DrRyanHuang commented Dec 19, 2023

Save/Load

序号 认领人 文件 错误类型 case 问题 报错 pr
✅8 test_layer_hook.py Save/Load 绕过Save:待合入 #59532
✅14 test_bmn.py Save/Load 绕过Save:单侧通过 待合入 @2742195759 遗留Save适配 #59532
✅61 test_save_load.py Save/Load all paddle.jit.api.save需要适配 AttributeError: 'list' object has no attribute 'type'
✅66 test_declarative.py Save/Load test_with_input_spec 需要适配jit.api.save方法
✅25 test_mobile_net.py Save/Load 待合入 绕过Save:精度问题(依赖BN反向修复)同test_ResNet单侧 AttributeError: 'list' object has no attribute 'type'
✅33 test_typing.py Save/Load all 需要适配jit.api.save方法 AttributeError: 'list' object has no attribute 'type'
✅58 test_build_strategy.py Save/Load 依赖BatchNorm反向修复 @儒婷
✅38 test_se_resnet.py Save/Load
✅11 test_save_inference_model.py Save/Load TestDyToStaticSaveInferenceModel
test_save_inference_model.py PyLayer
🟡8 test_lstm.py Save/Load test_lstm_to_static
✅45 test_for_enumerate.py Save/Load TestForZip Save Load 不支持

该方向具体支持 tracking issue 见 #64098

@DrRyanHuang

This comment was marked as outdated.

@DrRyanHuang
Copy link
Member Author

DrRyanHuang commented Dec 19, 2023

控制流

序号 认领人 文件 错误类型 case 问题 报错 pr
✅9 winter-wang test_logical.py 控制流 all 最终态尚不支持控制流
✅31 test_warning.py 控制流 trueblock为warning,falseblock 为bool 输出 暂不支持控制流 TypeError: The type of 'input' in ConditionalBlock must be <class 'paddle.base.framework.Variable'>, but received <class 'paddle.base.libpaddle.pir.OpResult'>.
✅39 test_cache_program.py 控制流 TestToOutputWithCache 需要适配paddle.static.nn.control_flow.While._complete方法,WhileGuard 报错 ValueError: (InvalidArgument) Currently, we can only get name of OpResult that is persistable
🟡41 test_return.py 控制流 all 暂不支持控制流 TypeError: The type of 'input' in ConditionalBlock must be <class 'paddle.base.framework.Variable'>, but received <class 'paddle.base.libpaddle.pir.OpResult'>.
✅47 test_tensor_shape.py 控制流 {TestOpNumWithTensorShapeInIf1, TestOpNumWithTensorShapeInFor1, TestOpNumWithTensorShapeInWhile1}
✅52 test_set_dynamic_shape.py 控制流
✅54 test_loop.py 控制流 {TestTransformWhileLoop, TestTransformForLoop} 暂不支持控制流
test_loop.py API TestForLoopMeetDict 需要适配jit.api.save方法 AttributeError: 'list' object has no attribute 'type'
✅74 test_full_name_usage.py 控制流
✅79 test_lambda.py 控制流 {test_call_lambda_in_func, test_call_lambda_with_if_expr} 段错误,但应该是控制流问题
✅86 test_break_continue.py 控制流 TestOptimBreakInFor RuntimeError: Unable to cast Python instance to C++ type (#define PYBIND11_DETAILED_ERROR_MESSAGES or compile in debug mode for details) #63287 使用 FLAGS_new_executor_sequential_run 绕过
✅97 test_jit_setitem.py 控制流(while) TestCase12
✅101 test_ifelse.py 控制流
✅6 test_list.py 控制流 TestListWithoutControlFlow 大量控制流单侧
✅7 test_write_python_container.py 控制流 all 大量控制流单侧 TypeError: 'paddle.base.libpaddle.pir.OpResult' object cannot be interpreted as an integer
✅45 test_for_enumerate.py 控制流 TestForInRange 控制流 While ValueError: (InvalidArgument) Currently, we can only get name of OpResult that is persistable (at /workspace/Paddle/paddle/fluid/pybind/pir.cc:745)
test_for_enumerate.py Save/Load TestForZip Save Load 不支持
test_for_enumerate.py API & 控制流 TestForIterVarList OpResult 没有 append
test_for_enumerate.py 控制流 TestForEnumerateVarWithNestedRange 面的大多数修好了,但是继承自 TestForIterVarNumpy 的 TestForEnumerateVarWithNestedRange 包含控制流,所以不支持;另外注意这个 case 中间态也有问题,中间态会在 Win 和 mac CI 上挂掉,本地没问题
✅10 test_program_translator.py 控制流 仅有两个 控制流
✅14 test_slice.py 控制流 {TestSliceInIf, TestSliceInWhileLoop, TestSliceInForLoop} #61440

@DrRyanHuang

This comment was marked as outdated.

@DrRyanHuang
Copy link
Member Author

DrRyanHuang commented Dec 19, 2023

整图导出(train step)

序号 认领人 文件 错误类型 case 问题 报错 pr
🟡103 test_train_step_resnet18_sgd.py 整图导出 all 同 train_step
🟡105 test_train_step_resnet18_adam.py 整图导出 all
🟡46 test_train_step.py 整图导出 all train_step 整图导出暂不支持 PIR AttributeError: 'paddle.base.libpaddle.pir.OpResult' object has no attribute 'backward'

@paddle-bot paddle-bot bot added the PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc label Dec 19, 2023
@SigureMo
Copy link
Member

SigureMo commented Dec 20, 2023

其它

序号 认领人 文件 错误类型 case 问题 报错 pr
🟡32 test_op_attr.py 量化 CheckOpAttr.test_set_op_attrs paddle.base.framework.Program下没有blocks api 需要适配 AttributeError: 'paddle.base.libpaddle.pir.Program' object has no attribute 'blocks'
🟡21 test_tensor_hook.py 依赖PyFuncOp迁移 剩余case OpResult.register_hook需要适配, 连锁适配paddle.static.py_func AttributeError: 'paddle.base.libpaddle.pir.OpResult' object has no attribute 'register_hook'
✅114 test_pylayer.py PyLayer @MarioLulab 开发 PIR PyLayer 并适配 #60359#63319

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PFCC Paddle Framework Contributor Club,https://github.com/PaddlePaddle/community/tree/master/pfcc status/close 已关闭 type/others 其他问题
Projects
None yet
Development

No branches or pull requests

5 participants