Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.

Assert in Movidus compute stick with OpenVINO

mok__siu
Novice
1,636 Views

Version: l_openvino_toolkit_p_2019.1.144.tgz
Encounter this assert:
../../libusb/io.c:2118: handle_events: Assertion `ctx->pollfds_cnt >= internal_nfds' failed.
Aborted (core dumped)

The code is called from the prebuilt library libmyriadPlugin.so which we do not have source code to debug with.
PluginDispatcher({TARGET_PLUGIN_PATH}).getPluginByDevice("MYRIAD");

If we use CPU device instead of "MYRIAD", the program is working fine.

0 Kudos
1 Solution
mok__siu
Novice
1,636 Views

We found the problem in your OpenVINO sdk. 
The scope of the InferencePlugin plugin must be kept, even after the InferRequest is requested, and no body in the application side is calling or using plugin instance after "executable_network.CreateInferRequest"
i.e.

     {
    InferencePlugin plugin = PluginDispatcher({TARGET_PLUGIN_PATH}).getPluginByDevice(TARGET_DEVICE);
     ....................
    // --------------------------- 4. Loading model to the plugin ------------------------------------------
    ExecutableNetwork executable_network = plugin.LoadNetwork(network, {});

    // --------------------------- 5. Create infer request -------------------------------------------------
    h->infer_request = executable_network.CreateInferRequest();
     }
will not works, since the instance of plugin will be destructed. But the above code is of no problem when using the CPU plugin instead of MYRIAD plugin.

Please fire a bug internally in the OpenVINO and fixes the problem.
And I don't expected Intel such a big company to provide me such kind of answers like "Ubuntu* 18.04 is not listed as a supported " without even dig into the problem. 

View solution in original post

0 Kudos
6 Replies
Luis_at_Intel
Moderator
1,636 Views

Could you provide more details that can help me reproduce the issue you are observing? i.e. host OS, VM?, sample code used, configuration used to install the toolkit, using NCS1 or NCS2, using a powered usb hub, etc.. 

I haven't encountered this problem myself but it could be an installation problem where VPU support is missing. 

 

Regards,

@Luis_at_Intel

0 Kudos
mok__siu
Novice
1,636 Views

Same error when I tried on  neutral stick 2:
../../libusb/io.c:2118: handle_events: Assertion `ctx->pollfds_cnt >= internal_nfds' failed.

Hosted OS,
lsb_release  -a 
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:    bionic

No usb hub
 

0 Kudos
mok__siu
Novice
1,637 Views

It is NOT VPU support is missing, since it will output usb device not found if usb stick is not inserted:
terminate called after throwing an instance of 'InferenceEngine::details::InferenceEngineException'
  what():  Can not init USB device: NC_ERROR
 

0 Kudos
Luis_at_Intel
Moderator
1,637 Views

Thank you for the information. Now I recall I've seen this problem in the past and it's because Ubuntu* 18.04 is not listed as a supported operating system in the documentation. Although the OpenVINO™ toolkit installs, the support for the VPUs doesn't get installed. There are some workarounds other users have tried but I wouldn't advice going that route, instead I'd strongly suggest to use one of the supported operating systems listed here.

Please let me know if you have any additional questions.

0 Kudos
mok__siu
Novice
1,637 Views

We found the problem in your OpenVINO sdk. 
The scope of the InferencePlugin plugin must be kept, even after the InferRequest is requested, and no body in the application side is calling or using plugin instance after "executable_network.CreateInferRequest"
i.e.

     {
    InferencePlugin plugin = PluginDispatcher({TARGET_PLUGIN_PATH}).getPluginByDevice(TARGET_DEVICE);
     ....................
    // --------------------------- 4. Loading model to the plugin ------------------------------------------
    ExecutableNetwork executable_network = plugin.LoadNetwork(network, {});

    // --------------------------- 5. Create infer request -------------------------------------------------
    h->infer_request = executable_network.CreateInferRequest();
     }
will not works, since the instance of plugin will be destructed. But the above code is of no problem when using the CPU plugin instead of MYRIAD plugin.

Please fire a bug internally in the OpenVINO and fixes the problem.
And I don't expected Intel such a big company to provide me such kind of answers like "Ubuntu* 18.04 is not listed as a supported " without even dig into the problem. 

0 Kudos
Shubha_R_Intel
Employee
1,637 Views

Dear mok, siu,

I have filed a bug on this issue. Thanks for finding it and thank you for using OpenVino ! I appreciate your sharing your findings with the OpenVino community.

Shubha

 

0 Kudos
Reply