smart-edge-open / edgeapps

Applications that can be onboarded to an Intel® Smart Edge Open edge node.
Apache License 2.0
51 stars 73 forks source link

VPU Support #47

Open adtrytech opened 3 years ago

adtrytech commented 3 years ago

Hi Teams,

Can the OpenVINO sample code support VPU acceleration? And, How to achieve it?

Thank You!

amr-mokhtar commented 3 years ago

Hi @adtrytech. Yes, it can. You need to update the env variable OPENVINO_ACCL to the value MYRIAD or CPU_MYRIAD to have alternating processing through VPU & CPU. More details at this section.

adtrytech commented 3 years ago

Hi @amr-mokhtar,

Thanks for your support. I ran the command directly(not follow the producer and consumer rule) and I were failed by using the PCIE card "Intel® Movidius™ Myriad™ X VPU" hardware accelerator.

Below are my procedures and hope you can help me on this. I need to utilize this PCIE card successfully.

  1. Launch the consumer app and clientsim app with proper IP settings and initialization.
  2. Using CPU was OK. The command: /root/omz_demos_build/intel64/Release/object_detection_demo_ssd_async -d CPU -i rtp://127.0.0.1:5000?overrun_nonfatal=1 -m pedestrian-detection-adas-0002/FP32/pedestrian-detection-adas-0002.xml 3. Using the HDDL was failed. The command + log: root@openvino-cons-app-6744f45755-gnwld:~# /root/omz_demos_build/intel64/Release/object_detection_demo_ssd_async -d HDDL -i rtp://127.0.0.1:5000?overrun_nonfatal=1 -m pedestrian-detection-adas-0002/FP16/pedestrian-detection-adas-0002.xml InferenceEngine: API version ............ 2.0 Build .................. custom_releases/2019/R2_f5827d4773ebbe727c9acac5f007f7d94dd4be4e Description ....... API [ INFO ] Parsing input parameters [ INFO ] Reading input [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. [rtp @ 0x2082660] Received packet without a start chunk; dropping frame. OpenCV: FFMPEG: tag 0x47504a4d/'MJPG' is not supported with codec id 8 and format 'mjpeg / raw MJPEG video' [ INFO ] Loading Inference Engine [ INFO ] Device info: HDDL HDDLPlugin version ......... 2.0 Build ........... 27579 [ INFO ] Loading network files [ INFO ] Batch size is forced to 1. [ INFO ] Checking that the inputs are as the demo expects [ INFO ] Checking that the outputs are as the demo expects [ INFO ] Loading model to the device [06:12:24.2845][4709]I[ServiceStarter.cpp:93] Info: Found HDDL Service is not running. To start HDDL Service ... [06:12:24.2878][4709]I[ServiceStarter.cpp:40] Info: Waiting for HDDL Service getting ready ... open /dev/ion failed! [ion_close][69]close ion_fd = -1 open /dev/ion failed! [06:12:24.2989][4713]I[main.cpp:243] ## HDDL_INSTALL_DIR: /opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/external/hddl [06:12:24.2990][4713]I[main.cpp:245] Config file '/opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/external/hddl/config/hddl_service.config' has been loaded [06:12:24.2996][4713]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_alive.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.2997][4713]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_ready.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.2997][4713]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.2999][4713]I[AutobootStarter.cpp:155] Info: No running autoboot process. Start autoboot daemon... open /dev/ion failed! [06:12:24.3040][4714]ERROR[DeviceMonitorMyxImpl.cpp:107] Error: libusb initialise failed (LIBUSB_ERROR_OTHER) [06:12:24.3054][4714]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_alive.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.3055][4714]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_ready.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.3055][4714]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660' [06:12:24.3056][4714]I[FileHelper.cpp:272] Set file:/tmp/hddl_autoboot_device.map owner: user-'no_change', group-'users', mode-'0660' [06:12:24.3057][4714]I[AutoBoot.cpp:300] [Firmware Config] deviceName=default deviceNum=0 firmwarePath=/opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/external/hddl/lib/mvnc/MvNCAPI-ma2x8x.mvcmd [I:] [BSL] Config file detected at /opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/external/hddl/config/bsl.json [I:] [BSL] hid-f75114 is disabled by config, skipping [I:] [BSL] ioexpander is disabled by config, skipping [I:] [BSL] mcu is disabled by config, skipping [I:] [BSL] Performing auto-scan [I:] [BSL] scan F75114 device... [I:] [BSL] A matched device found at /sys/devices/pci0000:85/0000:85:02.0/0000:88:00.0/0000:89:04.0/0000:8d:00.0/usb9/9-2/9-2.2/9-2.2:1.0/0003:2C42:5114.0001/hidraw/hidraw0 [I:] [BSL] found 1 F75114 device [I:] [BSL] Found 1 devices [I:] [BSL] hddl_set_device bsl_device=2 [I:] [BSL] Reset all devices with device type 2 [06:12:24.3093][4714]ERROR[AutoBoot.cpp:470] Error: HDDL hardware initialization failed, exits now. [ion_close][69]close ion_fd = -1 [06:12:25.3033][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 1 seconds ... [06:12:26.3066][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 2 seconds ... [06:12:27.3096][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 3 seconds ... [06:12:28.3125][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 4 seconds ... [06:12:29.3156][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 5 seconds ... [06:12:30.3188][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 6 seconds ... [06:12:31.3219][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 7 seconds ... [06:12:32.3251][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 8 seconds ... [06:12:33.3284][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 9 seconds ... [06:12:34.3312][4713]I[AutobootStarter.cpp:78] Info: Service has been waiting for Autoboot to boot up for 10 seconds ... [06:12:34.3313][4713]ERROR[AutobootStarter.cpp:88] Error: Service wait Autoboot to get ready failed due to timeout after 10 seconds. [06:12:34.3314][4713]W[AutobootStarter.cpp:98] ** Suggestion: The timeout by default is 10 seconds, and you can increase it by following steps: (1) Add following entry in $HDDL_INSTALL_DIR/config/hddl_service.config like this: "service_settings": { "autoboot_boot_timeout_sec": 10, ... } (2) Change the '10' to a larger value to increase the time out window, then try again.

[06:12:34.3317][4713]ERROR[AutobootStarter.cpp:48] Error: Failed to start autoboot [06:12:34.3317][4713]ERROR[main.cpp:76] Error: Start Service failed due to autoboot failure [ion_close][69]close ion_fd = -1 [06:14:04.4606][4709]ERROR[ServiceStarter.cpp:55] Error: Wait HDDL Service Ready failed. [06:14:04.4609][4709]ERROR[ServiceStarter.cpp:29] Error: Failed to start HDDL Service [06:14:04.4609][4709]ERROR[HddlClient.cpp:215] Error: Failed to boot service.

[06:14:04.4611][4709]I[HddlClient.cpp:203] Info: Hddl client unregistered. [ ERROR ] _client->query(QUERY_TYPE_DEVICE, &query) failed: HDDL_NOT_INITIALIZED

adtrytech commented 3 years ago

Hi @amr-mokhtar,

Provide the HOST OS information and I just deployed the OpenNESS and utilized its sample applications. It means there is no other extra installation such as OpenVINO on the HOST.

[root@en01 ~]# cat /etc/centos-release CentOS Linux release 7.8.2003 (Core)

[root@en01 ~]# uname -a Linux en01 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

amr-mokhtar commented 3 years ago

Hi @adtrytech. I see that you are using HDDL. For HDDL, you need to enable HDDL service by setting variable ne_hddl_enable: true in the converged-edge-experience-kits/inventory/default/group_vars/all/10-default.yml before running CEEK playbooks.

More details at Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in OpenNESS document.

adtrytech commented 3 years ago

Hi @amr-mokhtar,

Thanks for your support. I took some time to redeploy the OpenNESS with enabling the parameter "ne_hddl_enable: true". But, unfortunately I still got failed on using the HDDL device for inference. Do you have any suggestion or anything I should provide and check? Thank you!

At the openvino consumer APP, I got the same error message attached before with the same command: /root/omz_demos_build/intel64/Release/object_detection_demo_ssd_async -d HDDL -i rtp://127.0.0.1:5000?overrun_nonfatal=1 -m pedestrian-detection-adas-0002/FP16/pedestrian-detection-adas-0002.xml

At the edge node equipped with HDDL device, the HDDL daemon was started normally. I built the drv_ion and install it to the edge node. [root@en01 drv_ion]# ls /dev/ion /dev/ion

[root@en01 ~]# ps ax | grep hddl 40941 ? Ssl 0:00 /usr/local/bin/docker run --name ov_hddl --rm --device-cgroup-rule=c 10: rmw --device-cgroup-rule=c 89: rmw --device-cgroup-rule=c 189: rmw --device-cgroup-rule=c 180: rmw -v /usr/src:/usr/src -v /lib/modules:/lib/modules -v /etc/modules-load.d:/etc/modules-load.d -v /dev:/dev -v /var/tmp:/var/tmp openvisualcloud/openness-ubuntu1804-analytics-hddldaemon /usr/local/bin/run_hddl.sh 41449 ? Ss 0:00 /bin/bash /usr/local/bin/run_hddl.sh 42239 ? Sl 0:28 ./hddldaemon 42244 ? Sl 0:00 /opt/intel/openvino/deployment_tools/inference_engine/external/hddl/bin/autoboot --auxiliary 66831 pts/2 S+ 0:00 grep --color=auto hddl

mcping commented 3 years ago

@adtrytech could you show us the deploy logs and your oek commit?

  1. You should have myriad0-7 dev which are vpus in HDDL card. ls /dev
    autofs dm-2 i2c-2 mqueue port sda2 tty12 tty26 tty4 tty53 ttyS0 usbmon6 vcsa4 block dri i2c-3 myriad0 ppp sda3 tty13 tty27 tty40 tty54 ttyS1 usbmon7 vcsa5 bsg fb0 i2c-4 myriad1 ptmx sg0 tty14 tty28 tty41 tty55 ttyS2 usbmon8 vcsa6 btrfs-control fd i2c-5 myriad2 ptp0 shm tty15 tty29 tty42 tty56 ttyS3 usbmon9 vfio bus full initctl myriad3 ptp1 snapshot tty16 tty3 tty43 tty57 uhid vcs vga_arbiter centos fuse input myriad4 ptp2 snd tty17 tty30 tty44 tty58 uinput vcs1 vhci char hidraw0 ipmi0 myriad5 ptp3 stderr tty18 tty31 tty45 tty59 urandom vcs2 vhost-net console hidraw1 kmsg myriad6 pts stdin tty19 tty32 tty46 tty6 usb vcs3 zero core hidraw2 kvm myriad7 qat_adf_ctl stdout tty2 tty33 tty47 tty60 usbmon0 vcs4 cpu hidraw3 log net random termination-log tty20 tty34 tty48 tty61 usbmon1 vcs5
  2. docker logs ov_hddl should as below: [setupvars.sh] OpenVINO environment initialized [04:58:08.8236][25]I[main.cpp:246] ## HDDL_INSTALL_DIR: /opt/intel/openvino/deployment_tools/inference_engine/external/hddl [04:58:08.8237][25]I[main.cpp:248] Config file '/opt/intel/openvino/deployment_tools/inference_engine/external/hddl/config/hddl_service.config' has been loaded [04:58:08.8252][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_alive.mutex owner: user-'no_change', group-'users', mode-'0660' [04:58:08.8252][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_ready.mutex owner: user-'no_change', group-'users', mode-'0660' [04:58:08.8253][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_failed.mutex owner: user-'no_change', group-'users', mode-'0660' [04:58:08.8253][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660' [04:58:08.8257][25]I[AutobootStarter.cpp:156] Info: No running autoboot process. Start autoboot daemon... [04:58:31.8325][25]I[AutobootStarter.cpp:85] Info: Autoboot is running. [04:58:31.8474][25]W[ConfigParser.cpp:269] Warning: Cannot find key, path=scheduler_config.max_graph_per_device subclass=0, use default value: 1. [04:58:31.8474][25]W[ConfigParser.cpp:292] Warning: Cannot find key, path=scheduler_config.use_sgad_by_default subclass=0, use default value: false. [04:58:31.8479][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_snapshot.sock owner: user-'no_change', group-'users', mode-'0660' [04:58:31.8493][25]I[DeviceSchedulerFactory.cpp:56] Info: ## DeviceSchedulerFacotry ## Created Squeeze Device-Scheduler2. [04:58:31.8493][25]I[DeviceManager.cpp:551] ## SqueezeScheduler created ## [04:58:31.8493][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(10.2) [04:58:33.8532][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(10.2) [04:58:33.8533][25]I[DeviceManager.cpp:719] worker(Wt10.2) created on device(10.2), type(0) [04:58:33.8533][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(10.1) [04:58:35.8577][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(10.1) [04:58:35.8578][25]I[DeviceManager.cpp:719] worker(Wt10.1) created on device(10.1), type(0) [04:58:35.8579][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(8.2) [04:58:37.8617][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(8.2) [04:58:37.8618][25]I[DeviceManager.cpp:719] worker(Wt8.2) created on device(8.2), type(0) [04:58:37.8619][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(8.1) [04:58:39.8660][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(8.1) [04:58:39.8661][25]I[DeviceManager.cpp:719] worker(Wt8.1) created on device(8.1), type(0) [04:58:39.8662][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(6.2) [04:58:41.8703][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(6.2) [04:58:41.8704][25]I[DeviceManager.cpp:719] worker(Wt6.2) created on device(6.2), type(0) [04:58:41.8705][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(6.1) [04:58:43.8738][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(6.1) [04:58:43.8739][25]I[DeviceManager.cpp:719] worker(Wt6.1) created on device(6.1), type(0) [04:58:43.8740][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(4.2) [04:58:45.8781][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(4.2) [04:58:45.8782][25]I[DeviceManager.cpp:719] worker(Wt4.2) created on device(4.2), type(0) [04:58:45.8782][25]I[DeviceManager.cpp:649] times 0: try to create worker on device(4.1) [04:58:47.8816][25]I[DeviceManager.cpp:670] [SUCCESS] times 0: create worker on device(4.1) [04:58:47.8817][25]I[DeviceManager.cpp:719] worker(Wt4.1) created on device(4.1), type(0) [04:58:47.8817][25]I[DeviceManager.cpp:145] DEVICE FOUND : 8 [04:58:47.8817][25]I[DeviceManager.cpp:146] DEVICE OPENED : 8 [04:58:47.8819][25]I[DeviceManagerCreator.cpp:81] New device manager(DeviceManager0) created with subclass(0), deviceCount(8) [04:58:47.8834][25]I[TaskSchedulerFactory.cpp:45] Info: ## TaskSchedulerFactory ## Created Polling Task-Scheduler. [04:58:47.8855][25]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service.sock owner: user-'no_change', group-'users', mode-'0660' [04:58:47.8857][25]I[MessageDispatcher.cpp:87] Message Dispatcher initialization finished [04:58:47.8858][25]I[main.cpp:106] SERVICE IS READY ... [04:58:52.8861][45]I[DeviceManager.cpp:916] DeviceSnapshot(subclass=0): | deviceId | 6(0x6) | 5(0x5) | 4(0x4) | 3(0x3) | 2(0x2) | 1(0x1) | 0(00) | 7(0x7) | | device | 10.1 | 8.2 | 8.1 | 6.2 | 6.1 | 4.2 | 4.1 | 10.2 | | util% | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | | thermal | 40.28(0) | 46.90(0) | 48.70(0) | 41.66(0) | 40.28(0) | 43.27(0) | 40.97(0) | 40.28(0) | | scheduler | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | | comment | | | | | | | | | | resetTimes | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | cacheNum | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | cacheGraph0 | | | | | | | | | | cacheGraph1 | | | | | | | | | | cacheGraph2 | | | | | | | | | | cacheGraph3 | | | | | | | | | +-------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+

[04:58:57.8865][45]I[DeviceManager.cpp:916] DeviceSnapshot(subclass=0): | deviceId | 6(0x6) | 5(0x5) | 4(0x4) | 3(0x3) | 2(0x2) | 1(0x1) | 0(00) | 7(0x7) | | device | 10.1 | 8.2 | 8.1 | 6.2 | 6.1 | 4.2 | 4.1 | 10.2 | | util% | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % | | thermal | 41.66(0) | 46.45(0) | 47.80(0) | 41.66(0) | 40.97(0) | 42.81(0) | 40.97(0) | 41.43(0) | | scheduler | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | squeeze | | comment | | | | | | | | | | resetTimes | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | cacheNum | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | cacheGraph0 | | | | | | | | | | cacheGraph1 | | | | | | | | | | cacheGraph2 | | | | | | | | | | cacheGraph3 | | | | | | | | | +-------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-----------

  1. to be sure your hddl card is pulg in: lspci | grep USB 00:14.0 USB controller: Intel Corporation C620 Series Chipset Family USB 3.0 xHCI Controller (rev 09) 1b:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller 1c:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller 1e:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller 1f:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller

  2. to get the VPU info in HDDL: lsusb | grep "Myriad VPU" Bus 010 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 010 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 008 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 008 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 006 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 006 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 004 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 004 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick]

adtrytech commented 3 years ago

Hi mcping,

Sorry for I don't realize the meaning of "oek commit". Could you please describe it more detailed? Thank you! By the way, I didn't install the OpenVINO toolkits on the edge node(host name: en01) that was equipped with VPU PCIE Cards.

Deploy Logs: I deployed the OpenNESS several times to complete it eventually. So, there was three log files of this deployment. 2021-04-06_01-20-52_ansible.log 2021-04-06_01-57-20_ansible.log 2021-04-06_02-09-19_ansible.log

  1. You should have myriad0-7 dev which are vpus in HDDL card. [root@en01 ~]# ls /dev autofs crash hidraw1 ipmi0 mei0 net ptp0 sda2 tty0 tty19 tty29 tty39 tty49 tty59 ttyS1 usbmon4 vcs5 vhci block disk hidraw2 kmsg mem network_latency ptp1 serial tty1 tty2 tty3 tty4 tty5 tty6 ttyS2 usbmon5 vcs6 vhost-net bsg dm-0 hidraw3 kvm mqueue network_throughput ptp2 sg0 tty10 tty20 tty30 tty40 tty50 tty60 ttyS3 usbmon6 vcsa watchdog btrfs-control dm-1 hidraw4 log myriad0 null ptp3 shm tty11 tty21 tty31 tty41 tty51 tty61 uhid usbmon7 vcsa1 watchdog0 bus dm-2 hpet loop-control myriad1 nvram pts snapshot tty12 tty22 tty32 tty42 tty52 tty62 uinput usbmon8 vcsa2 zero centos dri hugepages lp0 myriad2 oldmem random snd tty13 tty23 tty33 tty43 tty53 tty63 urandom usbmon9 vcsa3 char fb0 hwrng lp1 myriad3 port raw stderr tty14 tty24 tty34 tty44 tty54 tty7 usbmon0 vcs vcsa4 console fd i2c-0 lp2 myriad4 ppp rtc stdin tty15 tty25 tty35 tty45 tty55 tty8 usbmon1 vcs1 vcsa5 core full i2c-1 lp3 myriad5 pps0 rtc0 stdout tty16 tty26 tty36 tty46 tty56 tty9 usbmon10 vcs2 vcsa6 cpu fuse initctl mapper myriad6 pps1 sda termination-log tty17 tty27 tty37 tty47 tty57 ttyACM0 usbmon2 vcs3 vfio cpu_dma_latency hidraw0 input mcelog myriad7 ptmx sda1 tty tty18 tty28 tty38 tty48 tty58 ttyS0 usbmon3 vcs4 vga_arbiter

  2. docker logs ov_hddl should as below: Please refer to the file: hddl_docker_log.txt hddl_docker_log.txt

  3. to be sure your hddl card is pulg in: [root@en01 ~]# lspci | grep USB 00:14.0 USB controller: Intel Corporation C620 Series Chipset Family USB 3.0 xHCI Controller (rev 09) 8a:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) 8b:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) 8c:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) 8d:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)

  4. to get the VPU info in HDDL: [root@en01 ~]# lsusb | grep "Myriad VPU" Bus 010 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 010 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 008 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 008 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 006 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 006 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 004 Device 002: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick] Bus 004 Device 003: ID 03e7:f63b Intel Myriad VPU [Movidius Neural Compute Stick]

mcping commented 3 years ago

I just want to know the version of openness-experience-kits, which you are using. I can see it in the deply log now. Can you give me the lsusb and ls /dev lspci info? thanks. To be sure your have the HDDL card for I am not very clear about 'VPU PCIE Cards' you mentioned. You don't need to install OpenVINO on the host(node).

adtrytech commented 3 years ago

Hi mcping,

Regarding the "lsusb and ls /dev lspci info", please refer to my previous responses. I checked it on the edge node which is equipped with HDDL card. The "VPU PCIE Card" is equal to HDDL card. FYI. Sorry for confusing.

Is the "drv_ion" driver required by the HDDL host node?

mcping commented 3 years ago

your hddldeamon is normal showed by the logs. drv_ion is not needed.

adtrytech commented 3 years ago

Hi mcping,

OK. So, just deploy the OpenNESS with enabling the parameter "ne_hddl_enable: true", righ? If the answer is YES, please help to resolve why I can't execute the openvino sample code at the edge node. Thank you!

mcping commented 3 years ago
  1. which openvino version are you using? l_openvino_toolkit_p_2020.2.120? or l_openvino_toolkit_p_2019.3.334? I use l_openvino_toolkit_p_2021.1.110 and I can not find object_detection_demo_ssd_async ls -al total 2480 drwxr-xr-x. 3 root root 4096 Apr 20 11:28 . drwxr-xr-x. 3 root root 21 Apr 20 11:27 .. -rwxr-xr-x. 1 root root 486336 Apr 20 11:27 benchmark_app -rwxr-xr-x. 1 root root 307656 Apr 20 11:27 classification_sample_async -rwxr-xr-x. 1 root root 181168 Apr 20 11:27 hello_classification -rwxr-xr-x. 1 root root 156584 Apr 20 11:27 hello_nv12_input_classification -rwxr-xr-x. 1 root root 60784 Apr 20 11:27 hello_query_device -rwxr-xr-x. 1 root root 178320 Apr 20 11:28 hello_reshape_ssd drwxr-xr-x. 2 root root 62 Apr 20 11:27 lib -rwxr-xr-x. 1 root root 354904 Apr 20 11:28 ngraph_function_creation_sample -rwxr-xr-x. 1 root root 263984 Apr 20 11:28 object_detection_sample_ssd -rwxr-xr-x. 1 root root 282584 Apr 20 11:28 speech_sample -rwxr-xr-x. 1 root root 243792 Apr 20 11:27 style_transfer_sample

  2. pedestrian-detection-adas-0002 for this model, do you download it manually?

  3. can you try to run /root/inference_engine_samples_build/intel64/Release/classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m /root/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d HDDL to verify that your HDDL works. This is a simple demo model for test.

adtrytech commented 3 years ago

Hi @mcping,

After upgrading to the latest version, it can utilize the HDDL device. Thank you !