Difference with ONNX

Hi, just learned about TVM and seems like a very interesting project. Does it have similar design goals to ONNX ? i.e: Portability and efficient inference on different target hardwares ? Would be glad to understand if they are located on different layers in the Inference stack, and how their philosophy differs, if at all. I hope question is not too trivial / basic :slight_smile:

Thanks much for any insights.

1 Like

I believe ONNX is an exchange format to port DL models from one frame work to another. TVM is more like a DL compiler. It compiles the DL model based on different frameworks for different target hardwares. During compilation it also tries to optimize using scheduling and various other techniques. There are many other features associated with TVM like autoTVM, uTVM etc.

One thing I would add is that TVM, being a compiler, has parsers for many popular deep learning frameworks. So in a sense, it achieves something similar to ONNX insofar as it is good for interoperability, even if it can only import models from various frameworks, rather than convert between them.

Same Question.

What is the speed comparision on CPU?

What is the speed benchmark for BERT?

Have you ever googled “TVM Bert cpu”?

3 Likes

Thank you very much!