Im2col Function Problem
Hi, I want to use the image to column function, so I've change the Config.scala as below,
hasIm2col = true, //declare im2col block
sp_banks = 2,
sp_singleported = false,
acc_banks = 1,
acc_singleported = true,
num_acc_sub_banks = 4,
sp_capacity = CapacityInKilobytes(32),
shifter_banks = 1, // TODO add separate parameters for left and up shifter banks
dataflow = Dataflow.WS,
acc_capacity = CapacityInKilobytes(16),
mem_pipeline = 4,
dma_maxbytes = 64, // TODO get this from cacheblockbytes
dma_buswidth = 128, // TODO get this from SystemBusKey
aligned_to = 1,
tlb_size = 4,
use_tlb_register_filter = true,
max_in_flight_reqs = 16,
use_dedicated_tl_port = false,
but when I run ./simulator-chipyard-GemminiRocketConfig-debug, it comes out an error
[1223000] %Error: chipyard.TestHarness.GemminiRocketConfig.top.v:285131: Assertion failed in TOP.TestHarness.chiptop.system.tn.tile_reset_domain.tile.gemmini.rob
%Error: /chipyard/sims/verilator/generated-src/chipyard.TestHarness.GemminiRocketConfig/chipyard.TestHarness.Gemmini.top.v:285131: Verilog $stop
Aborting...
Which part should I modify?
The Im2col unit is currently broken, and we haven't gotten around to fixing it yet. However, the default conv function (described here has been improved so that in many cases, it's performance should be about the same as with the old im2col unit.
There are still some edge cases in which the im2col unit may help to get better performance, so we are planning to fix it eventually.
Hello,
Is the im2col unit already fixed? I am trying to obtain the mentioned speedup of more than x1000 with the im2col performed on Gemmini as in the dac paper for a tunned cnn.
Also, I am running the inference using onnx. Is the im2col execution on Gemmini enabled by default? Or do I have to use any onnx special configuration option or something?
Thanks!
We basically just do im2col on Gemmini by default now. Everything that the old im2col unit was doing has been subsumed by the LoopConv and PixelRepeater modules.
If you want to run im2col on the CPU, and not use Gemmini's im2col features, then you can run some of the binaries in gemmini-rocc-tests with the matmul command-line argument, as seen here. That will perform im2col on the CPU, and then run matmuls on Gemmini.
I don't think ONNX-Runtime supports this option by default though.