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.

How to enable Neural Compute Stick in VMs created by Qemu&KVM?

Yi_W_Intel
Employee
953 Views

hi,

I am using Intel Compute Stick 2. The stick works well on the host. I already successfully ran some openvino demos on it. My target is to use the stick in my VM which was created by KVM/QEMU. My host and guest OS are both ubuntu 16.04. By usb passthrough, I already passed the stick to my guest os.

When run "lsusb" in the guest, I can see

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 03e7:2485
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

But I failed to run those openvino demos. I got below errors.

[ INFO ] Loading model to the plugin
E: [ncAPI] [         0] ncDeviceOpen:668        failed to find device

[ ERROR ] Can not init USB device: NC_DEVICE_NOT_FOUND
 

I also tried the sample app "hello_ncs_cpp" included in ncsdk. I got below error

making run
cd cpp; ./hello_ncs_cpp; cd ..
W: [         0] ncDeviceOpen:528        ncDeviceOpen() XLinkBootRemote returned error 3

Error- ncDeviceOpen failed
    ncStatus value: -2
 

Anybody has some experiences on this? Many thanks!

 

 

0 Kudos
3 Replies
Yi_W_Intel
Employee
953 Views

A strange phenomenon is at host side after running openvino demo,
by dmesg, I found the stick was unplugged and plunged again.

[19069.031215] usb 1-2: USB disconnect, device number 8
[19069.361352] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
[19069.382672] usb 2-2: New USB device found, idVendor=03e7, idProduct=f63b
[19069.382678] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[19069.382682] usb 2-2: Product: VSC Loopback Device
[19069.382686] usb 2-2: Manufacturer: Intel Corporation
[19069.382690] usb 2-2: SerialNumber: 00000000000000000

by lsusb, I found the usb device was change from "ID 03e7:2485" to "ID 03e7:f63b"

Bus 002 Device 003: ID 03e7:f63b
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 14cd:8601 Super Top
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

who know the reasons?

0 Kudos
WU__YEN
Beginner
953 Views

Any updates? Is it a known bug?

I met the same situation. Yeah, exact the same. My system is IMX8MQEVK and ran Yocto Linux with 4.14 version. I could execute OpenVINO sample program on it, but when environment change to KVM-enabled VM, OpenVINO is not worked properly. The weird thing is that no kernel error message, just unplugged and change to an unknown USB type.

Here is my environment in detailed.
IMX8MQEVK:

  1. Yocto distribution: Sumo
  2. Linux kernel version: 4.14
  3. Libvirt version: 4.1.0

KVM/VM:

  1. OS: Debian Buster
  2. Linux kernel: 4.19

The passthrough of USB is validated by passthrough USB storage to VM, and it's able to R/W/Copy. However, it's just a USB 2.0 device. I'm not sure it matters or not.

0 Kudos
Luis_at_Intel
Moderator
953 Views

Hi Yi W. and WU, YEN,

Thanks for reaching out. To be able to use the NCS devices in a virtual machine you may need to configure the USB controller and add USB filters, something similar to what is mentioned here. The "unplugged and plugged again" is the expected behavior as the NCS device initializes for inference, and the device changes from something like "Movidius MA2X5X/Movidius MyriadX" to VSP Loopback device (and/or change IDs).

Also make sure to run the additional configuration steps for the device as mentioned in the installation guide in case not already done so.

 

Regards,

Luis

0 Kudos
Reply