Adds external library route to existing TOPI ops

I would like to add new routes to the existing TOPI ops for calling functions implemented in external library (ex. cudnn), in order to compare the performance between tvm.compute and external library. For example, ReLU and Softmax are only available for tvm.compute not for cuDNN or other external libraries.

I know that there is already for realizing this route. (ex. Conv2D ops)

I recently noticed that TOPI is now implemented with C++ and Python.

Which language should I implement the external library route? (C++ or Python) And is this fix contribution welcomed?

Thanks

for conv2ds, we are still using the python part. I think it is always good to start from python route and eventually add c++ support when they are stable

Python is good for quick prototyping. With nnvm register function, you can quickly implement your customized compute/schedule for any existing operator and register them with higher level. Then simply importing your registration module will override the default implementation.

@tqchen @kevinthesun

I could make sense the relationship between Python and C++ implementation.
I will start implement the operator with Python at first.

Thanks for your fast reply and great advice.