code: def forward(self, X, Y):
      out, (argX, argY) = _gspmm(
          self.gidx, self.op, self.reduce_op, X, Y
      )
      self.save_for_backward(X, Y, argX, argY)
      return out
  
imports: import mxnet
  import numpy
  from mxnet import nd
  from ..._sparse_ops import _bwd_segment_cmp, _csrmask, _csrmm, _csrsum, _gsddmm, _gspmm, _scatter_add, _segment_reduce
  from ...base import ALL, dgl_warning, is_all
  from ...heterograph_index import create_unitgraph_from_csr
  from .tensor import asnumpy, context, copy_to, to_backend_ctx, zerocopy_from_numpy
label_desc: Use image node_id 2 for calling the GSpMM obj's underlying member method code with example usage: obj.forward(X, Y) and returns: out