diff --git a/python/paddle/fluid/tests/unittests/test_activation_op.py b/python/paddle/fluid/tests/unittests/test_activation_op.py index 50101ba94a0868a964bbde5bb3d12be8e2a67fa1..233139c225bd622eb17fdc3f62bb2d51de295097 100644 --- a/python/paddle/fluid/tests/unittests/test_activation_op.py +++ b/python/paddle/fluid/tests/unittests/test_activation_op.py @@ -1238,6 +1238,7 @@ class TestSqrtBF16(OpTest): class TestRsqrt(TestActivation): def setUp(self): self.op_type = "rsqrt" + self.prim_op_type = "comp" self.python_api = paddle.rsqrt self.init_dtype() self.init_shape() @@ -1248,14 +1249,23 @@ class TestRsqrt(TestActivation): self.inputs = {'X': OpTest.np_dtype_to_fluid_dtype(x)} self.outputs = {'Out': out} + self.enable_cinn = True def init_shape(self): self.shape = [10, 12] + def test_check_output(self): + self.check_output(check_prim=True) + def test_check_grad(self): if self.dtype == np.float16: return - self.check_grad(['X'], 'Out', max_relative_error=0.0005) + self.check_grad( + ['X'], + 'Out', + max_relative_error=0.0005, + check_prim=True, + ) ''' diff --git a/python/paddle/incubate/autograd/composite_rules.py b/python/paddle/incubate/autograd/composite_rules.py index 28c87609ae133baffd07af6d59cde34266dc20f9..2300cbccfa4df455e635a0e067424d7e4f70a248 100644 --- a/python/paddle/incubate/autograd/composite_rules.py +++ b/python/paddle/incubate/autograd/composite_rules.py @@ -457,3 +457,11 @@ def unsqueeze_composite(x, axis): ) out = reshape(x, x_shape) return [out, None] + + +@REGISTER_COMPOSITE('rsqrt') +def rsqrt_composite(x): + """define composite rule of op rsqrt.""" + # rsqrt(x) = x^(-0.5) + y = full(x.shape, -0.5, x.dtype) + return pow(x, y)