#### General Comments IMHO, @merrymercy's comments on log files are valuable. Many users now look into the log file for the information they need, and even manually modify some logs for experiments or optimizations. This can be achieved because 1) the log files are in text format, and 2) one config (line) in a log file is in a reasonable length. As a result, at high level I agree with @anwang's proposal that keeps the log file in JSON format but uses proto-generated schema to (de)serialize it. IIUC, this approach still allows users to modify the log file manually if needed.
On the other hand, one point I have for the current proposal is for `workload`. In terms of the semantic, the `workload` mentioned in the proposal is more like a `task`, as it has `task_name` and `args`. A workload should be a list of input tensors which is independent to tasks. Here is a complete example of conv2d task: ``` "task": { "task_name": "conv2d_NCHWc.x86", "args": [{"tensor": {"name": "data","shape": [1,3,224,224],"dtype": "float32"}}, {"tensor": {"name": "weight","shape": [32,3,3,3],"dtype": "float32"}}, [1, 1], [1, 1, 1, 1], [1, 1], "NCHW", "NCHW", "float32"] }, ``` In addition, one problem is that `args` is just a list of task arguments, so it's hard for people to understand the actual meaning. I'd be great if we could also improve the task initialization process to take keyword arguments instead of position arguments. As a result, we could have: ``` "task": { "task_name": "conv2d_NCHWc.x86", "args": {"data": {"tensor": {"name": "data","shape": [1,3,224,224],"dtype": "float32"}}, "weight": {"tensor": {"name": "weight","shape": [32,3,3,3],"dtype": "float32"}}, "strides": [1, 1], "pooling": [1, 1, 1, 1], "dilation": [1, 1], "data_layout": "NCHW", "output_layout": "NCHW", "dtype": "float32"} }, ``` #### Ansor's Log Format As @merrymercy mentioned, since Ansor is targeting to a subgraph instead of a single operator, the `task_name` would be an issue. The current approach using hashed subgraph is definitely not user friendly, and we cannot re-establish the subgraph by interpreting its hash value. A better solution would be providing a utility to serialize compute DAG as a string, and another utility to deserialize the string back to the compute DAG. --- [Visit Topic](https://discuss.tvm.ai/t/rfc-canonicalizing-autotvm-log-format/7038/20) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.ai/email/unsubscribe/d10feb0e8f50996a70c9e24ab365f1af4e98dd278641f8eeecdac82a2be3cf6c).