Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
896 Views

Recommendations for OpenCL platforms not displaying on Windows OS

Hello OpenCL stakeholders,

Some users may be running into issues during platform detection. They may not be able to detect an Intel platform in the Windows OS environment even though an appropriate graphics driver is installed for the system. This could be due to the ICD Loader being unable to find anticipated registry references.

The classic location for 64bit OpenCL references is to be stored is within these registry entries:

If not present, consider adding a entry REG_DWORD object in the registry, with data value 0, and the name is the full path to the OpenCL implementation... Example: 

Location: HKLM\SOFTWARE\Khronos\OpenCL\Vendors

Name: C:\windows\System32\DriverStore\FileRepository\ig<path_on_your_system>\IntelOpenCL64.dll REG_DWORD 0

 

The classic location for 32bit OpenCL references is to be stored is within these registry entries:

If not present, consider adding a entry REG_DWORD object in the registry, with data value 0, and the name is the full path to the OpenCL implementation... Example: 

Location: HKLM\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors

Name:

C:\windows\System32\DriverStore\FileRepository\ig<path_on_your_system>\IntelOpenCL32.dll REG_DWORD 0

 

-MichaelC

0 Kudos
8 Replies
Highlighted
Beginner
896 Views

Hi Michael,

Can you have a quick look at my OpenCL issue! Your steps used to reestablish the Intel OpenCL platform, but only with CPU OpenCL device. After a driver update, this solution doesn't work anymore. Thank you!

 

0 Kudos
Highlighted
896 Views

Hi TiborN,

  • Can you share which OpenCL application you used to interrogate the system? It's possible platform or device names are slightly different with updated runtimes... if the application looks for too rigid or hardcoded strings to pick platforms, it's possible it may not display them to you. If we can't see the source for the application that information is fairly opaque.
  • I'll revisit the registry references post with the graphic driver team.
  • Also, unfortunately the Intel® System Studio 2019: OpenCL™ Tools component is incompatible with the DCH driver stacks on Windows* OS... this would apply to current drivers labeled DCH on downloadcenter.intel.com. The developer tools team is working on this issue. Please see the release notes Update 3 for more information. 
  • You may want to try a clean DCH driver package install and use the clinfo program... https://github.com/Oblomov/clinfo Or you may want to use a legacy driver package install to access the developer tools.
  • Looking forward to your feedback because I'd like to give a circumspect write up for our teams to check things out.

 

Thanks,

-MichaelC

0 Kudos
Highlighted
896 Views

Hi TiborN,

The tweet suggests using geeks3d... Are you able to try clinfo?

-MichaelC

0 Kudos
Highlighted
896 Views

TiborN,

Can you please provide a link to the place from which you obtained the graphics driver?

Can you please provide a link or reference to the previous graphics driver package in use?

 

Thanks,

-MichaelC

0 Kudos
Highlighted
Beginner
896 Views

Oh,

I messed up the registry, I set the ICD dll instead of the OpenCL implementation. And now I have both devices somehow ... - the OCL CPU and the OCL GPU device as well. Everything works fine, clinfo gives all the data, GPU Caps Viewer lists the proper info as well and I can run LuxMark on both OCL devices. Even IndigoBench can compile the OpenCL kernels for the HD630!

Thanks!

 

0 Kudos
Highlighted
896 Views

TiborN,

Thanks for letting us know what happened.

Many users including myself have conflated OpenCL implementation and ICD library that would have led to such a configuration. I'm glad you got past it. Your comment may also help others.

Thanks and good luck,

-MichaelC

0 Kudos
Highlighted
Beginner
896 Views

One of the reasons for the missing Intel platform is that the ICD Loader shipped with the driver is not the newest one. The Intel Graphics driver does not add any entries in HKLM\SOFTWARE\WOW6432Node\Khronos\OpenCL\Vendors. Worse than that, the installer deletes all existing entries in the registry, making installing more than one OpenCL platform on Windows a nightmare.

The official Khronos ICD Loader has a function called khrIcdOsVendorsEnumerateHKR, and the comments at the top state the following:

// Tries to look for the OpenCL key under the display devices and
// if not found, falls back to software component devices.

Here is the output of the ICD Loader in Debug Mode:

KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:274: Device ID: PCI\VEN_1002&DEV_67EF&SUBSYS_22DE1458&REV_CF\4&2db3ecda&0&0008
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:279:     devinst: 1
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:292:     Trying to look for the key in the display adapter HKR...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:133: Unexpected registry entry 0x7! continuing
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:299:     Could not find the key, proceeding to children software components...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:318:     devchild: 2
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:332:     deviceInstanceID: DISPLAY\DELA0BA\5&2352A770&5&UID260
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:318:     devchild: 3
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:332:     deviceInstanceID: DISPLAY\DELA0BA\5&2352A770&5&UID261
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:274: Device ID: PCI\VEN_8086&DEV_1912&SUBSYS_D0001458&REV_06\3&11583659&0&10
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:279:     devinst: 4
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:292:     Trying to look for the key in the display adapter HKR...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows_hkr.c:137:     Path: C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\IntelOpenCL64.dll
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\icd.c:49: attempting to add vendor C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\IntelOpenCL64.dll...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\icd.c:175: successfully added vendor C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\IntelOpenCL64.dll with suffix INTEL
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows.c:47: Opening key HKLM\SOFTWARE\Khronos\OpenCL\Vendors...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows.c:70: Reading value 0...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows.c:86: Value C:\WINDOWS\System32\DriverStore\FileRepository\c0313676.inf_amd64_96bbc33bec5c7fae\amdocl64.dll found...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\icd.c:49: attempting to add vendor C:\WINDOWS\System32\DriverStore\FileRepository\c0313676.inf_amd64_96bbc33bec5c7fae\amdocl64.dll...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\icd.c:175: successfully added vendor C:\WINDOWS\System32\DriverStore\FileRepository\c0313676.inf_amd64_96bbc33bec5c7fae\amdocl64.dll with suffix AMD
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows.c:70: Reading value 1...
KHR ICD trace at D:\OpenCL-ICD-Loader\loader\windows\icd_windows.c:83: Failed to read value 1, done reading key.

As one can see, the first thing the ICD loader does is to look into the list of display adapters.

Why not ship the latest ICD loader?

Why does the installer need to remove all registry entries?

0 Kudos
Highlighted
Beginner
896 Views

hello Michael,

I am not IT guy.

Does this post help for my radeon RX vega M GH card under win10 to activate opencl in order to have oil paint filter inside photoshop ?

nobody replied to my post

thanks

best regards

marc

0 Kudos