masahi commented on issue #4418: [RUNTIME] Add cudnn conv3d URL: https://github.com/apache/incubator-tvm/pull/4418#issuecomment-559898995 @optima2005 The problem seems to be that "Array" is not an "Expr". make.Call [expects](https://github.com/apache/incubator-tvm/blob/master/src/api/api_ir.cc#L102) its argument to be "Array\<Expr\>", but if we pass a python list, which converts to "Array", TVM complains that "Array" is not an "Expr". The error message is confusing, but that actual error occurs [here](https://github.com/apache/incubator-tvm/blob/master/include/tvm/packed_func_ext.h#L70), where TVM tries to type check Array elements type. The element type should be "Expr", but if we pass a list as an additional argument, the type checking fails because it is "Array", not "Expr". The reason we can pass Tensors is that, before TVM passes python arguments to C++, TVM replaces Tensors with "a Call expression that returns Tensor" [(here)](https://github.com/apache/incubator-tvm/blob/master/python/tvm/intrin.py#L41-L42). We need something similar for lists, but that doesn't seem to exist now. So we need to give up on our approach. Can you add python functions conv2d_forward and conv3d_forward? Once the CI passes, I'll check the std::vector issue and then merge.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
