OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.

failed to create engine: clGetPlatformIDs error -1001

Zhu__Dongzhi
Beginner
2,273 Views

Intel i5-7300CPU

GPU intel HD Graphics 620

VMware Ubuntu 16.04.6 LTS 

openVINO R2 with GPU

 

error code:

~/inference_engine_samples_build/intel64/Release/classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/FP16/classification/squeezenet/1.1/caffe -d GPU

[ INFO ] InferenceEngine:

API version ............ 2.0

Build .................. custom_releases/2019/R2_f5827d4773ebbe727c9acac5f007f7d94dd4be4e

Description ....... API

[ INFO ] Parsing inpu1

[ INFO ]     /opt/intel/openvino/deployment_tools/demo/car.png

[ INFO ] Creating Inference Engine

[ ERROR ] Failed to create plugin /opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/lib/intel64/libclDNNPlugin.so for device GPU

Please, check your environment

failed to create engine: clGetPlatformIDs error -1001

 

I run ./install_NEO_OCL_driver.sh successfully

 

But clinfo shows

clinfo

Number of platforms                               0

 

Then I tried to uninstall all the dependencies that the Intel® Graphics Compute Runtime for OpenCL™ driver components required to use the GPU plugin

 

And tried to ./install_NEO_OCL_driver.sh successfully again

But still can not list the GPU platform

 

what is the problem?

Note that i run the demo successfully with GPU in Win10

0 Kudos
5 Replies
Michael_C_Intel1
Moderator
2,273 Views

Hello DongzhiZ,

 

On Linux the NEO RT requires the user have video group access. Can you try usermod  -a -G? This instruction is listed at the bottom of he NEO deployment page.

 

 

-MichaelC

0 Kudos
Michael_C_Intel1
Moderator
2,273 Views

It's also possible that for some reason your ICD references aren't visible... check /etc/OpenCL/vendors to ensure references are being placed appropriately.

It's possible libOpenCL.so can be influenced by environment variables to change the default directory from which to look for implementations. See the reference at the bottom of the readme here: https://github.com/KhronosGroup/OpenCL-ICD-Loader

 

-MichaelC

0 Kudos
Ben_A_Intel
Employee
2,273 Views

I wrote an article describing how OpenCL works on Linux and how to troubleshoot installation issues.  I suspect it will be helpful to debug this issue:

https://github.com/bashbaug/OpenCLPapers/blob/master/OpenCLOnLinux.asciidoc

Let me know if it helps, or if you have any suggestions for improvement.  Thanks!

0 Kudos
Zhu__Dongzhi
Beginner
2,273 Views

Ben Ashbaugh (Intel) wrote:

I wrote an article describing how OpenCL works on Linux and how to troubleshoot installation issues.  I suspect it will be helpful to debug this issue:

https://github.com/bashbaug/OpenCLPapers/blob/master/OpenCLOnLinux.asciidoc

Let me know if it helps, or if you have any suggestions for improvement.  Thanks!

Hi Ben Ashbaugh:

  Many thanks for offering your article, it helps me a lot to understand how OpenCL works on Linux. following your way of tracing, i got these lines when run my application:

strace ~/inference_engine_samples_build/intel64/Release/classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/FP16/classification/squeezenet/1.1/caffe -d GPU

open("/usr/local/lib/libOpenCL.so.1", O_RDONLY|O_CLOEXEC) = 3

open("/etc/OpenCL/vendors/intel.icd", O_RDONLY) = 4

read(4, "/usr/local/lib/libigdrcl.so\n", 28) = 28

open("/usr/local/lib/libigdrcl.so", O_RDONLY|O_CLOEXEC) = 5

write(2, "Failed to create plugin /opt/int"..., 219Failed to create plugin /opt/intel/openvino_2019.2.275/deployment_tools/inference_engine/lib/intel64/libclDNNPlugin.so for device GPU

Please, check your environment

failed to create engine: clGetPlatformIDs error -1001

) = 219

then, my application was able to find the ICD loader and the ICD loader was able to enumerate and load your vendor implementation.

Note that I run ubuntu16.04 on VMware

lspci command can only get VMware VGA and no GPU is found:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)

00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)

00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)

00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)

00:0f.0 VGA compatible controller: VMware SVGA II Adapter

00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)

00:11.0 PCI bridge: VMware PCI bridge (rev 02)

00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)

00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)

 

Does it mean that we can't see GPU in VMware?

Thanks!

Dongzhi

0 Kudos
Michael_C_Intel1
Moderator
2,273 Views

Hi DongzhiZ,

It looks like the issue is related to Intel® Graphics Technology hardware visibility through the virtualization stack.

Some VMware users forwarded us to this article on VMware's website. The article covers passing through PCI devices. It may be relevant for your case.

Communicating in a VMWare product related forum may yield more specific information that may apply to your configuration. 

 

For reference:

 

Per Intel® Graphics Compute Runtime for OpenCL™ instructions… a native installation on Ubuntu* OS needs access to /dev/dri/* . It gets access by adding the current user to the ‘video’ group…

Given lspci configuration you  reported this represents a gap in how the iGFX device is exposed… Here is corresponding detail from my Ubuntu* OS 18.04 iGFX system:

 

$ lspci

00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 0a)

00:02.0 VGA compatible controller: Intel Corporation Iris Pro Graphics 580 (rev 09)

00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model

00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)

00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)

00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)

00:1c.1 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #2 (rev f1)

00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)

00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)

00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)

00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)

00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)

00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)

00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)

02:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)

03:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)

3d:00.0 Non-Volatile memory controller: Intel Corporation Device f1a6 (rev 03)

 

$ ls /dev/dri/*

/dev/dri/card0  /dev/dri/renderD128

 

/dev/dri/by-path:

pci-0000:00:02.0-card  pci-0000:00:02.0-render

 

 

-MichaelC

0 Kudos
Reply