How to port tvm/vta to a new FPGA device?

e.g. If I want tvm/vta to support Achronix speedster22i, and assume I have the architecture specification of the device, what the steps to do the porting ?

Thanks very much!

Hi @kevinyuan. There are multiple components to porting VTA/TVM to a new FPGA platform. It includes the following:

  • Hardware modules: these are currently specified in Vivado HLS which is Xilinx specific. However, these produce Verilog which can be synthesized to other FPGA/ASIC backends. However, the performance on other platforms might be sub-optimal since the verilog is optimized for Xilinx FPGAs. An alternative is to therefore port these modules to an HLS language that is supported by the Achronix toochains. Note that there is an internal effort to port VTA to Chisel which is platform agnostic.
  • Platform integration: right now again, we’re doing this using the IPI flow with TCL scripting (it’s specific to Xilinx). I’ve never used the Achronix toochains but I assume that they have their own way to wire a design together. It may be easiest to port the current VTA design on an SoC board for now.
  • Driver stack: this has to be custom tailored to your system, and will vary widely depending on whether you pick a PCIE FPGA, or an SoC FPGA. The easiest here would be to use the SoC FPGA model, where both CPU and FPGA have a shared memory access. The only libraries required to connect your FPGA stack to TVM are: bitstream programming routine, memory mapped read/writes for control register access, and page allocation for DMA transfers.

I’d by happy to guide you more throughout this design phase. It would be great to add an Achronix backend to TVM! If you wish to go ahead, I recommend starting with a github issue as here: https://github.com/dmlc/tvm/issues/1656 This should provide a good template on how our community can work together to increase the FPGA back-end coverage.

2 Likes

@kevinyuan Are there commercially available development boards for Achronix FPGAs you have in mind? I’d be curious to get my hands on one myself.

Hi Thierry,

Sorry for the late response and very appreciate for answering my questions :slight_smile:

For the Achronix FPGA development board, you can take a look at https://www.achronix.com/achronix-pcie-accelerator-6d-card/.

Best regards.

Kevin