- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
I am new to openCL programming but have fair amount of experience in GPGPU. My goal is to run some benchmark application using OpenCL and then to start writing my own code. I am using a KabyLake processor and want to use the GPU in it. I have followed the instructions mentioned in https://software.intel.com/en-us/articles/opencl-drivers and https://software.intel.com/en-us/intel-opencl/documentation. But I couldn't get it to work. The GPU is not getting detected and only CPU is detected. I was wondering if someone could provide me a step-by-step proper installation methodology. I am using ubuntu 16.04 (4.13.0) and I want to use OpenCL 2.0. I would be highly obliged if someone could provide me a guide to install OpenCL in the mentioned configuration. Please let me know if there are any further details that would be required. Thank you.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi SankhaD,
Thanks for the interest and sharing the deployment experience.
Here's the relevant content on the opencl-drivers article as of 20181017:
Linux* OS Ubuntu* 16.04.x (deb)
- Runtime: Intel® Graphics Compute Runtime for OpenCL™ Driver
- Platforms:
- Linux* OS Ubuntu* 16.04.x (see release notes for kernels used in validation cycle)
- https://github.com/intel/compute-runtime/blob/master/README.md
- https://github.com/intel/compute-runtime/blob/master/documentation/FAQ.md
- Download:
- Build:
On the graphics runtime...
What feedback did you receive? Can you describe specifically where you were blocked in the deployment instructions...? Was it either the Readme or FAQ... or elsewhere? Can you share the CPU model number in use? It's possible that CPU doesn't have on die graphics.... check ark.intel.com.
edit: SKU mentioned in title... it has Intel® HD Graphics 630... should be OK for NEO runtime.
Precompiled Intel® Graphics Compute Runtime for OpenCL™ Driver packages are downloadable in .deb format underneath releases. In Ubuntu* OS, the apt facilities can deploy that .deb file. After installing the .deb, the runtime reference file should be updated in the regular location for OpenCL™ deployments. (i.e. /etc/OpenCL/vendors). The .so's them selves typically end up in /opt/intel. Users shouldn't usually have to bother with the .icd's or the .so's directly... but it can be reassuring to check what's going on.
Where were you blocked with the SDK/developer tools?
I highly recommend a new person use the updated OpenCL developer tools within Intel® System Studio 2019 over the Intel® SDK for OpenCL™ Applications 2017. The 2019 release has lots of usability, stability, bug fixes, and hopefully installation simplification.
-MichaelC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Micheal
Thank you for getting back to me. I actually followed the steps mentioned in Intel® Graphics Compute Runtime for OpenCL™ Driver and I was able to build it without any issue. The driver built fine. My actual issue was with the sdk installation. So after the registration I downloaded the ubuntu version of the SDK but couldn't manage to install it after doing the gunzip. After gunzip I was converting the file to be executable using chmod but couldn't get to make it run. I have also tried different ways for sdk installation (after searching from the internet), but none of them actually worked. Every time I was trying to make this work, I using clinfo for verification. I was checking the list of devices but couldn't get to see the GPU device, which lead me to conclude that the issue is not solved.
Then I came across this post (https://software.intel.com/en-us/forums/opencl/topic/796730) in this forum and in the 3rd comment the user have posted that that the sdk file generating from gunzip is actually another tar file (in disguise) and needed to be converted. So I followed his methodology and indeed the sdk got installed. Now I am able to see the GPU device if I do a sudo clinfo (and not just clinfo). So from the beginning I would enumerate the steps that I followed this time.
1. Installing the .deb package of the Intel® Graphics Compute Runtime for OpenCL™ Driver under the release section (https://github.com/intel/compute-runtime/releases). I downloaded the .deb pre-compiled package 18.41.11649 version and installed it first. However, I was also able to build the driver successfully from the source code by following the build instructions in https://github.com/intel/compute-runtime/blob/master/documentation/BUILD_Ubuntu.md.
2. Then I downloaded the opencl sdk package and followed the 3rd comment mentioned in https://software.intel.com/en-us/forums/opencl/topic/796730 and I was able to install the sdk successfully after resolving some required dependencies.
3. I carried out sudo clinfo and the following is the output
As you can see the GPU got detected properly.
However, I have some following question and some feedback:
1. In the NULL platform behavior the
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No platform
Why the output is showing as No Platform both for CPU and GPU?
2. You mentioned that using Intel System Studio would be a better choice. I have tried to use that as well. The installation was fine but the device was not getting detected with the studio as well.
a. Can you please provide me with some guide as to how can I program OpenCL using the integrated GPU in Intel System Studio?
b. How can I write OpenCL code after installing the SDK (not system studio)?
3. What would be my next steps as to execute an OpenCL program on iGPU. Can you please provide me with a step by step guidance right after the sdk gets installed.
Now I just want to provide you a feedback regarding my experience. If any hobbyist or a curious person tries to use the OpenCL on integrated GPU of Intel then that person would be very much frustrated and demotivated as the installation guidelines was ill-informed. I wasted 2 days because nowhere it was mentioned that the file after doing the gunzip is another file (and not executable) which needed to be converted to tar.gz file. I am fortunate enough to find the post that addresses that issue. Even now I am not sure if everything is good and I can assess it after running some tests and also after hearing back from you. So considering the OpenCL SDK as a industry level software, a proper documentation regarding successful installation, the issues during installation and how those issues can be mitigated is very much missing. It would be very much helpful if Intel could create a proper documentation regarding the proper installation guidelines then it would be helpful. As far as of now, nothing like that exists. Whatever is mentioned as installation guidelines are not proper installation guidelines, they are kind of working principle of OpenCL on intel products which would nice to look into if only the software gets installed properly and user gets to use it without any issue. Thank you so much again for your reply.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would also like to add something after my last comment. There are 2 issues that came up which I am listing below:
1. The first is the code builder plug-in error which is mentioned in the post https://software.intel.com/en-us/forums/opencl/topic/759485. So I would try to solve using the post. But even after solving the issue, I guess, the following issue would come up.
2. I was able to install the system studio but the GPU device doesn't get listed if I launch the system without sudo access. Once I launch without the sudo then the gpu is not showing in the discovered devices same as clinfo. So I was wondering if there is any solution to this problem as to why I need sudo access to get the gpu recognized and how that can be avoided.
Thank you again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi SankhaD,
Thanks for the questions and feedback.
Please make sure to check the release notes for the SDK or developer tools chosen here: https://software.intel.com/en-us/articles/intel-sdk-for-opencl-applications-release-notes.
1. Checking the Khronos specification that behavior appears to be implementation defined. https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/clCreateContextFromType.html see properties. The Khronos standard references are a key resource for any new developer.
2. the device was not getting detected with the studio as well.
Can you clarify what this means: 'detected with the Studio'?
- Intel® System Studio 2019 OpenCL™ developer tools is the latest update for the provisions in the Intel® SDK for OpenCL™ Applications 2017.
- Intel® SDK for OpenCL™ Applications 2017 was not validated for Intel® Graphics Compute Runtime for OpenCL™ Driver (NEO) in Linux* environments. It was also only validated for specific Linux* OS kernels and SRB5.0 implementation, not Intel® Graphics Compute Runtime for OpenCL™ Dirver (NEO). NEO usage with the 2017 SDK may provide some tool functionalities, but NEO usage with the 2017 SDK is not supported.
- IDE plugins have platform interrogation facilities that do allow for some OpenCL™ platform information viewing... is that what you mean by not getting detected with the studio?
2a.
Please see the getting started guide for a walkthrough of what the SDK/developer tools offers.
https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg <---- strongly recommended based on feedback, and the system specified.
https://software.intel.com/en-us/articles/sdk-for-opencl-2017-gsg
https://software.intel.com/en-us/articles/sdk-for-opencl-2017-gsg-linux-os
Keep in mind that Linux* OS distributions can vary quite a bit from one another. Even the same distribution may have differing style of deployments. This may alter prerequisite setup.
OpenCL™ programs need to select the Intel® Graphics Technology device... so long as the OpenCL™ version (i.e. 1.2/2.0/2.1) calls and data structures match the implementation and the interrogated device target... Then, contexts, command, queues, NDRange kernel launches, and memory calls to marshall and execute the kernel are good to go.
The 2019 developer tools have an IDE template program for a 'helloworld' and they target Intel® Graphics Technology. Looking at those would be a good start.
For Intel® Graphics Technology specific extensions were added to the standard to get better performance for the graphics u-architecture. These are the best examples: https://github.com/intel/compute-samples. The doc's on github should be pretty good walkthroughs.
2b. There are many options. Strictly speaking, an IDE environment is not needed. OpenCL™ ICD Loader interrogator runtime is needed.... these are described in the GSGs linked above. SDKs contain the runtime, developers can write a c/cpp application and link against that runtime at the command line and without an IDE.
3. Create or obtain a program that uses Intel® Graphics Technology. Please look at GSGs, look at these samples https://github.com/intel/compute-samples, and work from any graphics target templates included with the IDE.
Some of the blocking issues observed are located in the release notes... New users (especially on Linux* OS) are strongly encouraged to review the release notes: https://software.intel.com/en-us/articles/intel-sdk-for-opencl-applications-release-notes. Documentation for a Windows* OS walkthrough for Intel® System Studio 2019 is up here: https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg-windows-o. This walkthrough is geared toward new developers. The Linux* OS equivalent is work in progress.
Thanks,
-MichaelC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Micheal
Thank you for your reply. As per your suggestion I installed the intel system studio (again) and I was trying to use that. So the system studio is in the /opt/intel/ folder and the launch script is iss_ide_eclipse-launcher.sh. So when I launch it with sudo ./iss_ide_eclipse-launcher.sh then under the OpenCL Platform Information, I can see the Gen9 HD Graphics is enlisted. Otherwise, the device is not getting listed. I want to know why this is happening and how can I avoid it, I mean launching without sudo and still able to enlist the GPU device.
Actually going over your post I am confused with the driver usage w.r.t to the OpenCL software tool. You mentioned that "Intel® SDK for OpenCL™ Applications 2017 was not validated for Intel® Graphics Compute Runtime for OpenCL™ Driver (NEO) in Linux* environments." I am not sure which driver to use with which software tool. So let's say I am using Intel System Studio to write my OpenCL code, then I have to use the NEO driver? And if I am using Intel OpenCL SDK then I have to use the SRB5.0 driver? Or given my specification I can use SRB5.0 in either case.
Intel System Studio 2019 ultimate edition--> Either Intel® Graphics Compute Runtime for OpenCL™ Driver (NEO) or SRB5.0 OR Intel® Graphics Compute Runtime for OpenCL™ Driver (NEO) ONLY
Intel SDK 2017 --> SRB5.0 (ONLY)
Also can you provide me a link to download SRB5.0 and also to get some note about the driver. Thank you.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page