code: def inclusive_scan(
      data,
      axis=-1,
      output_dtype=None,
      binop=tvm.tir.generic.add,
      identity_value=0,
  ):
      """Do inclusive scan on 1D or multidimensional input.
  
      Parameters
      ----------
      data : tvm.te.Tensor
          Input data of any shape.
  
      axis: int, optional
          The axis to do scan on. By default, scan is done on the innermost axis.
  
      output_dtype: string, optional
          The dtype of the output scan tensor. If not provided, the dtype of the input is used.
  
      binop: function, optional
          A binary associative op to use for scan. The function takes two TIR expressions
          and produce a new TIR expression. By default it uses tvm.tir.generic.add to compute
          prefix sum.
  
      identity_value: int or float
          A value for the binary operation which provides the identity property. E.g. if * is
          your operator and i is the identity_value then a * i = a for all a in the domain of
          your operation.
  
      Returns
      -------
      output : tvm.te.Tensor
          A N-D tensor of the same rank N as the input data.
      """
      ex_scan = exclusive_scan(
          data,
          axis,
          output_dtype=output_dtype,
          binop=binop,
          identity_value=identity_value,
      )
  
      if (
          output_dtype is not None
          and data.dtype != output_dtype
          and output_dtype != ""
      ):
          data = cast(data, output_dtype)
  
      return binop(data, ex_scan)
  
file_path: tvm/python/tvm/topi/cuda/scan.py
imports: from typing import Callable, Optional, Union
  import tvm
  from tvm import te
  from tvm.contrib.thrust import can_use_rocthrust, can_use_thrust
  from ..None import tag
  from ..math import cast, ceil_log2
  from ..transform import expand_dims, reshape, squeeze, transpose
  from ..utils import ceil_div, get_const_int, prod, swap
  from .injective import schedule_injective_from_existing
label_desc: Use image node_id 6 for calling a global function with example usage: inclusive_scan(data, axis, output_dtype, binop, identity_value) and returns: binop