def METHOD_NAME(self, dtype):
    @jit.rawkernel()
    def block_reduce_min(x, y):
        BlockReduce = jit.cub.BlockReduce[dtype, 256]
        temp_storage = jit.shared_memory(
            dtype=BlockReduce.TempStorage, size=1)
        i, j = jit.blockIdx.x, jit.threadIdx.x
        value = x[i, j]
        aggregater = BlockReduce(temp_storage[0])
        aggregate = aggregater.Reduce(value, jit.cub.Min())
        if j == 0:
            y[i] = aggregate
    h, w = (32, 256)
    x = testing.shaped_random((h, w), dtype=dtype)
    y = testing.shaped_random((h,), dtype=dtype)
    expected = cupy.asnumpy(x).min(axis=-1)
    block_reduce_min[h, w](x, y)
    testing.assert_allclose(y, expected, rtol=1e-6)