So far the vta directory of the TVM project contains two logical parts – the software components (runtime, JIT, compiler support, TOPI library) and the hardware components (hardware sources, FPGA compilation scripts, drivers, under vta/vta-hw). The hardware and software components communicate through a relatively stable ISA spec and driver API.
In this RFC, we would like to propose moving the hardware components (vta/vta-hw) into a separate repo, the main reasons being:
-
This separation provides a clear split between hardware vs. software components as two distinct “products”. Such separation alleviates the concerns of organizations who want their contribution to be scoped exclusively as software changes or the hardware changes. This will help us attract broader participation from organizations that care about isolating their contributions to software-only or hardware-only components of TVM.
-
The main compiler and runtime support in VTA will continue to exist in the TVM repo, with the same CI and toolchains setup; this is to ensure that we can evolve the compiler toolchain quickly and build first class compiler support for modern accelerators.
-
The new repo (incubator-tvm-vta) will contain the hardware component of TVM, the same governance by the Apache TVM community. The contributions to either repos are viewed as contributions to one and the same project. This would also give the community more flexibility to try out new hardware design variants.
Please share your thoughts.