class_docstr: Collective broadcast communication.
class_docstr_tok: ["Collective","broadcast","communication","."]
code: def backward(self, inputs, grad_outputs):
      (gx,) = grad_outputs
      gx_dtype = gx.dtype
      # convert to float32 for communication
      if numpy.float16 == gx_dtype:
          gx = gx.astype(numpy.float32)
  
      gxs = self.comm.gather(gx, self.root)
  
      if self.comm.rank == self.root:
          xp = backend.get_array_module(*gxs)
          gxs = xp.stack(gxs)
          _sum = (gxs.sum(axis=0),)
  
          # convert back
          if numpy.float16 == gx_dtype:
              _sum = tuple([item.astype(gx_dtype) for item in _sum])
          return _sum
      else:
          return (None,)
  
imports: import chainer
  from chainer import backend
  import numpy
label_desc: Use image node_id 4 for calling the Bcast obj's underlying member method code with example usage: obj.backward(inputs, grad_outputs) and returns: _sum, None