How to communicate with Myriad X on Up Vision Plus X?
For hardware developers: which interface is used to communicate with Myriad X devices on carrier/expansion board Up Vision Plus X? Is this USB or PCIe or some kind of a converter from one to another?
Best regards
Aleksandr.
Comments
-
Hi @SashaBe
The Myriad-X on the Vision Plus X works following the standard setup procedure from the Intel Linux Installation guide (points 1 to 4).
https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html#install-openvinoOnce completed the main setup you need to proceed with the steps for the VPU installation
https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux_ivad_vpu.htmlNow you need to change the settings of the HDDL plugin to use 3 Myriad-X:
$sudo nano /opt/intel/computer_vision_sdk/inference_engine/external/hddl/config/hddl_autoboot.config
Modify the number of “total_device_number” variable from 8 to 3 and save the new settingsThen you can compile and run the example available for the Myriad-X using the HDDL plugin
You can easily run one of the demo: https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html#run-the-demos:$cd /opt/intel/openvino/deployment_tools/demo
just edit the file
$ sudo nano demo_security_barrier_camera.sh
and change the variable target from CPU to HDDL, save and run the example
$./demo_security_barrier_camera.sh
-
Hi, @DCleri !
Thank you for your answer.
I have faced some troubles with VPU installation guide. Namely, I failed to build and install drivers in step 5.
Namely, the script failed to find /lib/modules/4.15.0-37-generic/build
This is output, which mention script has returned to the command line:Running install for component drv_ion
if [[ "" != "" ]]; then sudo rmmod myd_ion; fi;
make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'start building NODEBUG ION driver <<<
make[2]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
make[2]: *** /lib/modules/4.15.0-37-generic/build: No such file or directory. Stop.
make[2]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
Makefile:36: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
Makefile:67: recipe for target 'preinstall' failed
make: *** [preinstall] Error 2
Running install for component drv_vsc
if [[ "" != "" ]]; then sudo rmmod myd_vsc; fi;
make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
rm -f .o *.ko *.order *.mod.c *.symvers ..cmd
rm -rf .tmp_versions
make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
make -C /lib/modules/uname -r
/build M=$PWD
make[2]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
make[2]: *** /lib/modules/4.15.0-37-generic/build: No such file or directory. Stop.
make[2]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
Makefile:23: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
Makefile:43: recipe for target 'preinstall' failed
make: *** [preinstall] Error 2I googled around and found the following link on AskUbuntu with a similar issue. Finally, I entered the following command:
sudo apt-get install linux-headers-4.15.0-37-generic
After that, the driver setup performed successfully.
The root cause of mentioned trouble, possibly, suited in the Up Ubuntu installation guide on the project Wiki. I guess, generic kernels could contain headers by default, but not installed Up kernel.Despite success in driver building, the following tries to launch the demo failed.
I would try to post a new comment with details. -
There is output of ./demo_security_barrier_camera.sh -d HDDL under the following spoiler.
Run Inference Engine security_barrier_camera demo
Run ./security_barrier_camera_demo -d HDDL -d_va HDDL -d_lpr HDDL -i /opt/intel/openvino/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/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 HDDLAPI version ...... 1.6
Build ...... 23780
Description ....... HDDLPlugin
[ 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 HDDL plugin
[14:47:20.4242][2905]I[ServiceStarter.cpp:93] Info: Found HDDL Service is not running. To start HDDL Service ...
[14:47:20.4279][2905]I[ServiceStarter.cpp:40] Info: Waiting for HDDL Service getting ready ...
Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
hid-f75114 is disabled by config, skipping
ioexpander is disabled by config, skipping
mcu is disabled by config, skipping
Performing auto-scan
scan F75114 device...
A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
found 1 F75114 device
[ion_close][69]close ion_fd = 3
Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
hid-f75114 is disabled by config, skipping
ioexpander is disabled by config, skipping
mcu is disabled by config, skipping
Performing auto-scan
scan F75114 device...
A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
found 1 F75114 deviceHDDL_INSTALL_DIR: /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl
[14:47:21.1343][2916]I[ConfigParser.cpp:176] Config file '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/hddl_service.config' has been loaded
[14:47:21.1366][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_alive.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.1383][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_ready.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.1384][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.1432][2916]I[AutobootStarter.cpp:150] Info: No running autoboot process. Start autoboot daemon...
Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
hid-f75114 is disabled by config, skipping
ioexpander is disabled by config, skipping
mcu is disabled by config, skipping
Performing auto-scan
scan F75114 device...
A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
found 1 F75114 device
[14:47:21.4956][2928]I[ConfigParser.cpp:176] Config file '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/hddl_autoboot.config' has been loaded
[14:47:21.4971][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_alive.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.4972][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_ready.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.4974][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.4975][2928]I[FileHelper.cpp:272] Set file:/tmp/hddl_autoboot_device.map owner: user-'no_change', group-'users', mode-'0660'
[14:47:21.4986][2928]I[AutoBoot.cpp:282] [Firmware Config] deviceName=default deviceNum=0 firmwarePath=/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/lib/mvnc/MvNCAPI-ma2480.mvcmd
Reset all devices with device type 2
[14:47:22.9860][2931]I[AutoBoot.cpp:183] Device 1.5.1-ma2480 boot success, firmware=/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/lib/mvnc/MvNCAPI-ma2480.mvcmd
[14:49:00.6219][2905]ERROR[ServiceStarter.cpp:55] Error: Wait HDDL Service Ready failed.
[14:49:00.6221][2905]ERROR[ServiceStarter.cpp:29] Error: Failed to start HDDL Service
[14:49:00.6222][2905]ERROR[HddlClient.cpp:215] Error: Failed to boot service.[14:49:00.7678][2905]I[HddlClient.cpp:203] Info: Hddl client unregistered.
[ ERROR ] _client->query(QUERY_TYPE_DEVICE, &query) failed: HDDL_NOT_INITIALIZED
Error on or near line 228; exiting with status 1
sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
[14:49:01.6203][2928]ERROR[AutoBoot.cpp:493] Error: Requested (3) devices but only found (1) devices within 100 seconds timeout.
[14:49:01.6204][2928]ERROR[AutoBoot.cpp:503] Error: Startup device failed abort disabled, run with left devices.
[14:49:01.6209][2916]I[AutobootStarter.cpp:83] Info: Autoboot is running.
[14:49:01.7811][2916]I[TaskSchedulerFactory.cpp:45] Info: ## TaskSchedulerFactory ## Created Polling Task-Scheduler.
[14:49:01.7821][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_snapshot.sock owner: user-'no_change', group-'users', mode-'0660'
[14:49:01.7826][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service.sock owner: user-'no_change', group-'users', mode-'0660'
[14:49:01.7828][2916]I[MessageDispatcher.cpp:86] Message Dispatcher initialization finished
[14:49:01.7828][2916]I[main.cpp:115] SERVICE IS READY ...
[14:49:02.0080][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
...
[14:51:37.0896][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
^C
sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
[14:51:41.0916][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
ps -a
PID TTY TIME CMD
2916 pts/4 00:01:40 hddldaemon
2928 pts/4 00:00:00 autoboot
2989 pts/4 00:00:00 ps
sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
[14:51:42.0921][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
...
[14:51:53.0980][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
killl -9 2916
sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
[14:51:54.0985][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
[14:51:54.0989][2928]I[BootDaemonHelper.cpp:71] Info: Autoboot stops normally.
[ion_close][69]close ion_fd = 3 -
Dear @DCleri
the best if one could really get this brand new board and reproduce the whole sequence from the scratch, including hardware assembly, OS and OpenVINO setup, and tuning, etc.
Alternatively, one could obtain and share the full EMMC image from the actual working device.I have a similar topic here, still no answers there.
-
Dear @DCleri !
Good news!
I have tested the second set, which arrived for us. It seems working.
Finally, demo_security_camera_barrier, run with all 3 VPUs which was illustrated by lsusb output, where all three 2485 PIDs become F63B when inited for inference.
Important to know, that VPUs in my set work via MYRIAD plugin, not HDDL, i.e. run with the following command:
$./demo_security_barrier_camera.sh -d MYRIADThe first set seems to be not fully functional, moreover, it has a blue label "Engineering Sample".
There are 2 photos attached to this comment.
How is it possible that the engineering sample has been sent instead of a fully functional one for the full price?What do we do with this board?
I will check if Up Vision Plus X works fine with "not engineering sample" of Up Core Plus and update soon.
Highly likely, we would like to return or exchange "Engineering Sample" to the functional one.UPD: Both Up Vision Plus X with 3VPUs work fine with normal Up Core Plus.
-
Hi @SashaBe
I would close the other topic and we continue here.
About the engineering sample, did you ordered from the shop recently and you got that instead of a normal board?
Or did you order a pre-production sample long time ago?
Just for my own information.Please apply for RMA to request for replacement of the non working unit.
Regarding the plugin, both Myriad and HDDL should work, but the HDDL is the one designed to run the inference across multiple Myriad-X