In some ASICs as in the figure, we want to buffer the split data in DM, and doing several grouped layers, then store the data back to DDR to decrease the DDR traffic (with some compute wasting).
Like the following (with tile size):
- DDR(32x32)->DM(20x20)->conv1(3x3)->DM(18x18)->conv2(3x3)->DM(16x16)->DDR
- DDR(32x32)->DM(22x22)->conv1(3x3)->DM(20x20)->conv1(3x3)->DM(18x18)->conv2(3x3)->DM(16x16)->DDR
- …
not as the normal flow:
DDR->DM->conv1->DM->DDR->DM->conv1->DM->DDR
The example DDR data is split into 4 tile (in h, w direction), after one tile complete all the grouped conv layers, the next tile is started.
Then the question is how to schedule these layers with association in autotvm? How to build several layers in group and shcedule them together?