How do parallelism run

Dear @thierry @hjiang:

I am new learner to TVM and VTA. What confuse me is how parallelism run? I may get the idea of it with virtual and block diagram in VTA paper, but the code in vta-hw/src confuse me, as in that code, module load, compute and store are serialized. What is my problem? I will appreciate if any clue you would provide me.

best regards

Hi Paddi,

Good to know have interest with VTA and TLPP, about your question load/compute/store are serialized, I think you may means the logic in unit test function VTA(), the VTA(…) actually is not get involved when FPGA do real compute and such function only work when do unit test,

For the running time VTA FPGA logic for sure it is parallel and the TLPP logic already there, I would recommend you go through FSIM source code first which have a software level simulation for TLPP maybe more straightforward for understanding.



Very appreciate @hjiang, that’s the key point. Your recommendation is my top consideration to deep into study. Here is another issue to understand why there is two dependence queues(fifo) between modules? In the perspective of software multi threads coding, that require only one queue which is read by consumer and wrote by producer, and another extra work is to locked the queue before accessed, for getting out of bank conflict.

Best regards

Hi @paddi,

Dependence queue itself is use to implement synchronization logic like semaphore and not same as a software data queue, 2 dependency queue is because here need to implement logic of “read after write” and “write after read” for shared SRAM.

Regards Hua