WARNING: long post full of rants and anger.
I'm really, really interested to see if AMD does any testing to their drivers at all.
I'm using Xubuntu 11.10 64-bit architecture (yep, on AMD Phenom II CPU).
I also have 2 x HD5770 cards (quite identical ones).
Now my recent AMD driver experience follows. Basically, I want to both run desktop and also use them for computations using OpenCL.
Here is some "adventures" and resulting rants.
Part 1 - default Ubuntu driver.
- Even default Ubuntu proprietary driver install fails to add ALL adapters to xorg.conf. Then upon reboot there is no acceleration. I have a very little idea why driver installation can't launch aticonfig --initial --adapter=all on their own.
- There are more annoying issue: only one GPU detected by OpenCL instead of 2 cards .
I tried APP SDK 2.4 and 2.6, and they're not anyhow different in this regard and the problem is quite the same.
The idiocy is that some ATI driver parts, etc can properly see that I have 2 GPUs (most notably everything that uses ADL).
Say, aticonfig --odgc --adapter=all will see both GPUs:
Basically, all calls to ADL libs will claim there are 2 GPUs (which is true).Code:$ aticonfig --odgc --adapter=all Adapter 0 - ATI Radeon HD 5700 Series Core (MHz) Memory (MHz) Current Clocks : 157 300 Current Peak : 850 1200 Configurable Peak Range : [600-960] [1200-1445] GPU load : 0% Adapter 1 - ATI Radeon HD 5700 Series Core (MHz) Memory (MHz) Current Clocks : 157 300 Current Peak : 850 1200 Configurable Peak Range : [600-960] [1200-1445] GPU load : 0%
So I can see smth like this via calling ADL stuff:
0: ATI Radeon HD 5700 Series (load:0%, temp:40C)
1: ATI Radeon HD 5700 Series (busy:0%, temp:39C)
ADL libs can clearly recognize there are 2 GPUs.
On other hand, OpenCL calls will lie me that I have only 1 GPU.
clGetDeviceIDs( ..., &devices_num) will return 1 in devices_num. And only 1 device "Juniper" is listed via those calls. Should I admit this really suxx since I can't use second card for computations?
Actually it's a big surprise for me how AMD managed to achieve this weird behavior at all. Can at least someone explain me how AMD opencl lib goes to thinking there are only 1 GPU? On previous OS install in the very same configuration OpenCL properly detected there are 2 GPUs. How the heck it can lose 1 GPU?
Well, part2. The story continues:
Attempt to install AMD driver from their site in hope it will do better. Ugh, AMD driver 11.12 (8.92) - last available from AMD site (ati-driver-installer-11-12-x86.x86_64.run).
Well, it has proven to be a worst evil thing I ever seen at all.
- This crap can build DEB package for Ubuntu 11.10. In theory, I should be able to install this crap in civilized way, having a good way to rollback changes to my system if I dislike them. On practice, package generation is broken beyond repair. It not just fails to generate xorg.conf properly. It also does not triggers initrd update so crappy fglrx module is never included to ramdisk at all and so ... guess what. No acceleration. H3ll yea. Ubuntu's own package is THIS dumb and does ramdisk trick. Why the heck huge AMD corp can't give a single run to their crap to see how it works? Basically, packages are useless.
- Standard install will also do not create xorg.conf - sure, it's so hard to launch single command from installer if user lacks xorg.conf at all. Gah.
- Well, issue with only 1 GPU for OpenCL persists as before.
1) AMD does not tests their drivers. Shame on you, AMD!
2) AMD officially supports some moron redhat stuff but who uses it on desktop? Are you nuts, AMD? There are 20 millions of Ubuntu users! And redhat desktop users are something that I never seen at all.
3) It's amazing how the same driver from the same vendor can see one or two GPUs depending on API part. That's a h3ll on the earth.
4) I'm very sad that Nvidia does not suites my needs, unfortunately.
5) AMD is a clear winner in a "Worst Drivers I Ever Seen" nomination.
6) I'm really hope opensource driver will perform better that this utter crap.