I am trying to get 290x to be visible under Ubuntu 12.04 with latest 13.11 beta6 64bit Linux drivers. It looks like fglrx module is loaded and aticonfig is functioning
# aticonfig --adapter=0 --od-getclocks
Adapter 0 - AMD Radeon R9 290 Series
Core (MHz) Memory (MHz)
Current Clocks : 300 150
Performance Level : 0
Current Bus Speed : 2500
Current Bus Lane : 1
GPU load : 0%
However clinfo is returning no GPU devices. I have tried to login from the console to X and also set the COMPUTE environment variable. But nothing helped.
Is this a known problem that 290x series do not support OpenCL on Linux or any ideas on what may be the reason?
Please check the System Requirements from the below link
Here its mentioned that the AMD APP SKD support ubuntu 11.04.
Himanshu, lets be reasonable here. It has been over 1 year since Ubuntu 11.04 was EOLed!
Nobody is using 11.04 anymore. AMD must update their pages! Please report this to your team!
In addition, the SDK is not even related to this problem. Because OpenCL programs MUST function only with Catalyst drivers. Catalyst drivers support Ubuntu 12.04
Actually, Catalyst does NOT support 11.04 so it is impossible to make OpenCL programs for AMD GPUs on Linux right? It is funny that how a company like AMD can be so lazy updating their software requirements lists.
(I'm new to this forum and OpenCL: just looking around to figure out how to configure a Linux system to play.)
The list of supported Linux systems is pretty weak.
This posting suggests that some people have gotten Ubuntu 13.04 and perhaps 13.10 working http://devgurus.amd.com/thread/167623
Me? I'd like Fedora 19. The closest choice is RHEL6. RHEL is nicely stable (like Ubuntu 12.04 LTS).
The list of supported hardware is also quite weak. For example, nothing from the 8000 series (I have an 8570). I don't know about whether the R9 series is included (I think that the R series referred to is a previous generation, but I'm not sure).
It would be nice to know where these restrictions come from. Then we'd know whether it was foolish to ignore them.
Hugh, you should use Ubuntu, it is stable. Fedora breaks down quite often with updates. Always something breaks down in Fedora. While RHEL based distros are also stable, they lack latest tools, compilers etc. I would just go with Ubuntu 13.10 at this point.
Actually I got this working with Ubuntu 13.10, but I sure would like to get it working with 12.04 also. I am sure many developers may have opted in to use 12.04. I have several boxes running 12.04
There are lots of arguments about the relative merits of Fedora and Ubuntu.
The most relevant one is that Ubuntu makes some attempt to support the AMD proprietary drivers and Fedora doesn't. But there are some nuances to this.
rpmfusion tries to support proprietary drivers for Fedora but doesn't always succeed. Here's just one problem (it may have been solved by now) https://bugzilla.rpmfusion.org/show_bug.cgi?id=2959
Ubuntu fails at supporting AMD proprietary drivers fairly often too. Here's a bug that affected me for at least a year (until I gave up) https://bugs.launchpad.net/ubuntu/+source/nvidia-common/+bug/873058
That's why I'd like advice from folks that have succeeded. So thanks yurtesen!
(I'd REALLY like reasonable OpenCL support in the open source drivers! I infer that this is being worked on.)
I think if you are running OpenCL programs you do not need to use ubuntu or fedora repositories (because they always lag behind). I always download the driver from AMD site.
I had some problems with Fedora with AMD drivers, because Fedora abruptly upgrade kernels every week and often the drivers failed installing to newest kernels. But with Ubuntu, kernel updates are not that often and I never had that problem with Ubuntu actually.
I am running Ubuntu 13.10 and for some reason it is not recognizing my R9 290X card. Any idea how to fix this? Have tried many different drivers and it still does not work. Thanks in advance.
Hi tuck, I got this working 2 weeks ago with Ubuntu 13.10. I used the instructions here:
and installed the Beta version from the options. This was from a clean install of ubuntu 13.10, *without* getting any proprietary drivers during install.
typing eg 'clinfo' in a terminal shows me (among other things):
Platform Name: AMD Accelerated Parallel Processing
Number of devices: 2
Device Type: CL_DEVICE_TYPE_GPU
Device ID: 4098
Board name: AMD Radeon R9 200 Series
Device Topology: PCI[ B#1, D#0, F#0 ]
NOTE: most of the discussion here is how to get AMD's SDK to work, given that it messes up paths etc during install. Your question/problem is simpler than that.
I am using the following drivers and they work fine:
I guess the question boils down to exactly what you are doing to install the drivers and exactly what you are doing to check if they are working or not?
Also, if you go to download page
It shows supported OSes as "Linux® (openSUSE™ 11.*, Ubuntu® 10.0*, Red Hat® Enterprise Linux® 6.*)" (Notice Ubuntu 10!!!)
you mentioned a few posts up that you got OpenCL on an R290 to work with ubuntu 13.10;
could you perhaps indicate what you had to do to get this to work?
I have exactly the same symptoms as your original post, and, having bought the card
specifically to do OpenCL development on it, am currently rather frustrated!
I think this may help you. When I couldnt make it work in the Ubuntu 12.04, I have started upgrading the box to newer versions, 12.10, 13.04 and then to 13.10 and it still didnt work.
What I did was to remove the AMD APP-SDK and Catalyst drivers, then install latest catalyst beta drivers from scratch. (I didnt test if installing APPSDK breaks it or not at this point, so please let me know if you test that). Then it started working all of a sudden. I have seen this before. Catalyst sometimes does not update OpenCL if APP-SDK is installed or APP-SDK does not update it if Catalyst is installed. Since the latest drivers are in Catalyst beta, I think it may be so that it didnt install some OpenCL stuff when it saw older APP-SDK and this caused 290x to not appear.
Please let me know if this helps you also (so I would know that I didnt have some random luck)
Could you please check the same behaviour with latest driver 13.11 and AMD APP SDK 2.9. In case of any issue i request you to report.
Thanks for your support.
Thanks for your responses, Yurtesen and Himanshu.
Following Yurtesen's suggestion, I removed everything and tried first installing just the drivers.
On 13.10 it does indeed work: the GPU is correctly detected by clinfo and cl binaries run properly.
Simply installing the AMD-APP sdk then inhibits the GPU detection by default.
However, I now know the reason and can manually correct it: the wrong version (i.e. the AMD-APP version)
of libOpenCL is found by the dynamic linker.
For example, running 'ldd /usr/bin/clinfo' gets me ' libOpenCL.so.1 => /opt/AMDAPP/lib/x68_64/libOpenCL.so.1
instead of the fglrx-provided library. If I correct this by hand for example by exporting
LD_LIBRARY_PATH=/usr/lib/fglrx/:$LD_LIBRARY_PATH, it works properly.
I have not yet tried looking at the install script to find the culprit line, but I imagine this should not be too hard to
correct in the sdk?
Himanshu, it appears that when APP SDK is installed, the Catalyst is not installing some files so we are forced to use some old OpenCL library which doesnt support 290x cards and that caused my problem. Perhaps you should make the installer check if the installed version is newer or not and overwrite if it is older. I have been bitten by this several times already.
I have reproduced on a fresh install of Ubuntu Saucy, latest Catalyst 3.11 beta and SDK 2.9
What happens is that the SDK install modifies /etc/profile and adds these lines:
This has the effect of overriding system libraries with whatever is in there, which is:
benh@plonk:~/grabbag/cgminer$ ls -l /opt/AMDAPP/lib/x86_64/
-rw-r--r-- 1 501 502 37294832 Oct 30 21:38 libamdocl64.so
-rw-r--r-- 1 501 502 428135 Oct 30 21:38 libGLEW.so
-rw-r--r-- 1 501 502 753434 Oct 30 21:38 libglut.so
lrwxrwxrwx 1 501 502 14 Oct 30 21:52 libOpenCL.so -> libOpenCL.so.1
-rw-r--r-- 1 501 502 23720 Oct 30 21:38 libOpenCL.so.1
So out libamddocl64.so and libOpenCL.so.1 from fglrx are being overriden by the ones in
the SDK which aren't functional.
I've for now removed the LD_LIBRARY_PATH override from my /etc/profile
So it appears that this isn't sufficient.
The SDK installer also adds a pair of scripts to /etc/ld.so.conf.d which add the SDK to the system library
path as well (why both approaches ?). So I had to remove these and an ldconfig later, things are now working.
I had the same issue and my investigations concluded that OpenCL on linux using R290 does not work with the latest drivers.
I replaced my R290 with an R280 and everything immediately started working.
See my thread here: http://devgurus.amd.com/thread/167930
Almost same problem with Ubuntu 13.04, 3.8.0-19-generic, amd-catalyst-13.11-beta V9.4
After few minutes of workin'g I'm see this message in dmesg:
[ 1810.519789] divide error: 0000 [#1] SMP
[ 1810.519793] Modules linked in: vesafb(F) bnep rfcomm bluetooth ppdev(F) parport_pc(F) snd_hda_codec_hdmi mac_hid wmi snd_hda_codec_realtek snd_hda_intel kvm_amd snd_hda_codec snd_hwdep(F) kvm snd_pcm(F) snd_seq_midi(F) snd_seq_midi_event(F) snd_page_alloc(F) snd_rawmidi(F) fglrx(POF) snd_seq(F) snd_seq_device(F) snd_timer(F) psmouse(F) k10temp serio_raw(F) amd_iommu_v2 edac_core sp5100_tco snd(F) edac_mce_amd i2c_piix4 lp(F) parport(F) microcode(F) soundcore(F) usb_storage(F) firewire_ohci firewire_core crc_itu_t(F) floppy(F) pata_acpi r8169 pata_atiixp ahci(F) libahci(F)
[ 1810.519813] CPU 3
[ 1810.519817] Pid: 1495, comm: Xorg Tainted: PF O 3.8.0-19-generic #29-Ubuntu Gigabyte Technology Co., Ltd. GA-MA785GT-UD3H/GA-MA785GT-UD3H
[ 1810.519819] RIP: 0010:[<ffffffffa033ba81>] [<ffffffffa033ba81>] CIslands_FanCtrl_SetFanSpeedRPM+0x71/0x160 [fglrx]
[ 1810.519912] RSP: 0018:ffff880256839ce0 EFLAGS: 00010246
[ 1810.519914] RAX: 00000000608f3d00 RBX: ffff8802568ed028 RCX: 0000000000000000
[ 1810.519915] RDX: 0000000000000000 RSI: 0000000000000080 RDI: ffff8802568ed00c
[ 1810.519916] RBP: ffff8802568ed00c R08: 00000000c05001a0 R09: ffff880260b82008
[ 1810.519917] R10: ffff880260b82008 R11: ffffffffa017529e R12: 0000000000000000
[ 1810.519918] R13: 0000000000000001 R14: 00007fffaa2c7330 R15: 0000000000000000
[ 1810.519920] FS: 00007f4bd802e940(0000) GS:ffff88026fd80000(0000) knlGS:0000000000000000
[ 1810.519921] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 1810.519922] CR2: 00007f488eceeff0 CR3: 0000000255d60000 CR4: 00000000000007e0
[ 1810.519923] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 1810.519925] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 1810.519926] Process Xorg (pid: 1495, threadinfo ffff880256838000, task ffff880255d68000)
[ 1810.519927] Stack:
[ 1810.519928] ffff88025599380c ffffffffa02bf600 0000000000000000 ffffffffa02bf612
[ 1810.519931] 0000000000000000 ffffffffa02dfff9 ffff88024d2d3c90 ffff880256839d90
[ 1810.519933] ffff88024d2d3c90 0000000000000000 ffff8802617c0000 ffffffffa02d5c0b
[ 1810.519934] Call Trace:
[ 1810.520000] [<ffffffffa02bf600>] ? PHM_SetFanSpeedPercent+0x50/0x50 [fglrx]
[ 1810.520061] [<ffffffffa02bf612>] ? PHM_SetFanSpeedRPM+0x12/0x50 [fglrx]
[ 1810.520122] [<ffffffffa02dfff9>] ? PEM_SetFanSpeed+0x79/0xa0 [fglrx]
[ 1810.520184] [<ffffffffa02d5c0b>] ? PEM_CWDDEPM_OD6_SetFanSpeed+0xcb/0x1c0 [fglrx]
[ 1810.520215] [<ffffffffa0175253>] ? KCL_MEM_SmallBufferAlloc+0x13/0x20 [fglrx]
[ 1810.520276] [<ffffffffa02d1ee9>] ? PP_Cwdde+0x109/0x180 [fglrx]
[ 1810.520312] [<ffffffffa01b12d0>] ? firegl_pplib_cwddepm_call+0x1e0/0x250 [fglrx]
[ 1810.520349] [<ffffffffa01b10f0>] ? firegl_pplib_iri_call+0x2f0/0x2f0 [fglrx]
[ 1810.520381] [<ffffffffa018420d>] ? firegl_ioctl+0x1ed/0x250 [fglrx]
[ 1810.520412] [<ffffffffa017355e>] ? ip_firegl_unlocked_ioctl+0xe/0x20 [fglrx]
[ 1810.520415] [<ffffffff811a5919>] ? do_vfs_ioctl+0x99/0x570
[ 1810.520417] [<ffffffff811a5e81>] ? sys_ioctl+0x91/0xb0
[ 1810.520420] [<ffffffff81194372>] ? sys_read+0x52/0xa0
[ 1810.520423] [<ffffffff816d379d>] ? system_call_fastpath+0x1a/0x1f
[ 1810.520424] Code: 00 00 00 48 89 ef 48 8d 5d 1c e8 7b 7a ff ff 48 89 ef 31 d2 89 c6 42 8d 0c e5 00 00 00 00 69 f6 c0 27 09 00 89 f0 be 80 00 00 00 <f7> f1 ba 70 00 30 c0 41 89 c4 e8 60 e6 f8 ff 48 89 ef 83 e0 07
[ 1810.520442] RIP [<ffffffffa033ba81>] CIslands_FanCtrl_SetFanSpeedRPM+0x71/0x160 [fglrx]
[ 1810.520498] RSP <ffff880256839ce0>
[ 1810.520500] ---[ end trace 37b7ba659289f656 ]---
You may also want to report the issue aleshka just posted, it's a common one. It appears that passing incorrect
parameters to any of the Fan control ioctls causes that Oops (some division by 0 in the kernel apparently) which
in turns kills X.
The kernel driver should definitely do a bit of sanity checking of the arguments passed to it.
One common cause of that one is "cgminer" which has a bug in the fan control code causing this to happen
when you quit it. (For those interested, veox maintains a fork for GPU scrypt mining only in which he applied
a fix I sent him for this problem at https://github.com/veox/cgminer).
@yurtesen what model of card do you have? I have a Sapphire R9 290X with the same problem. I'm curious if there may be a simple fix in that the OpenCL library is missing a deviceID for our model(s).
Please can some staff member or more competent member of this forum write a consice step-by-step list in a clear manner on how to get this $600 USD Card running with OpenCL on latest Linux Distributions? I am talking Ubuntu 13.10 and beyond.
I will very much look forward to this. Above description and recursive reference - pardon my english - is a joke.
Thank you and highly appreciated!
I can verify that OpenCL with the R9 290 works in Ubuntu 13.10.
First I installed the Catalyst-14.1beta1.3, and then the AMD-APP-SDK-v2.9-lnx64. But the latter messed things up preventing my application (Luxrender) to identify the OpenCL device. So I removed files which had been added by AMD-APP inside /opt, and /etc/ld.so.conf.d/ and I also opened /etc/profile to remove the few lines of text it had added there. Then I removed Catalyst by purge fglrx*, re-installed it, and voila! it works.
the fault is of the script Install-AMD-APP.sh, in file default-install_lnx_64.pl there is a wrong path:
|$Cat_OCL_RT_files = '/usr/lib/libamdocl64.so';|
|$Cat_OCL_RT_files = '/usr/lib/fglrx/libamdocl64.so';|
and everything will be fine.
dual R9 290x, XUBUNTU 14.04 , driver 14.20 beta, amdapp 2.9