9 Replies Latest reply on Mar 16, 2012 8:57 PM by settle

    Discrete GPU enumerated, but not the integrated GPU

    settle

      My notebook has an APU and discrete GPU.

      aticonfig --lsa

      * 0. 00:01.0 AMD Radeon HD 6620G

        1. 01:00.0 AMD Radeon 6600M and 6700M Series

       

      aticonfig --pxl

      PowerXpress: Discrete GPU is active (High-Performance mode).

       

      aticonfig --lscc

      Master adapter:  0. 00:01.0 AMD Radeon HD 6620G

          Candidates:  none

      Master adapter:  1. 01:00.0 AMD Radeon 6600M and 6700M Series

          Candidates:  none

       

      aticonfig --lscs

          Candidate Combination:

          Master: 0:0:0

          Slave: 0:0:0

          CrossFire is disabled on current device

          CrossFire Diagnostics:

          CrossFire can work with P2P mapping through GART

          Candidate Combination:

          Master: 0:0:0

          Slave: 0:0:0

          CrossFire is disabled on current device

          CrossFire Diagnostics:

          CrossFire can work with P2P mapping through GART

      However, when I run clinfo I get only one two devices: one GPU (the discrete GPU) and one CPU.

       

      I tried configuring the xorg.conf using aticonfig --initial --adapter=all, but still no luck.

      Section "ServerLayout"

          Identifier     "aticonfig Layout"

          Screen      0  "aticonfig-Screen[0]-0" 0 0

          Screen         "aticonfig-Screen[1]-0" RightOf "aticonfig-Screen[0]-0"

      EndSection

       

      Section "Monitor"

          Identifier   "aticonfig-Monitor[0]-0"

          Option        "VendorName" "ATI Proprietary Driver"

          Option        "ModelName" "Generic Autodetecting Monitor"

          Option        "DPMS" "true"

      EndSection

       

      Section "Monitor"

          Identifier   "aticonfig-Monitor[1]-0"

          Option        "VendorName" "ATI Proprietary Driver"

          Option        "ModelName" "Generic Autodetecting Monitor"

          Option        "DPMS" "true"

      EndSection

       

      Section "Device"

          Identifier  "aticonfig-Device[0]-0"

          Driver      "fglrx"

          BusID       "PCI:0:1:0"

      EndSection

       

      Section "Device"

          Identifier  "aticonfig-Device[1]-0"

          Driver      "fglrx"

          BusID       "PCI:1:0:0"

      EndSection

       

      Section "Screen"

          Identifier "aticonfig-Screen[0]-0"

          Device     "aticonfig-Device[0]-0"

          Monitor    "aticonfig-Monitor[0]-0"

          DefaultDepth     24

          SubSection "Display"

              Viewport   0 0

              Depth     24

          EndSubSection

      EndSection

       

      Section "Screen"

          Identifier "aticonfig-Screen[1]-0"

          Device     "aticonfig-Device[1]-0"

          Monitor    "aticonfig-Monitor[1]-0"

          DefaultDepth     24

          SubSection "Display"

              Viewport   0 0

              Depth     24

          EndSubSection

      EndSection

      Could someone point me in the right direction?

        • Re: Discrete GPU enumerated, but not the integrated GPU
          settle

          I just tried to switch to the integrated GPU:

          sudo aticonfig --px-igpu

          PowerXpress: Integrated GPU is selected (Power-Saving mode), please restart Xserver(s) for changes to take effect!

           

          aticonfig --pxl

          PowerXpress: Integrated GPU is active (Power-Saving mode).

          I rebooted, but it was still showing the discrete GPU:

          aticonfig --pxl

          PowerXpress: Discrete GPU is active (High-Performance mode).

          I tried one more time to switch to the integrated GPU, and rebooted.  This time it did indeed switch to the integrated GPU.  However, now the integrated GPU shows up in clinfo, but not the discrete GPU.

           

          EDIT: Before the second reboot I forgot that I also commented out the line containing "Screen ... RightOf ..." in my xorg.conf.

            • Re: Discrete GPU enumerated, but not the integrated GPU
              tzachi.cohen

              For Power Express to take affect you must specify only one screen in xorg.conf.

               

              Call : sudo aticonfig --initial

               

              And restart the X-sever, after this aticonfig --px-igpu/--px-dgpu should be fully functional.

               


              1 of 1 people found this helpful
                • Re: Discrete GPU enumerated, but not the integrated GPU
                  settle

                  Thanks for the tip, I can now switch between igpu and dgpu.

                   

                  Is there anyway to use both the igpu and dgpu at the same time (not necessarily crossfire)?  I would like to dedicate one to display and one to compute.

                    • Re: Discrete GPU enumerated, but not the integrated GPU
                      tzachi.cohen

                      Yes, you can use both GPUs at the same time. Set back your initial configuration (aticonfig --initial --adapter=all).

                      For OCL processes set the environment varable COMPUTE with the name of the X-display associated with the GPU you wish to use. (usually COMPUTE=:0.1 or COMPUTE=:0.0) .

                      The OCL program will only be exposed to the GPU defined by the COMPUTE environement variable.

                      1 of 1 people found this helpful
                        • Re: Discrete GPU enumerated, but not the integrated GPU
                          settle

                          I couldn't get it work as I hoped.  I made a bash script and put it in /etc/profile.d/amd-app.sh containing:

                          export DISPLAY=:0.0

                          export COMPUTE=:0.1

                          and then used the xorg.conf generated from aticonfig --initial --adapter=all.  This booted but my screen was extended onto some ficticous screen (I only have my notebook's monitor) with all the menus on the other screen?  I tried to modify the xorg.conf to use LeftOf instead of RightOf, but got the same problem, just different direction.  I tried modifying the xorg.conf to

                          ...

                          Screen 0 "aticonfig-Screen[0]-0" 0 0

                          Screen 1 "aticonfig-Screen[1]-0" 0 0

                          ...

                          and to

                          ...

                          Screen 0 "aticonfig-Screen[0]-0" 0 0

                          Screen 0 "aticonfig-Screen[1]-0" 0 0

                          ...

                          and to

                          Screen 0 "aticonfig-Screen[0]-0" 0 0

                          Screen   "aticonfig-Screen[1]-0" 0 0

                          but then the system wouldn't boot to login.  I tried, in all three above cases, switching the DISPLAY and COMPUTE numbers, and then also using DISPLAY=:0 and COMPUTE=:0, but none of these combinations worked.  Am I still doing something wrong?

                           

                          I'm also wondering if say you have 3x GPUs in a desktop if you can dedicate one to display and two to compute using COMPUTE=...?