I don't know if this little documented feature was discussed here before.
In case it hasn't it is worth mentioning:
Due legacy considerations the AMD OpenCL software stack was bound to graphics and users had to enable the X-server in order to enjoy compute.
This is no longer completely true!!
In recent drivers it is possible to use AMD OpenCL when the X-server is down as long as you have root privileges.
(just type 'sudo clinfo' when the X-server is down to see the list of available devices) . This feature is called "console mode".
If the X-server is up then business is as usuall, users have to define an X-display for the GPU (sudo aticonfig --initial --adapter=all) in order to use it for compute.
Running the OpenCL program as root certainly got the card without a display connected to run properly (instead of falling back to the CPU).
Are there plans to make it so that you don't need root privileges?
Thanks for sharing this information. And I do confirm that the information is correct. Anyways can you please point to the little documentation you found it in. I could not find it in release notes.
-> OpenCL Console Mode Support
What I am wondering is why does it require being root? (which would make this feature basically useless). Is it possible to change some device permissions to allow access from any user? (I assume the problem is some device permissions?)
This doesn't mean that you should have root permissions.
What exactly you wanted to say here. For which command execution you needed root permission?
Tzachi Cohen clearly said "it is possible to use AMD OpenCL when the X-server is down as long as you have root privileges." So it means you need to be root to run OpenCL programs if the X server is down. Am I understanding this wrong?
Yes you are correct, root permissions are required to run opencl programs when x-server is down. But what i meant is no where it is mentioned in the documents.
Well, it is little bit mentioned in cat 13.4 release notes, and I tried this and it works! I am able to access to GPU as root when X is not running. But programs are not able to read GPU temps etc. as far as I can tell. But the question is what device do I have to make read/write to get everybody to access the GPU? I am about to build a small GPU cluster and well it would be sad to use nvidia cards to avoid running X I think?