[relay.analysis] Questions more Info

Hello everyone,

I was looking at the new IR pass infra and I have to first of all say thanks for the efforts spent. Documentation and “intuition” of it all is way clearer now than it was half a year ago. Good job.

After reading the relevant documentation, I still have some questions:

  • Relay.analysis:
    1. Why is there only a post_order_visit which gives us a DFS order of the nodes? why would any other kind of ordered visit not needed or not wished?
    2. Concerning detect_feature, what exactly are these features? are they ones used for AutoTVM? (AFAIK AutoTVM works at the Tensor Expression level, so I am not sure if I misunderstood something)
    3. Concerning structural_hash, I think this is a very interesting functionality but I don’t understand one aspect of the implementation. I seem to get different has values for the same relay.expr, if I rerun the program. Why would the hash function not have a predetermined random_seed so that the hash values don’t change? Could you elaborate in how this function is normally used? and when is it necessary?