3 Replies Latest reply on Sep 27, 2016 10:05 AM by volumetricsteve

    Relationship between various linux drivers?

    volumetricsteve

      I'm troubleshooting some video-output weirdness on my workstation where I get video output right up until it appears to load the video driver, at which point the screen goes black.  I'm trying to determine which driver I should try to use.  So far I've found the Catalyst driver, AMDGPU, and something called AMDGPU Pro.

       

      My use-case is that I primarily want to use my nano as an OpenCL chip, I don't care at all about gaming performance - however it would be nice if I could work with OpenGL/Vulkan.

       

      Is there one driver I should choose for software development over another?  I did notice in the AMD APP SDK documentation that it lists off Catalyst by name, but I've also read that AMDGPU Pro should provide OpenCL/GL/Vulkan as well.

       

      Back story:

      I just got an R9 Nano for opencl work on a linux x64 workstation.  I'm having a little trouble getting it to display even at the console.  I use Crux linux, and I manually invoke X with startx.  As it stands, I can see the normal bios stuff, lilo points to my kernel and starts booting, then maybe 1/3rd of the way through the dmesg kernel output, it looks like it tries to load a driver but it either fails or does some weird thing my tv can't interpret.

       

      The guys at the Crux IRC suggested that I recompile my kernel with AMDGPU support set to modular, and then run make modules_install and make firmware_install - these things all appeared to work and execute correctly, but the original problem remains.

        • Re: Relationship between various linux drivers?
          volumetricsteve

          I did some more digging on the Catalyst driver : http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64

           

          I'm surprised it claims to only support up to kernel 3.19 when 4.7.5 is out....I have other concerns about this driver as well, but it does seem to perform well in some benchmarks.

           

          I also found: http://support.amd.com/en-us/kb-articles/Pages/AMD-Radeon-GPU-PRO-Linux-Beta-Driver%E2%80%93Release-Notes.aspx

           

          Curiously, I can't find a similar page for 'AMDGPU', but for whatever AMDGPU-PRO is, it appears to be beta and only supports OpenCL 1.2.  The other issue is, I only see Ubuntu packages there...I'm used to this, but it's worrying there isn't a distro-agnostic download.

           

          Are AMDGPU and AMDGPU PRO the same thing?

            • Re: Relationship between various linux drivers?
              bridgman

              OK, let's see...

               

              There are two amdgpu stacks, using different versions of a common kernel driver and libdrm (the "amdgpu" kernel driver). The ALL-OPEN stack uses all upstream components while the AMDGPU-PRO stack uses a tested-as-a-set mix of closed- and open-source components including closed-source OpenCL, OpenGL and Vulkan. Since the all-open version of amdgpu is upstream-centric we release individual components rather than a coordinated stack. We may change this in the future though, leveraging the packaging tools we are building for amdgpu-pro to provide matched sets of components taken from upstream.

               

              We are in the process of replacing Linux Catalyst with amdgpu-pro, so the Linux Catalyst updates have been limited to bug fix releases for use with enterprise distros with their relatively old kernels (still a lot of 2.6 kernels out there). We do not package either amdgpu-pro or Linux Catalyst for Crux, but I suspect you would have an easier time working with the amdgpu-pro packages. The latest amdgpu-pro release (16.30) targets the 4.4 kernel used in Ubuntu - not sure which kernel version you are using.

               

              Once the transition from Linux Catalyst to amdgpu-pro is complete we plan to start releasing the drivers in raw file sets as well, making it easier for distro packagers to generate package sets in whatever format is required... in the meantime you'll need to pick apart the .deb's.

               

              A related point is that we are working on open source versions of the OpenCL and Vulkan drivers so over time the -pro stack will end up being primarily used for traditional graphics workstation scenarios and the all-open stack for everything else. In the meantime, however, the -pro stack is useful in some gaming cases since game developers/porters have historically targetted the Linux Catalyst OpenGL driver rather than mesa. Now that we have largely caught up in terms of GL support (4.3) and performance I think we will see more game devs/porters targetting the Mesa OpenGL rather than the closed source driver.

              2 of 2 people found this helpful
                • Re: Relationship between various linux drivers?
                  volumetricsteve

                  Super...super...super awesome.  Thank you for all that.

                   

                  A few points:

                   

                  "There are two amdgpu stacks, using different versions of a common kernel driver and libdrm (the "amdgpu" kernel driver). The ALL-OPEN stack uses all upstream components while the AMDGPU-PRO stack uses a tested-as-a-set mix of closed- and open-source components including closed-source OpenCL, OpenGL and Vulkan."

                   

                  I'm not familiar with libdrm, so I'm not positive what differences that brings about between the stacks.  I hear you on upstream vs tested-as-a-set, though.  It sounds like AMDGPU-PRO is likely to be more reliable, but it only supports OpenCL 1.2 so far, is there a timeline on when that will be updated to meet the 2.0 spec?

                   

                  "We are in the process of replacing Linux Catalyst with amdgpu-pro, so the Linux Catalyst updates have been limited to bug fix releases for use with enterprise distros with their relatively old kernels (still a lot of 2.6 kernels out there)."

                   

                  Yay and/or hazzah.  Also kinda freaky to hear how many 2.6s are still out there.

                   

                  "We do not package either amdgpu-pro or Linux Catalyst for Crux"

                   

                  That's cool, I can't think of anyone that does outside of the crux community.  We're a blip on the distro radar.

                   

                  "but I suspect you would have an easier time working with the amdgpu-pro packages. The latest amdgpu-pro release (16.30) targets the 4.4 kernel used in Ubuntu - not sure which kernel version you are using."

                   

                  I'm using 4.7.5 at the moment, but I could easily roll back to 4.4.  My whole goal is to run the R9 Nano's compute capability as efficiently as possible, so whatever that needs, it gets.

                   

                  "Once the transition from Linux Catalyst to amdgpu-pro is complete we plan to start releasing the drivers in raw file sets as well, making it easier for distro packagers to generate package sets in whatever format is required... in the meantime you'll need to pick apart the .deb's."

                   

                  Perfectly understandable, is there a timeline/ETA on this?

                   

                  "A related point is that we are working on open source versions of the OpenCL and Vulkan drivers so over time the -pro stack will end up being primarily used for traditional graphics workstation scenarios and the all-open stack for everything else."

                   

                  You lost me here a bit, I'm not sure what you mean by traditional graphics workstation vs everything else.  Can you elaborate?

                   

                  "In the meantime, however, the -pro stack is useful in some gaming cases since game developers/porters have historically targetted the Linux Catalyst OpenGL driver rather than mesa. Now that we have largely caught up in terms of GL support (4.3) and performance I think we will see more game devs/porters targetting the Mesa OpenGL rather than the closed source driver." 

                   

                  This is all good to know, but I suspect the most graphically needy game I'll ever fire up on my research rig is quake 3 arena, which I'm sure will run just fine

                   

                  At the end of the day though, per the instructions given by the AMD APP SDK, it says you need Catalyst but it also doesn't acknowledge the existence of the other drivers.  So are you suggesting I should use AMDGPU-PRO instead?