Issue was here: https://github.com/dmlc/tvm/issues/3816
I have some problems when compiling a float16 mxnet ResNet18 model. After applying this patch: https://github.com/dmlc/tvm/pull/3811, I still get some other error messges as below:
/tmp/tmpryat3eu1/my_kernel.cu(9641): error: no operator “+” matches these operands
operand types are: volatile half + volatile half
After I did some experiments, I believe it will fail for several tvm.relay.op.reduce operators. The error messages are almost the same but with different operatoas such as:
/tmp/tmpih_riytd/my_kernel.cu(37): error: no instance of overloaded function “min” matches the argument list
argument types are: (volatile half, volatile half)
/tmp/tmpszypacd9/my_kernel.cu(58): error: no operator “<=” matches these operands
operand types are: volatile half <= volatile half
It seems that CUDA doesn’t overload these ops for half.