code: def async_remote_copy(
      src_ref,
      dst_ref,
      send_sem,
      recv_sem,
      device_id,
      device_id_type: DeviceIdType = DeviceIdType.MESH,
  ):
      copy_descriptor = make_async_remote_copy(
          src_ref,
          dst_ref,
          send_sem,
          recv_sem,
          device_id,
          device_id_type,
      )
      copy_descriptor.start()
      return copy_descriptor
  
imports: from __future__ import annotations
  import contextlib
  import dataclasses
  import enum
  from typing import Any, Callable
  import jax
  from jax._src import api_util
  from jax._src import core
  from jax._src import effects
  from jax._src import linear_util
  from jax._src import pretty_printer
  from jax._src import state
  from jax._src import tree_util
  from jax._src import util
  from jax._src.state import indexing
  from jax._src.state import primitives
  from jax._src.interpreters import mlir
  from jax._src.interpreters import partial_eval
  from jax._src.pallas.mosaic import core
  import jax.numpy
label_desc: Use image node_id 25 for calling a global function with example usage: async_remote_copy(src_ref, dst_ref, send_sem, recv_sem, device_id, device_id_type) and returns: copy_descriptor