Not sure if this is the right place, because I don't know if this is supposed to be posted under OpenVino or OneApi forums, but I hope this can be forwarded to the right people to update the setup instructions pages and close the topic.
Background: I have OneApi 2021.1.1 and OpenVino 2021.1.110 installed. Used install_NEO_OCL_driver.sh from OpenVino kit to install the drivers and had the GPU device listed in clinfo with OpenCL2.0. I have a DPC++ library which loads a 2 stages neuronal network, does some OneAPI preprocessing on CPU, then stage 1 inference with OpenVino, some more OneAPI processing on CPU, then stage 2 inference with OpenVino and some OneAPI post processing on CPU.
I wanted to independently move these 5 stages on GPU/CPU (DG1 in the future) to do the execution to get some time measurements.
My hardware is an Intel NUC with i5-7260U and some Intel HD Graphics 630 integrated. with Ubuntu 18.04 LTS.
The code worked fine on DevCloud which had a newer version of OpenCL while on mine it crashed on GPU preprocessing with some SPIRV error.
Steps to reproduce:
1. install OpenVino 2021.1.110
2. install OneApi 2021.1.1
3. according to the setup page:
4. install clinfo and execute it -> GPU device appears with OpenCL2.0 . Trying to execute my code at this point fails.
5. according to this page: https://dgpu-docs.intel.com/releases/releases-20201124.html go to https://github.com/intel/compute-runtime/releases/ and try to upgrade to 20.46.18421 or even a newer version
6. run clinfo -> GPU device no longer appears. At this point you can install any version from that page and will see that GPU device does not appear unless it is the version 19.41.14441
7. Upgrade to kernel 5.8 to be sure that the kernel 4.14 does not create issues:
mkdir kernel ; cd kernel
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8-rc7/amd64/linux-headers-5.8.0-050800rc7_5.8.0-05...
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8-rc7/amd64/linux-headers-5.8.0-050800rc7-generic_...
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8-rc7/amd64/linux-image-unsigned-5.8.0-050800rc7-g...
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.8-rc7/amd64/linux-modules-5.8.0-050800rc7-generic_...
sudo dpkg -i *.deb ; <reboot>
-> does not help. GPU device still not present
But, after strace debugging I got a hint to install Intel Media SDK https://github.com/Intel-Media-SDK/MediaSDK/releases/tag/intel-mediasdk-20.3.0 , I could finally see the GPU device as an OpenCL device, with OpenCL 3.0 and I could finally execute my code.
My issue is that I did not find any mention in the OpenVino/OneApi setup pages that I should also install Intel Media SDK to get my GPU to work with a newer driver too.
I posted this for whomever has the same issue with his OpenCL GPU drivers. Hopefully someone will include a link/hint to this Intel Media SDK in the setup pages.
I'm wondering if this is related to MediaSDK not being installed by the OpenVINO installer? Somehow it's not installed on my machine... at least not for 2020.4 or 2021.1. Does anyone else have the same experience?
Intel® Media SDK is included with Intel® Distribution of OpenVINO™ toolkit for Linux only, as mentioned in the following page:
MediaSDK is partially deployed when installing OpenVino. The use still has to execute /opt/intel/mediasdk/install_media.sh to get the exports:
added to the environment. But I did not see this mentioned in the setup instructions. I do not know yet if the MediaSDK that comes with OpenVino 2021.1.110 is compatible with the latest OpenCL drivers 20.48.xxxxx as I have installed the latest MediaSDK from GitHub.
Also, there's another issue. Due to space constraints I have installed OpenVino in a different location, rather than the default /opt/intel/ , but MediaSDK still ended up in /opt/intel/mediasdk and I had no reason to look there since I installed OpenVino in my custom location.
Amend to my last comment: I have checked again my hosts, because I did these setups on multiple ones to compare the results, and it seems that the user does not have to install manually MediaSDK after installing OpenVino, as it is deployed too (although it is deployed in a hardcoded location not the user indicated one). The issue is that the MediaSDK that comes with OpenVino is compatible with old versions of OpenCL drivers so if the user needs OpenCL 3.0, it won't update to it easily because the update instructions are not clear enough.
I just checked and realized why I didn't see MediaSDK installed, not even in the default `/opt/intel` destination. I am installing "as a user", which means the installer doesn't have access to `/opt` and silently ignores MediaSDK install.
This should be documented, and probably a warning should be issued to the user.
@Munesh_Intel could you submit a JIRA ticket for these topics?
It is supposed to be a known issue when both OpenCL runtime and Media driver installs gmmlib and incompatibility may occur. Recommendation is to use OpenCL runtime from the OpenVINO package or check compatible versions for Media SDK.
It has been already reported. Possible workarounds would be either uncheck MediaSDK while installing or export the environment path or run installer under sudo or root permission to have ability to install Media SDK component, otherwise corresponding installer prerequisite message would be shown.
This thread will no longer be monitored since we have provided a solution. If you need any additional information from Intel, please submit a new question.