code: def forward_gpu(self, inputs):
      self.retain_inputs((0, 1, 2, 3))
      p, x, y, gz = inputs
      return cuda.elementwise(
          "T p, T x, T y, T gz",
          "T gp, T gx, T gy",
          """
              gp = (x - y) * gz;
              gx = gz * p;
              gy = gz * (1 - p);
              """,
          "linear_interpolate_bwd",
      )(p, x, y, gz)
  
file_path: chainer/chainer/functions/math/linear_interpolate.py
imports: from chainer.backends import cuda
  from chainer import function_node
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 2 for calling the LinearInterpolateGrad obj's underlying member method code with example usage: obj.forward_gpu(inputs) and returns: cuda