class_docstr: Note: call self.can_use() when arrays are already allocated, otherwise
  call self._test_can_use().
code: def setUp(self):
      if cupy.cuda.runtime.is_hip:
          if _environment.get_hipcc_path() is None:
              self.skipTest("hipcc is not found")
  
      self.can_use = (
          cupy._core._cub_reduction._can_use_cub_block_reduction
      )
  
      self.old_accelerators = _accelerator.get_reduction_accelerators()
      _accelerator.set_reduction_accelerators(["cub"])
  
imports: from itertools import combinations
  import unittest
  import sys
  import cupy
  from cupy import _environment
  from cupy import testing
  from cupy._core import _accelerator
  from cupy._core import _cub_reduction
  from cupy.cuda import memory
label_desc: Use image node_id 1 for calling the CubReductionTestBase obj's underlying member method code with example usage: obj.setUp() without return types