I noticed that the auto-scheduler tuning records we tuned with older version of TVM no longer work on recent TVM. After debuging the issue, I found out that the tasks’ hash keys have changed because of the changes in the tasks’ Relay representations, which are used to generate the hash keys. Before, I also noticed some models compiled on old TVM not working with new TVM.
I understand that TVM is evolving quickly. However, better backward compatibility can reduce the engineering effort for TVM based products, and can help the adoption of TVM in real products.
Could we take some steps to improve the backward compatibility of tvm? E.g. creating a guildeline to check the backward compatibility of IR representations, APIs etc.; adding backward compatibility to code review guidelines; asking breaking changes to be written to commit message and announced to the community…Just some initial thoughts. Hope to hear more discussions.