cancel
Showing results for 
Search instead for 
Did you mean: 

OpenCL

settle
Challenger
Challenger

Discrete GPU enumerated, but not the integrated GPU

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?

0 Kudos
Reply
9 Replies
settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

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.

0 Kudos
Reply
tzachi_cohen
Staff
Staff

Re: Discrete GPU enumerated, but not the integrated GPU

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.


settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

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.

0 Kudos
Reply
tzachi_cohen
Staff
Staff

Re: Discrete GPU enumerated, but not the integrated GPU

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.

settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

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=...?

0 Kudos
Reply
settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

Also, what if you have 4x GPU in a desktop and want to dedicate two to display using crossfire and two to compute?

0 Kudos
Reply
settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

bump.

I still don't have a solution to getting both the igpu and dgpu working in OpenCL at the same time.  I'd also like to selectively choose more than one device as the DISPLAY and COMPUTE in a quad-gpu system, say :1.0 and :2.0 for DISPLAY, and :3.0 and :4.0 for COMPUTE.  Normally ':' is the delimiter for a list, but I doubt that would work in this case.

0 Kudos
Reply
nou
Exemplar
Exemplar

Re: Discrete GPU enumerated, but not the integrated GPU

COMPUTE=:0

0 Kudos
Reply
settle
Challenger
Challenger

Re: Discrete GPU enumerated, but not the integrated GPU

That uses all available devices for compute, but it still doesn't make both the igpu and dgpu show up in my notebook.

The second thing I want to know is how to use a subset (possibly more than one) of the devices for compute.  I don't think these would work but imagine something like

export DISPLAY=:0.0,:1.0

export COMPUTE=:2.0,:3.0

or

export DISPLAY=:0.0,:2.0

export COMPUTE=:1.0,:3.0

or

export DISPLAY=:0.0

export COMPUTE=:1.0,:2.0,:3.0

Does someone know how to do this correctly?

0 Kudos
Reply