Things seem to work fine, as long as I call getPluginByDevice("CPU").
When getPluginByDevice("HETERO:GPU,CPU") is used, getPluginByDevice() works fine, but the call to LoadNetwork fails with exception in loadNetwork:
Cannot find plugin to use :Tried load plugin : clDNNPlugin, error: Plugin clDNNPlugin cannot be loaded: cannot load plugin: clDNNPlugin from : Cannot load library 'libclDNNPlugin.so': [path redacted]
Looking at libclDNNPlugin.so, it seems to depend on libOpenCL.so.1, which isn't part of the SDK. I suspect that is the reason for the failure, but even so, questions remain:
- which OpenCL should be used with libclDNNPlugin.so?
- My assumption was, Hetero plugin handles exactly this sort of failover (for example, no GPU is present). If it doesn't, what is exactly its point?
Thanks for your help!
I assume you are using the latest Intel Openvino toolkit (RC1 2019).
The OpenCL comes along with toolkit but we need to manually install using below scripts.
<OPENVION INSTALL DIR>/openvino_2019.1.094/install_dependencies/install_NEO_OCL_driver.sh intel-opencl_19.04.12237_amd64.deb
I guess my question is more regarding redistribution --
- can Hetero plugin be safely used on a system without an Intel GPU?
- can Hetero plugin be safely used on a system without an OpenCL driver deployed?
- is there an API to determine, at runtime, whether Hetero/clDNN plugins can be initialized and used?