code: def serial(self, obj: Any, context: Dict):
      if not (obj.flags["C_CONTIGUOUS"] or obj.flags["F_CONTIGUOUS"]):
          obj = cupy.array(obj, copy=True)
  
      header = obj.__cuda_array_interface__.copy()
      header["strides"] = tuple(obj.strides)
      header["lengths"] = [obj.nbytes]
      buffer = cupy.ndarray(
          shape=(obj.nbytes,),
          dtype=cupy.dtype("u1"),
          memptr=obj.data,
          strides=(1,),
      )
      return (header,), [buffer], True
  
file_path: mars/mars/serialization/cuda.py
imports: from typing import Any, List, Dict, Tuple
  import pandas
  from ..utils import lazy_import
  from .core import Serializer, buffered
label_desc: Use image node_id 1 for calling the CupySerializer obj's underlying member method code with example usage: obj.serial(obj, context) and returns: header,  list,  True