Upstreaming tensorize implementation


#1

Hi,

I’d like to contribute my implementation of conv2d that relies on tensorize, The tensorize calls an external library api for GEMM. Could I ask what is the best way to add this implementation to TVM please? Right now I have a python script that uses tensorize and I load the external library(.so) from the script and call_extern within the tensorize implementation. The script benchmarks the individual convolutional layers in ResNet

My question is where in the TVM repository do I upstream the script? Also what is the best way to add the dependency on the external library? Should I add to src/contrib?

I can give more details and the implementation source if requried.

Thanks,
Anand


#2

What hardware platform are you working for? For tensorize, you could add one compute / schedule template like ‘winograd_nnpack_fp32’ .

For tensorize, the external library is a must? Or could you just include the content we really need? In my opinion, tensorize microkernel should be just one file enough, we could have 4x8 / 8x8 ukernel and so on. If the external library is must, you should add src/contrib like NNPack.


#3

Thanks, I’m targeting a tensorize implementation for x86, I’ll submit a git pull request soon. The external library is required for us. I’m guessing I should edit the cmake module files to add the library by myself?


#4

yes. could refer NNPack / cudnn / sort and so on.