The operating system is CentOS 6. There are 2 NVIDIA GeForce cards installed on the machine, as well as a Radeon HD 7990. The machine is run in headless mode, i.e. X server is not running.
I've installed corresponding drivers, by creating RPM package from the driver installation script, and then by installing RPM. The driver version, as mentioned in the generated RPM file name, seems to be 12.104; I tried later also with latest beta of the driver, version 13.20, but results were the same. After installing driver, I've installed AMD APP SDK, version 188.8.131.52.
CUDA SDK 5.5 is installed on this machine too. CUDA version of libOpenCL.so get used, as verified for example by "ldd /usr/bin/clinfo". I tried also with using LD_LIBRARY_PATH to have AMD version of libOpenCL.so used, and end results are practically the same as described below.
I'm accessing this machine through SSH (I tried both "ssh machinename" and "ssh -Y machinename"). The problem is that clinfo is not listing Radeon GPUs (this card is dual-GPU) when run as ordinary user. When clinfo run through "sudo clinfo", it would then properly list Radeon GPUs. More precisely, clinfo would actually crash when run this way, with error message "clinfo: relocation error: clinfo: symbol clRetainDevice, version OPENCL_1.2 not defined in file libOpenCL.so.1 with link time reference" (when AMD version of libOpenCL.so used, it would just crash without any error message), but at least it would properly show that there are 3 devices (CPU, and 2 GPUs) for AMD platform, and on the other side I have little program of my own that is listing devices, and that would properly list all AMD and NVIDIA GPUs, as well as CPU device, present on this machine when run under sudo. However, when run under an ordinary user, only NVIDIA GPU devices, and CPU device, get listed.
I read several threads on this forum about alike problems, and tried some of solutions proposed there. I tried to add:
chmod uog+rw /dev/ati/card*
into /etc/gdm/Init/Default, and then to restart gdm ("sudo killall gdm-binary"). This had no effect, in the sense that permissions on /dev/ati/card* files were not changed. I tried to change permissions manually, but clinfo still would not list Radeon GPUs when not run under sudo.
Any further suggestions here? Is it absolutely necessary to have X server running on given machine in order for ordinary users to be able to see Radeon GPUs when running some OpenCL codes? How to configure X in this case? Why clinfo is crashing when listing devices, with the error message above?