Hi
I follow the step of “Deploy the Pretrained Model on ARM Mali GPU” Tutorial and find it always failed at step
“upload the library to remote device and load it”
rlib = remote.load_module(‘net.tar’)
I used the docker image by running
" sudo ./bash.sh tvmai/demo-gpu " on the host ubuntu 14.04
and the remote on the RK3399 only do git clone the TVM and “make runtime”
The main error is
TVMError: [11:09:33] /home/firefly/tvm/src/runtime/module_util.cc:34: Check failed: f != nullptr Loader of opencl(module.loadbinary_opencl) is not presented.
The error message list below:
TVMError: Except caught from RPC call: TVMCall CFunc Error:
Traceback (most recent call last):
File “/home/firefly/tvm/python/tvm/_ffi/_ctypes/function.py”, line 54, in cfun
rv = local_pyfunc(*pyargs)
File “/home/firefly/tvm/python/tvm/rpc/server.py”, line 48, in load_module
m = _load_module(path)
File “/home/firefly/tvm/python/tvm/module.py”, line 222, in load
return _LoadFromFile(path, fmt)
File “/home/firefly/tvm/python/tvm/_ffi/function.py”, line 280, in my_api_func
return flocal(*args)
File “/home/firefly/tvm/python/tvm/_ffi/_ctypes/function.py”, line 184, in call
ctypes.byref(ret_val), ctypes.byref(ret_tcode)))
File “/home/firefly/tvm/python/tvm/_ffi/base.py”, line 66, in check_call
raise TVMError(py_str(_LIB.TVMGetLastError()))
TVMError: [11:09:33] /home/firefly/tvm/src/runtime/module_util.cc:34: Check failed: f != nullptr Loader of opencl(module.loadbinary_opencl) is not presented.
Does it mean that the OpenCL is ok on device RK3399 ?
I also try the newest tutorial with local_demo = False
But it still failed at
L198 : rlib = remote.load_module(‘net.tar’)
TVMError: [02:29:59] /home/firefly/tvm/src/runtime/module_util.cc:34: Check failed: f != nullptr Loader of opencl(module.loadbinary_opencl) is not presented.
firefly@firefly:~/tvm$ make runtime -j4
– The C compiler identification is GNU 5.4.0
– The CXX compiler identification is GNU 5.4.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Performing Test SUPPORT_CXX11
– Performing Test SUPPORT_CXX11 - Success
– Build with RPC support…
– Build with Graph runtime support…
– Build VTA runtime with target: sim
– Found OpenCL: /usr/lib/aarch64-linux-gnu/libOpenCL.so (found version “1.2”)
– Build with OpenCL support
– Configuring done
– Generating done
– Build files have been written to: /home/firefly/tvm/build
.
.
.
[100%] Linking CXX shared library libtvm_runtime.so
make[4]: Leaving directory ‘/home/firefly/tvm/build’
[100%] Built target tvm_runtime
make[4]: Entering directory ‘/home/firefly/tvm/build’
Scanning dependencies of target runtime
make[4]: Leaving directory ‘/home/firefly/tvm/build’
[100%] Built target runtime
hello,I can’t use RPC way to control my board, because my host pc is at home and my firefly-rk3399 boad is in my office they are not in the same net region (or net segment).so Is there any other ways to instead of RPC.I can config mali target and build output graph /param /libraray and then export .finaly ,copy these to my rk3399 board , does the tvm(runtime) on rk3399 have some interface to load these ouput on pc without RPC way ? I am new in tvm. thanks.
If you can ssh tunnel to your rk3399 you can still use RPC via a custom IP address so that RPC is not confused by the local address of the tunnel. See this argument.