Question on How To Add a New Backend in TVM

Using TVM for CPU and GPU was great so far. However, I am more concerned about how to add a new backend in TVM.

I do realize there is this BYOC. But as a new TVM developer (for now a new learner) I still didn’t have a clue about the whole picture. Besides I see some codes beyond BYOC requiring Target or indicating heterogeneous or homogeneous. So I believe the BYOC is not the only module we need to add our own codes and I don’t want to miss anything. A detailed step-to-step doc about how to add a new backend in TVM would help a lot.

If anyone kind enough could give me some hints, that would be great. My confusion is mainly about:

  1. How many steps this work should be partitioned into and what are those steps. Or the best practice to do this you would recommend.
  2. During each step, what file directory/file should I generate. And what module should I implement.

And would the community consider adding such an official doc? This would be vital to welcome new developers even new vendors.

2 Likes

Hi!

Below sources might be helpful!

https://tvm.apache.org/docs/tutorial/uma.html