def METHOD_NAME():
    np.random.seed(123)
    target = "cuda"
    ctx = tvm.device(target)
    batch_size = 32
    input_shape = (32, 512, 7, 7)
    kernel_shape = (512, 512, 3, 3)
    def get_mod():
        x = relay.var("x", relay.TensorType(input_shape, "float32"))
        y = relay.var("y", relay.TensorType(kernel_shape, "float32"))
        f = relay.Function(
            [x, y], relay.nn.conv2d(x, y, padding=[1, 1, 1, 1], channels=512, kernel_size=[3, 3])
        )
        mod = tvm.IRModule()
        mod["main"] = f
        mod = relay.transform.InferType()(mod)
        return mod, {}
    mod, params = get_mod()
    layout_config = relay.transform.LayoutConfig()
    desired_layouts = {"nn.conv2d": ["HWNC", "default"]}
    with layout_config:
        seq = tvm.transform.Sequential([relay.transform.ConvertLayout(desired_layouts)])
        with tvm.transform.PassContext(opt_level=3):
            mod = seq(mod)
    mod = relay.transform.recast(mod, "int4", "int32")
    tasks = autotvm.task.extract_from_program(
        mod, target=target, params=params, ops=(relay.op.get("nn.conv2d"),)
    )
    assert len(tasks) == 1
    task = tasks[0]
    space = task.config_space
    idx1 = space.get_rand_index()
    idx2 = space.get_rand_index()
    cfg = space.get(idx1)
    sch, arg_bufs = task.instantiate(cfg)
    fea1 = autotvm.feature.get_itervar_feature_flatten(sch, arg_bufs, take_log=True)
    cfg = space.get(idx2)
    sch, arg_bufs = task.instantiate(cfg)
    fea2 = autotvm.feature.get_itervar_feature_flatten(sch, arg_bufs, take_log=True)
    assert len(fea1) == len(fea2)