[VTA] How can I calculate VTA GOPs?

This is so basic question, but I can’t calculate VTA GOPs in batch 1, block in 4, block out 4, clock 142MHz which is Get Started with VTA tutorial.

With the model, VTA have 16Mac so in my calcuation

16 Mac / GEMM * 142 MHz = 2.272GOPs

But I know this is not the correct answer. I want to know what I miscalculated

Thank you

Did you mean LOG_BLOCK=4 or just BLOCK=4?

If LOG_BLOCK=4, that means BLOCK_IN and BLOCK_OUT would be 16. Therefore, in a GEMM instruction, it would perform 16x16 fused-multiply-add (MAC), that is 256 MACs in a single GEMM instruction. In my calculation,

256 MACs * 0.142 GHz = 36.352 GOps

Note that, in current Chisel implement, a single GEMM would take 4 cycles/stages to complete. We might see a performance regression on that.

1 Like