How to add a new architecture to VTA and use it?


#1

Hi experts,

I’m a novice in TVM, but I was given a herculean task that implement our new NPU architecture to TVM/VTA and finally make it work within a month, I don’t have any train of thought at all, despite that I’ve seen pages of tutorials.

Could you tell me what steps should I do or what documents should I read in a systematical way? Is there a fixed flow to follow to add a new architecture, for example which files should I modify or create and the like?

Thank you in advance.


#2

We don’t have a fixed flow unfortunately due to the huge diversity in hardware designs out there; it’s hard to generalize, but having more examples of hardware that TVM can target will help provide better guidance.

First off, what can you share about the hardware you are targeting? Mostly we want to identify how the target hardware is programmed at the ISA level. For instance, what does a 2d convolution look like on that hardware? How do you generate instructions, and how do you dispatch those to the target hardware, synchronize with the hardware etc.


#3

Hi Thierry,
Thank you for your reply. Our target also has ISA, but the difference might mainly lay in the number of convolution resources we deploy, we can have computations go simutaineously, but the instance pynq doesn’t metion how to realize parallel computation. Moreover, about the pynq instance, the tutorial is kind of sporadic, so until now, I have no idea what I should do in hell~


#4

By parallel, there are multiple “physical threads” in your design?

Is the hardware design on an ASIC or FPGA? If it’s an FPGA, is it integrated with an ARM CPU (i.e. coherent, shared memory), or is it off of PCI-E?


#5

It’s a ASIC, but it’s not important I think, my problem is I don’t familiar with the flow, and the tutorial involves vast knowledge background, and my reading comprehension is not so good that can finish reading them in a short period, could you specify some articles relevant to my work, please?


#6

The integration with the CPU will be relevant at some point.

If you need to familiarize yourself, did you read the TVM paper and the VTA tech report:



#7

Thanks a lot, God bless you!