32 Replies Latest reply on Aug 11, 2014 7:51 AM by signork

    Linux 290x OpenCL ?

    yurtesen

      Hello,

       

      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?

       

      Thanks,

      Evren

        • Re: Linux 290x OpenCL ?
          himanshu.gautam

          Please check the System Requirements from the below link

          http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/system-requirements-driver-compatibility/

           

          Here its mentioned that the AMD APP SKD support ubuntu 11.04.

            • Re: Linux 290x OpenCL ?
              yurtesen

              Himanshu, lets be reasonable here. It has been over 1 year since Ubuntu 11.04 was EOLed!

              https://wiki.ubuntu.com/Releases

              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

              AMD Catalyst™ 13.11 LINUX Beta V6 Driver

               

              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.

                • Re: Linux 290x OpenCL ?
                  hugh

                  (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.

                    • Re: Linux 290x OpenCL ?
                      yurtesen

                      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

                        • Re: Linux 290x OpenCL ?
                          hugh

                          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.)

                            • Re: Linux 290x OpenCL ?
                              yurtesen

                              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.

                            • Re: Linux 290x OpenCL ?
                              tuck

                              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.

                                • Re: Linux 290x OpenCL ?
                                  gcc

                                  Hi tuck, I got this working 2 weeks ago with Ubuntu 13.10.  I used the instructions here:

                                  Ubuntu Saucy Installation Guide - cchtml.com

                                  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.

                                  • Re: Linux 290x OpenCL ?
                                    yurtesen

                                    I am using the following drivers and they work fine:

                                    http://support.amd.com/en-us/kb-articles/Pages/latest-linux-beta-driver.aspx

                                    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?

                              • Re: Linux 290x OpenCL ?
                                himanshu.gautam

                                Thanks for your feedback.

                                Immediately i willl report this to the concerned persons and get it  correct.

                              • Re: Linux 290x OpenCL ?
                                yurtesen

                                Also, if you go to download page

                                http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/

                                It shows supported OSes as "Linux® (openSUSE™ 11.*, Ubuntu® 10.0*, Red Hat® Enterprise Linux® 6.*)" (Notice Ubuntu 10!!!)

                                  • Re: Linux 290x OpenCL ?
                                    dukeleto

                                    Hi Yurtesen,

                                    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!

                                    Thanks,

                                     

                                    Olivier

                                      • Re: Linux 290x OpenCL ?
                                        yurtesen

                                        Hi Oliver,

                                         

                                        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)

                                         

                                        Thanks,

                                        Evren

                                          • Re: Linux 290x OpenCL ?
                                            himanshu.gautam

                                            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.

                                              • Re: Linux 290x OpenCL ?
                                                dukeleto

                                                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?

                                                 

                                                Cheers,

                                                 

                                                Olivier

                                                • Re: Linux 290x OpenCL ?
                                                  yurtesen

                                                  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.

                                                  • Re: Linux 290x OpenCL ?
                                                    bherren

                                                    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:

                                                     

                                                    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/opt/AMDAPP/lib/x86_64":"/opt/AMDAPP/lib/x86"

                                                    export LD_LIBRARY_PATH

                                                     

                                                    (among others)

                                                     

                                                    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/

                                                    total 37604

                                                    -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

                                                      • Re: Linux 290x OpenCL ?
                                                        bherren

                                                        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.

                                            • Re: Linux 290x OpenCL ?
                                              retrogradeorbit

                                              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

                                                • Re: Linux 290x OpenCL ?
                                                  pinform

                                                  Thanks, all, for your inputs.

                                                  I have reported this issue to the SDK development team.

                                                    • Re: Linux 290x OpenCL ?
                                                      aleshka

                                                      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 ]---

                                                      • Re: Linux 290x OpenCL ?
                                                        bherren

                                                        Thanks !

                                                         

                                                        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).

                                                         

                                                        Cheers,

                                                        Ben.

                                                      • Re: Linux 290x OpenCL ?
                                                        jgrevich

                                                        pinform retrogradeorbit Have there been any updates with this issue?  I am having the same problem with Ubuntu Saucy, Catalyst 13.2, and AMD-APP-SDK 2.9. Similar to yurtesen, aticonfig is functioning and can see the 290x. clinfo lists my 7990 and cpu but not the 290x.

                                                      • Re: Linux 290x OpenCL ?
                                                        jgrevich

                                                        @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).

                                                        • Re: Linux 290x OpenCL ?
                                                          jkop

                                                          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.

                                                          • Re: Linux 290x OpenCL ?
                                                            signork

                                                            the fault is of the script Install-AMD-APP.sh, in file default-install_lnx_64.pl there is a wrong path:

                                                            line 180:

                                                            $Cat_OCL_RT_files = '/usr/lib/libamdocl64.so';

                                                            change in;

                                                             

                                                            $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


                                                            Bye!