ssd_mobilenet_512 compilation works fine for target: opencl, target_host: llvm
but it fails for target = tvm.target.intel_graphics()
which is
target: opencl -device=intel_graphics -model=unknown, target_host: llvm
I used TVM version from March 7th with PR 2747
Error:
ValueError: missing register for topi.nn.depthwise_conv2d_NCHWc
py3.6.egg/topi/nn/depthwise_conv2d.py", line 322, in depthwise_conv2d_NCHWc
raise ValueError("missing register for topi.nn.depthwise_conv2d_NCHWc")
Full stack trace:
$ ./compile.py
mx.sym.load: deploy_ssd_mobilenet_512/deploy_ssd_mobilenet_512-symbol.json
[16:57:10] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v0.12.0. Attempting to upgrade...
[16:57:10] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
load_checkpoint: deploy_ssd_mobilenet_512/deploy_ssd_mobilenet_512
[16:57:10] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v0.12.0. Attempting to upgrade...
[16:57:10] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
Traceback (most recent call last):
File "./compile.py", line 75, in <module>
net, target, {"data": dshape}, params=params, target_host=target_host)
File "/usr/local/lib/python3.6/dist-packages/nnvm-0.8.0-py3.6.egg/nnvm/compiler/build_module.py", line 305, in build
graph = graph.apply("GraphCompile")
File "/usr/local/lib/python3.6/dist-packages/nnvm-0.8.0-py3.6.egg/nnvm/graph.py", line 234, in apply
check_call(_LIB.NNGraphApplyPasses(self.handle, npass, cpass, ctypes.byref(ghandle)))
File "/usr/local/lib/python3.6/dist-packages/nnvm-0.8.0-py3.6.egg/nnvm/_base.py", line 75, in check_call
raise NNVMError(py_str(_LIB.NNGetLastError()))
nnvm._base.NNVMError: TVMCall CFunc Error:
Traceback (most recent call last):
File "tvm/_ffi/_cython/./function.pxi", line 38, in tvm._ffi._cy3.core.tvm_callback
File "/usr/local/lib/python3.6/dist-packages/nnvm-0.8.0-py3.6.egg/nnvm/top/nn.py", line 203, in compute_contrib_conv2d_NCHWc
dilation, layout, out_layout, out_dtype)
File "</usr/local/lib/python3.6/dist-packages/decorator.py:decorator-gen-25>", line 2, in depthwise_conv2d_NCHWc
File "/usr/local/lib/python3.6/dist-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/target.py", line 357, in dispatch_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/topi-0.6.dev0-py3.6.egg/topi/nn/depthwise_conv2d.py", line 322, in depthwise_conv2d_NCHWc
raise ValueError("missing register for topi.nn.depthwise_conv2d_NCHWc")
ValueError: missing register for topi.nn.depthwise_conv2d_NCHWc
The following github repo contains python code and ssd_mobilenet_512
model files to reproduce the issue
clone my mxnet-ssd-tvm repo
clone git@github.com:apivovarov/mxnet-ssd-tvm.git
Compile ssd_mobilenet_512 model on main computer (having tvm + nnvm + topi)
python3 compile.py
# it will give the error