Supporting Faster RCNN and Mask RCNN models


#1

Hi, I’m interested in running Faster RCNN and Mask RCNN models with TVM.

Thanks to @vinx13, we now have ROIPooling, ROIAlign, Proposal, and box related ops. With @Laurawly’s PR we will have argsort and AdaptiveAvgPooling. It seems we have all pieces needed to run Faster RCNN and Mask RCNN models from GluonCV. The only thing missing that I could find is the relay frontend for gather_nd op, which is easy to add.

Are there any other mxnet ops that are missing? @vinx13 @Laurawly @kevinthesun


#2

I have run some faster-rcnn variants. Ops are all supported. Proposal Op may have some performance issue with sorting


#3

We have all ops supported. Gluncv models recently use deconvolution for rcnn models which causes performance issues since we don’t have very optimized deconv schedule in tvm.


#4

odd-even sort seems not that good at proposal op. The reasons may be,

  1. sync is expensive for each loop;
  2. share memory is missed in some case.

#5

agree, replacing it with external cuda lib function might be a solution


#6

Is it possible to use Thrust in TVM?


#7

Yes, you can wrap it into a packed function