code: def _include_cub(env):
      if _runtime.is_hip:
          env.generated.add_code("#include <hipcub/hipcub.hpp>")
          env.generated.backend = "nvcc"
      else:
          # Including the master header (cub/cub.cuh) would break NVRTC, because
          # it implicitly includes many Thrust headers that would give Jitify a
          # hard time. We only include what we need (for block-/warp- level
          # algorithms).
          # WAR: warp_reduce.cuh is implicitly included.
          env.generated.add_code(
              "#include <cub/block/block_reduce.cuh>"
          )
          env.generated.backend = "nvrtc"
          env.generated.jitify = True
  
imports: from cupyx.jit import _cuda_types
  from cupyx.jit import _cuda_typerules
  from cupyx.jit import _internal_types
  from cupy_backends.cuda.api import runtime
label_desc: Use image node_id 1 for calling a global function with example usage: _include_cub(env) without return types