code: def do_allreduce_multigpu(
      self, group_name="default", op=ReduceOp.SUM
  ):
      col.allreduce_multigpu(
          [self.buffer0, self.buffer1], group_name, op
      )
      cp.cuda.Device(0).synchronize()
      cp.cuda.Device(1).synchronize()
      return self.buffer0
  
imports: import cupy
  import logging
  import ray
  import ray.util.collective
  from ray.util.collective.types import Backend, ReduceOp
  from ray.util.collective.collective_group.nccl_util import get_num_gpus
  import torch
label_desc: Use image node_id 8 for calling the MultiGPUWorker obj's underlying member method code with example usage: obj.do_allreduce_multigpu(group_name, op) and returns: self