Generate input data for AutoTVM task

I want to know how to generate input data for the AutoTVM task. And I found input date generated in measure_methods.py , as flows:

    if ref_input:
        args = [nd.array(x, ctx=ctx) for x in ref_input]
    else:
        # create empty arrays on the remote device and copy them once.
        # This can avoid some memory issues that make the measurement results unreliable.
        args = [nd.empty(x[0], dtype=x[1], ctx=ctx) for x in build_result.arg_info]
        args = [nd.array(x, ctx=ctx) for x in args]
        ctx.sync()

if we create runner with check_correctness=False, the input data will be all zero.
if we create runner with check_correctness=True, the input data will be not zero.

I want to know why?

If you need to check the correctness you have to really generate some numbers to compute with. If you don’t care the correctness but just want to see the performance, using all zeros can make sure you “pass” the correctness checking.

I worry about that there will be a little bias if use all zeros to test performance。Maybe compiler will optimize for all zero compute 。

Static compiler won’t know any runtime value.