code: def __init__(self) -> None:
      # list of str
      self.codes: List[str] = []
      # (function, in_types) => Optional(function_name, return_type)
      self.device_function: Dict[
          Tuple[Any, Tuple[_cuda_types.TypeBase, ...]],
          Tuple[str, _cuda_types.TypeBase],
      ] = {}
      # whether to use cooperative launch
      self.enable_cg = False
      # whether to include cooperative_groups.h
      self.include_cg = False
      # whether to include cooperative_groups/memcpy_async.h
      self.include_cg_memcpy_async = False
      # whether to include cuda/barrier
      self.include_cuda_barrier = False
      # compiler options
      self.options = (
          "-DCUPY_JIT_MODE",
          "--std=c++14",
          # WAR: for compiling any CCCL header
          "-DCUB_DISABLE_BF16_SUPPORT",
      )
      # workaround for hipRTC: as of ROCm 4.1.0 hipRTC still does not
      # recognize "-D", so we have to compile using hipcc...
      self.backend = "nvcc" if runtime.is_hip else "nvrtc"
      # workaround for CUB/libcudacxx headers: they can be compiled by NVRTC
      # but they need Jitify; Thrust headers can only be compiled by NVCC
      # for now. We keep Jitify off by default to reduce overhead.
      self.jitify = False
  
imports: import ast
  import collections
  import inspect
  import linecache
  import numbers
  import re
  import sys
  from typing import Any, Dict, List, Optional, Sequence, Tuple, TypeVar, Union
  import warnings
  import types
  import numpy
  from cupy_backends.cuda.api import runtime
  from cupy._core._codeblock import CodeBlock, _CodeType
  from cupy._core import _kernel
  from cupy._core._dtype import _raise_if_invalid_cast
  from cupyx import jit
  from cupyx.jit import _cuda_types
  from cupyx.jit import _cuda_typerules
  from cupyx.jit import _internal_types
  from cupyx.jit._internal_types import Data
  from cupyx.jit._internal_types import Constant
  from cupyx.jit import _builtin_funcs
  from cupyx.jit import _interface
label_desc: Use image node_id 1 to create a new Generated object  with example: obj = Generated()