Up Core Plus and UP Vision Plus X software configuration issue
Hello.
I've bought Up Core Plus and Up Vision Plus X board with 3 intel Myriad X VPUs.
https://up-shop.org/featured/265-up-vision-plus-x.html
I've assembled them together and installed Ubuntu 18.04 and OpenVINO 2019R1.1, which works fine on CPU.
But when I try to run it with -d MYRIAD flag it fails with errors like can not find device, same thing for -d HDDL. I have followed all Linux installation guide steps and tried security_camera_bla_bla demo from OpenVINO demo directory.
Can you please provide proven step by step instruction for preparing and running Intel OpenVINO samples with all three embedded VPUs.
I have already run OpenVINO asynchronous yolo detection on Windows with IEI Acceleration board Mustang and 4 NCUs 2 under Windows 10 on my desktop PC using tiny-yolo model and 4 network instances per VPU.
It seems that my assembly works fine with NCS2, but it still reports some errors even it executed successfully.
Best regards
Aleksandr.
Comments
-
More details here:
At /opt/intel/openvino/deployment_tools/demo, I run
./demo_security_barrier_camera.sh -d MYRIAD
… some scripted preparations …Application start:
#
Run Inference Engine security_barrier_camera demo
Run ./security_barrier_camera_demo -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD -i /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp -m /home/sasha/openvino_models/ir/FP16/Security/object_detection/barrier/0106/dldt/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/sasha/openvino_models/ir/FP16/Security/object_attributes/vehicle/resnet10_update_1/dldt/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/sasha/openvino_models/ir/FP16/Security/optical_character_recognition/license_plate/dldt/license-plate-recognition-barrier-0001-fp16.xml
[ INFO ] InferenceEngine:
API version ............ 1.6
Build .................. custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
[ INFO ] Parsing input parameters
[ INFO ] Capturing video streams from the video files or loading images
[ INFO ] Files were added: 1
[ INFO ] /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Display resolution: 1920x1080
[ INFO ] Loading plugin MYRIADAPI version ............ 1.6 Build .................. 23780 Description ....... myriadPlugin
[ INFO ] Loading network files for VehicleDetection
[ INFO ] Batch size is forced to 1
[ INFO ] Checking Vehicle Detection inputs
[ INFO ] Checking Vehicle Detection outputs
[ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
E: [ncAPI] [ 293174] ncDeviceOpen:800 Failed connection to device (1.5.1-ma2480) with error 5
[ ERROR ] Can not init USB device: NC_DEVICE_NOT_FOUND
Error on or near line 228; exiting with status 1Then I inserted NCS2 and run the same script:
#
Run Inference Engine security_barrier_camera demo
Run ./security_barrier_camera_demo -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD -i /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp -m /home/sasha/openvino_models/ir/FP16/Security/object_detection/barrier/0106/dldt/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/sasha/openvino_models/ir/FP16/Security/object_attributes/vehicle/resnet10_update_1/dldt/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/sasha/openvino_models/ir/FP16/Security/optical_character_recognition/license_plate/dldt/license-plate-recognition-barrier-0001-fp16.xml
[ INFO ] InferenceEngine:
API version ............ 1.6
Build .................. custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
[ INFO ] Parsing input parameters
[ INFO ] Capturing video streams from the video files or loading images
[ INFO ] Files were added: 1
[ INFO ] /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Display resolution: 1920x1080
[ INFO ] Loading plugin MYRIADAPI version ............ 1.6 Build .................. 23780 Description ....... myriadPlugin
[ INFO ] Loading network files for VehicleDetection
[ INFO ] Batch size is forced to 1
[ INFO ] Checking Vehicle Detection inputs
[ INFO ] Checking Vehicle Detection outputs
[ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
[ INFO ] Loading network files for VehicleAttribs
[ INFO ] Batch size is forced to 1 for Vehicle Attribs
[ INFO ] Checking VehicleAttribs inputs
[ INFO ] Checking Vehicle Attribs outputs
[ INFO ] Loading Vehicle Attribs model to the MYRIAD plugin
E: [ncAPI] [ 624758] ncDeviceOpen:672 Failed to find suitable device, rc: X_LINK_DEVICE_NOT_FOUND
[ INFO ] Loading network files for Licence Plate Recognition (LPR)
[ INFO ] Batch size is forced to 1 for LPR Network
[ INFO ] Checking LPR Network inputs
[ INFO ] Checking LPR Network outputs
[ INFO ] Loading LPR model to the MYRIAD plugin
E: [ncAPI] [ 626812] ncDeviceOpen:672 Failed to find suitable device, rc: X_LINK_DEVICE_NOT_FOUND
[ INFO ] Start inference
To close the application, press 'CTRL+C' or any key with focus on the output windowAverage inference time: 48.7759 ms (20.5019 fps)
Average vehicle detection time: 31.711 ms (31.5348 fps)
Average vehicle attribs time: 5.1753 ms (193.226 fps)
Average lpr time: 11.0977 ms (90.1085 fps)
Total execution time: 3434.22
[ INFO ] Execution successful
#
Demo completed successfully.
Finally, in order to compare and be sure that NCS2 actually did the things, the same script started without -d MYRIAD option (on Intel CPU) and it shows the following performance:
Average inference time: 48.098 ms (20.7909 fps)
Average vehicle detection time: 21.1481 ms (47.2857 fps)
Average vehicle attribs time: 9.6757 ms (103.352 fps)
Average lpr time: 22.2226 ms (44.9993 fps)
Total execution time: 4611.07
[ INFO ] Execution successful
#
Demo completed successfully.
Despite the strange similarity of Average inference time, average times of inference stages look really accelerated by NCS2. But it still does not help with embedded VPUs.
-
Additional information about USB devices list.
It looks like 03e7:2485 is my Myriad X, but I can see only one device instead of three ones.
The output of lsusb:Bus 002 Device 002: ID 0951:1666 Kingston Technology DataTraveler G4 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 2c42:5114 Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter Bus 001 Device 003: ID 03e7:2485 Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Output of lsusb -v -d 03e7:2485
Bus 001 Device 003: ID 03e7:2485
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x03e7
idProduct 0x2485
bcdDevice 0.01
iManufacturer 1 Movidius Ltd.
iProduct 2 Movidius MyriadX
iSerial 3 03e72485
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 17
bInterfaceProtocol 255
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered) -
In order to compare the situation with NCS2, I have plugged it in and requested lsusb twice again
As we can see, their descriptors are the same and moreover, they share the same Bus. It is still interesting, why I can see only one embedded device on the USB bus. This issue could be addressed to the hardware developers: which bus initially is used by 3 Myriad X devices? It would be great if they share structural schematics or post some kind of clarification. Thanks.Output of lsusb, when additionally NCS2 plugged in:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 2c42:5114 Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter Bus 001 Device 006: ID 03e7:2485 Bus 001 Device 003: ID 03e7:2485 Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Finally, the output of lsusb -v -d 03e7:2485 when NCS2 inserted.
Bus 001 Device 006: ID 03e7:2485
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x03e7
idProduct 0x2485
bcdDevice 0.01
iManufacturer 1 Movidius Ltd.
iProduct 2 Movidius MyriadX
iSerial 3 03e72485
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 17
bInterfaceProtocol 255
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)Bus 001 Device 003: ID 03e7:2485
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x03e7
idProduct 0x2485
bcdDevice 0.01
iManufacturer 1 Movidius Ltd.
iProduct 2 Movidius MyriadX
iSerial 3 03e72485
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 17
bInterfaceProtocol 255
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered) -
I have some news.
We accidentally purchased 2 sets (UCP+Up Vision X), and one of them was marked as "Engineering Sample".
The second one without any marks has enhanced heatsink (it has a notch for RTC-header removing).The first finding has been made in lsusb answer:
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 2c42:5114 Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter Bus 001 Device 003: ID 03e7:2485 Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 003: ID 03e7:2485 Bus 003 Device 002: ID 03e7:2485 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
As we can see, there are 3 Myriads, listed by lsusb in this set.
The previous one returned only one Myriad with 2485 PID. -
For those who googled to here.
The root cause of all issues mentioned above was this blue label on my Up Core Plus board: