TVM/VTA questions & use computer as SoC?

Hi everyone

Recently, I started taking an interest in TVM and deploying Neural Networks to an FPGA.

I have a few questions regarding how TVM and VTA work:

  1. Correct me if I’m wrong: TVM compiles a module containing IR code and offloads it to the FPGA thanks to VTA. Then, the SoC embedded on the FPGA loads the module into the VTA ISA and produces an output. If I’m not mistaken, this implies that no VHDL/Verilog code is produced at any time in the compilation/deployment process.

  2. Let’s say that I only have an FPGA with no embedded SoC. Is it possible to “replace” the SoC with the computer used to “control” the FPGA? Does this require to modify the driver provided by VTA?

Thanks in advance for your answers.

  1. TVM generates code for VTA, which is an accelerator for TVM. Also, VTA happens to be implemented in Chisel and Xilinx HLS. Eventually, the HLS version is going to be phase-out.

  2. I think what you are asking is how to make VTA work on a discrete FPGA?. In that case, one would have to modify both runtime and driver to accomplish that. We are currently working on a Cloud FPGA prototype that will show how to do something like this.

that’s right, right now we support SoC-based accelerators, but a version for off of PCIE FPGAs is in the works

Hi @faku

Any updates on support fr PCI-e based FPGAs?

This thread proposes some changes: there is an upcoming PR in the works: [RFC][VTA] Support for Cloud Devices (OpenCL-compatible)

1 Like