1
votes

I'm using a server with a CPU Intel Xeon (E5-2620) , a Intel MIC (5110P), and a GPU Nvidia K20m. My OpenCL code was able to see each of the devices of each platforms (Nvidia and Intel).
For some reason I now can see only the Intel devices.
What i can't figure is i compile my code using Nvidia OpenCL libraries.
The content of the /etc/OpenCL/vendors/nvidia.icd file is correct.
In my code I explicitly specify the Nvidia library for OpenCL.
It seem our admin reinstall or update the driver, since then it does not work anymore.

I also tried the test code clInfo.c and got the same issue.

Here is how I built it:

gcc -w -lOpenCL clInfo.c

The output looks like that:

./a.out: /usr/lib64/nvidia/libOpenCL.so.1: no version information available (required by ./a.out)
Found 1 platform(s).
platform[0xa69cc0]: profile: FULL_PROFILE
platform[0xa69cc0]: version: OpenCL 1.2 LINUX
platform[0xa69cc0]: name: Intel(R) OpenCL
platform[0xa69cc0]: vendor: Intel(R) Corporation
... 

Can someone shed light on this?
Thank you.

1
How are you scanning for platforms in clInfo.c? What has changed about your configuration to cause it to spontaneously stop working? - Tom Fenech
It's supposed to work, via the ICD mechanism, and you had it working once. Some driver install maybe stomped on the ICD. Try in-installing the missing system's driver to see if it patches up the ICD table. - Dithermaster
@Tom I use clGetPlatformIDs and clGetDeviceIDs. I don't know exactly what happened, the admin reinstalled the driver I guess. I've to figure myself since he's not available now. - Eric
@Dithermaster Thanks, how to check the status of the ICD. Do you mean just reinstall the Nvidia driver? - Eric
@Eric Sorry, I don't know how the ICD table works under Linux. Under Windows the entries are stored in the Registry. Since NVIDIA is the one missing I'd try installing it. - Dithermaster

1 Answers

1
votes

actually, I uninstalled the driver and realized that there was some conflicts.
I then installed the latest release and here we go, it's working fine now.
Thank you all for your help.