Interpretation of measurement records when Auto-scheduling

In TVM Auto-scheduling, we can use RecordToFile to dump measurement records into a file xxx.json. The measurement records can be used to query the history best, resume the search, and do more analyses later.

However, is there an interpretation of measurement records (e.g., the meaning of field of the resulting json file) when Auto-scheduling?

Any comments or suggestions?

Thanks!

The sample of Auto-scheduling log file is like the following:

{“i”: [["[“42f92fbfe339c521168a41fbf453aeae”]", “cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32”, [-1, 16, 64, 49152, 2147483647, 1024, 8, 32], “”, 0], [[], [[“CI”, 2], [“FU”, 4, [0, 1]], [“AN”, 4, 0, 6], [“AN”, 3, 0, 6], [“AN”, 1, 0, 6], [“PR”, 1, 0, “auto_unroll_max_step$1024”], [“PR”, 3, 0, “auto_unroll_max_step$64”]]]], “r”: [[4.08568e-06, 4.08516e-06, 4.07297e-06, 4.06815e-06, 4.06297e-06, 4.08852e-06, 4.06854e-06, 4.07408e-06, 4.08603e-06, 4.05753e-06], 0, 5.25079, 1614138743], “v”: “v0.5”}

{“i”: [["[“42f92fbfe339c521168a41fbf453aeae”]", “cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32”, [-1, 16, 64, 49152, 2147483647, 1024, 8, 32], “”, 0], [[], [[“CI”, 2], [“FU”, 4, [0, 1]], [“AN”, 4, 0, 6], [“AN”, 3, 0, 6], [“AN”, 1, 0, 6], [“PR”, 1, 0, “auto_unroll_max_step$16”], [“PR”, 3, 0, “auto_unroll_max_step$0”]]]], “r”: [[4.07541e-06, 4.07094e-06, 4.08271e-06, 4.09268e-06, 4.0835e-06, 4.08019e-06, 4.07385e-06, 4.09392e-06, 4.07206e-06, 4.0923e-06], 0, 5.83587, 1614138748], “v”: “v0.5”}

{“i”: [["[“42f92fbfe339c521168a41fbf453aeae”]", “cuda -keys=cuda,gpu -max_num_threads=1024 -thread_warp_size=32”, [-1, 16, 64, 49152, 2147483647, 1024, 8, 32], “”, 0], [[], [[“CI”, 2], [“FU”, 4, [0, 1]], [“AN”, 4, 0, 6], [“AN”, 3, 0, 6], [“AN”, 1, 0, 6], [“PR”, 1, 0, “auto_unroll_max_step$16”], [“PR”, 3, 0, “auto_unroll_max_step$512”]]]], “r”: [[4.14794e-06, 4.16488e-06, 4.14062e-06, 4.07828e-06, 4.09331e-06, 4.07197e-06, 4.07748e-06, 4.06028e-06, 4.10219e-06, 4.07208e-06], 0, 5.95598, 1614138754], “v”: “v0.5”}

It is a json format that serializes MeasureInput(workload_key, schedule…), MeasureResult (cost, error_number, …) and version number. You can see this file (tvm/measure_record.cc at main · apache/tvm · GitHub) for how it is serialized. The entry function is tvm/measure_record.cc at d288bbc5df3660355adbf97f2f84ecd232e269ff · apache/tvm · GitHub

2 Likes