code: def bcast_data(self, model):
      self._init_comms()
      params = _memory_utility.extract_params_set_data(model)
      data_dtype = chainer.get_dtype()
      n_elems = sum(param.data.size for param in params)
      data_grad_n_bytes = data_dtype.itemsize * n_elems
      if self.gpu_tmp_buffer.size != data_grad_n_bytes:
          self.gpu_tmp_buffer.assign(data_grad_n_bytes)
      stream = chainer.cuda.Stream.null
  
      _memory_utility.pack_params(
          params, "data", self.gpu_tmp_buffer, data_dtype, False, stream
      )
      self.nccl_comm.bcast(
          self.gpu_tmp_buffer.ptr(),
          n_elems,
          _communication_utility._get_nccl_type_id(data_dtype),
          0,
          stream.ptr,
      )
      _memory_utility.unpack_params(
          params, "data", self.gpu_tmp_buffer, data_dtype, False, stream
      )
  
file_path: chainer/chainermn/communicators/pure_nccl_communicator.py
imports: import warnings
  import chainer.cuda
  from chainermn.communicators import _communication_utility
  from chainermn.communicators import _memory_utility
  from chainermn.communicators import mpi_communicator_base
  from chainermn import nccl
  import numpy
label_desc: Use image node_id 6 for calling the PureNcclCommunicator obj's underlying member method code with example usage: obj.bcast_data(model) without return types