I thought it might be useful for everyone to put this on a thread. X must be running obviously, but you dont have to login to run OpenCL programs and any user who can ssh into the box can access the GPUs.
1- Install Ubuntu 12.04 (confirmed to work on Ubuntu 12.10 also)
2- Edit the 'lightdm' user's shell using 'chsh lightdm' command and set it to /bin/bash
3- Open /etc/rc.local and add the following line before 'exit 0' . I realized sometimes rc.local was ran before GUI started therefore the delay is needed using sleep. Please let me know if you have a better way to run a command after lightdm loads
su -l lightdm -c "sleep 30 ; export DISPLAY=:0 ; xhost +local:"
4- Create a file /etc/profile.d/compute.sh and add the following inside (and execute 'chmod 755 /etc/profile.d/compute.sh' ):
if [ ! -z "$DISPLAY" ]; then
(enabling the commented out entries are for your own consideration...)
5- X setup resets if one logs in/out from the lightdm, so it might be advisable to add the following into /etc/lightdm/lightdm.conf
That seems to do the trick. Let us know your success stories.
The instructions assume that you can already use GPUs locally but you want to use them over ssh connection.
For your specific problem, you should define a screen on your second GPU. I think you could try:
aticonfig --inititial --adapter=all
or use catalyst center to assign a display to second card. (you shouldnt have to install an actual display, as long as X thinks there is a display)
In addition, it might help to use 12.10+ drivers, there was a thread where 12.9 drivers allowed independence from X, I dont know if it works or not, and if it is supported on all GPUs (in case if it works)
Finally after cold reboot clinfo sees both GPUs.
the desktop looks kind of a strange - after first login it was sort of stereo, with double menus, time, network icons etc. both on top and bottom
when i logged out and logged in again everything tripled.
I never had that problem, but it sounds strange, if you open catalyst center, do you see your cards correctly assigned to monitors? This could have something to do with Ubuntu itself I guess...
X must be running obviously
This is not obviously. There is an open claim here http://devgurus.amd.com/thread/159815 that it can be made to work without X, under at least one more recent driver version. I think this deserves your widespread attention, either to confirm it's working, or to state clearly that it's nonsense.
1- Install Ubuntu 12.04
... and do the necessary stuff to get OpenCL working on all your cards. You can find a tutorial here: http://devgurus.amd.com/thread/159019#1280510
For me, the 12.10 drivers automatically underclocked/undervolted my HD7970s to 300MHz and 0.85V for some bizarre reason (probably power saving related). Reverting to 12.04 drivers that I used in the past made it work. Well, juist pointing out in case anyone would have trouble.
The post was made way before the Catalyst 12.9+ release. Therefore it was then obvious that X had to run I didnt test it myself and it does not appear to be an official feature at this point (since AMD did not declare it in changelogs?). While it is a nice thing, I wouldnt count on it to work with all the cards. It is not even clear if that feature works on Tahiti cards only or it is a general feature at this point.
Indeed, I didn't notice the date, sorry.
I wouldnt count on it to work with all the cards. It is not even clear if that feature works on Tahiti cards only or it is a general feature at this point.
Even if it only works with Tahiti cards, it seems to me that the main demand for this comes from Tahiti cards. Compute power per money increases with the more expensive models, both on the card itself as on the overhead (i.e. other hardware needed to run the server), so for server building one is likely only interested in Tahiti.
(And for non-server machines, you don't want to kill X. )