On ubuntu 18.04 kernel 5.3.0-46-generic with OpenVINO 2020.2 , the sample application with HDDL device worked fine on baremetal (ubuntu host system).
But when the hddldaemon was started on baremetal and a docker service was started where the application makes use of OpenVINO APIs to run inference on HDDL device , there was an error observed.
[04:40:56.6193]ERROR[HddlMyriadXDevice.cpp:1370] Error: share memory buffer('hddl_18_140001756677888_0') mapping failed
[04:40:56.6193]ERROR[HddlMyriadXDevice.cpp:649] Error: map inputTensor failed, device=8.3 taskId=1
[04:40:56.6194]ERROR[SlaveWorker.cpp:181] [Wt8.3S0] Error: loadTensor(1) failed, rc=-118
[04:40:56.6194]I[SlaveWorker.cpp:282] [Wt8.3S0] Return task(1) to TaskManager, loadCount=1 error=-118
[04:40:56.6195]D[hddl_protocol.cpp:249] <-- Send Msg (fd = 2): HDDL_MESSAGE_INFER_TASK_RSP [ReqSeq = 4] DONE
[04:40:56.6197]D[HddlMyriadXDevice.cpp:646] [TrackFd] map: clientId=1 graphId=1 taskId=1 inFd=0
[04:40:56.6198]ERROR[ShareMemory_linux.cpp:57] Error: shm_open() failed: errno=2 (No such file or directory)
With gvadetect element below error log was seen
0:00:03.275463333 18 0x7fc4c0aec260 ERROR GVA_common openvino_image_inference.cpp:352:operator(): Inference request completion callback failed with InferenceEngine::StatusCode: -1
" status | NC_ERROR " is observed on hostsystem in hddldaemon snapshot when docker application uses HDDL device.
Both gvadetect element and native c++ and python OpenVINO APIs have been tried with applications inside docker environment with HDDL as device and the above error logs were seen.
With kernel 5.0 the same use case with device as HDDL is working in docker environment as the ion driver was installed and mounted inside docker container.
OpenVINO release note mentions that "ion" driver cannot be installed on ubuntu kernel version above 5.0 due to compatible issue and falls back to shared memory. But when "ion" driver is not installed and shared memory is used there seems to be some issue with docker environment.
Please let us know if there is a workaround to use HDDL use case applications with OpenVINO 2020.2 on Ubuntu 18.04 kernel 5.3 in a docker environment.
Note: ipc=host configuration has also been tried to allow the docker service to be able to use the host system namespace but still the issue was not resolved.
As a workaround you can try this. Please refer the thread for more details.
Jesus E. (Intel) wrote:
Apologize for the delay in my response, the error is caused by a compatibility issue with kernel version 5.3. This should be fixed in the next release, as a workaround please try disabling the ION driver.sudo mv /lib/modules/$(uname -r)/kernel/drivers/myd/myd_ion.ko /lib/modules/$(uname -r)/kernel/drivers/myd/myd_ion.ko.backup sudo depmod -a
Hi Ram Prasad,
The compatibility issue of ion driver with Kernel 5.3 is persistent even with the latest OpenvVINO 2020.3 version. With HDDL usecase it again falls back to shared memory and this causes error when docker applications are used. (hddldameon started on host system and docker application running as priviledged mode uses HDDL device for inferencing).
With Kenel 5.0 ion driver is being installed with OpenVINO 2020.3 and there is no issue using the docker applications.