docstr: Send a tensor to a destination gpu in the group.
  
  Args:
      tensors: the tensor to send.
      send_options: send options.
  
  Returns:
      None
docstr_tok: ["Send","a","tensor","to","a","destination","gpu","in","the","group",".","Args",":","tensors",":","the","tensor","to","send",".","send_options",":","send","options",".","Returns",":","None"]
code: def send(self, tensors, send_options=SendOptions()):
      """Send a tensor to a destination gpu in the group.
  
      Args:
          tensors: the tensor to send.
          send_options: send options.
  
      Returns:
          None
      """
  
      def p2p_fn(tensor, comm, stream, peer):
          comm.send(
              nccl_util.get_tensor_ptr(tensor),
              send_options.n_elements
              if send_options.n_elements > 0
              else nccl_util.get_tensor_n_elements(tensor),
              nccl_util.get_nccl_tensor_dtype(tensor),
              peer,
              stream.ptr,
          )
  
      self._point2point(
          tensors,
          p2p_fn,
          send_options.dst_rank,
          send_options.dst_gpu_index,
      )
  
imports: import logging
  import datetime
  import time
  import ray
  import cupy
  from ray.util.collective.const import ENV
  from ray.util.collective.collective_group import nccl_util
  from ray.util.collective.collective_group.base_collective_group import BaseGroup
  from ray.util.collective.const import get_store_name
  from ray.util.collective.types import AllReduceOptions, BarrierOptions, Backend, ReduceOptions, BroadcastOptions, AllGatherOptions, ReduceScatterOptions, SendOptions, RecvOptions
  from ray.util.collective.collective_group.cuda_stream import get_stream_pool
label_desc: Use image node_id 10 for calling the NCCLGroup obj's underlying member method code with example usage: obj.send(tensors, send_options) without return types