Created by: typhoonzero
This may depend on the work of https://github.com/PaddlePaddle/Paddle/pull/11436/