Auto tuning graph vs kernel optimization

I was just wondering difference between autotuning Kernal and graph level. what exactly it does?

tune_kernels(tasks, **tuning_opt)

tune_graph(mod[“main”], data_shape, log_file, graph_opt_sch_file)