Force Xorg to use CPU not GPU

12,483

This answer: Use integrated graphics for display and NVIDIA GPU for CUDA on Ubuntu 14.04 appears relevant for you.

In summary setting up /etc/X11/xorg.conf as follows:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Screen 1 "nvidia"
EndSection

Section "Device"
    Identifier "intel"
    Driver "intel"
    BusID "PCI:0@0:2:0"
    Option "AccelMethod" "SNA"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1@0:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

Read the entire post for more details.


Reply to comments

According Asus Canada specs:

Integrated Graphics Processor- Intel® HD Graphics support Multi-VGA output support : HDMI/DVI-D/RGB/DisplayPort ports - Supports HDMI with max. resolution 4096 x 2160 @ 24 Hz / 2560 x 1600 @ 60 Hz - Supports DVI-D with max. resolution 1920 x 1200 @ 60 Hz - Supports RGB with max. resolution 1920 x 1200 @ 60 Hz - Supports DisplayPort with max. resolution 4096 x 2304 @ 60 Hz Maximum shared memory of 512 MB Supports Intel® InTru™ 3D, Quick Sync Video, Clear Video HD Technology, Insider™ Supports up to 3 displays simultaneously DP 1.2 Multi-Stream Transport compliant, supports DP 1.2 monitor daisy chain up to 3 displays

I suggest temporarily taking out your two nVidia cards, plugging a monitor into the on-board HDMI port and booting with a Live USB to runs tests with Ubuntu.

It is important to know your CPU. Discover this using:

cat /proc/cpuinfo | grep 'model name'

and report back.

Share:
12,483

Related videos on Youtube

John Stanford
Author by

John Stanford

Updated on September 18, 2022

Comments

  • John Stanford
    John Stanford over 1 year

    If I'm using my GPU for CUDA computations and I want to use my CPU to manage the display, is there a way to get Xorg to use the CPU and the motherboard's HDMI slot instead of the GPU and its HDMI slot? Right now I'm maxing out the computational power of my GPU and Unity is really slow but my CPU is idling.

    • WooJoo
      WooJoo over 7 years
      you can let xrandr show you a list of outputs availible with xrandr --current if you then identify the HDMI output of your mainboard you could set that as primary if you use a APU with dedicated GPU you would need a switching method most likely try looking up hybrid solutions like bumblebee
    • Thomas
      Thomas over 7 years
      I think prime-select intel should do the trick. After that you have to logout/login.
    • ianorlin
      ianorlin over 7 years
      I do not think this is a laptop so not sure bumblebee is relevent is sounds like @john standford is describing a desktop. Does your cpu and motherboard support pcie passthrough to a vm and run unity on the host with the integrated.
    • John Stanford
      John Stanford over 7 years
      Correct, it's a desktop, so the prime-select idea didn't work. I tried it and I had to start back up in recovery mode to put it back how it was. I'm not sure if my motherboard supports PCIE passthrough to a VM, but it's an ASUS Z170 Sabretooth S.
    • David Parks
      David Parks almost 6 years
      I'm looking for an answer to this question as well. In my case this is a server where GPUs are dedicated to computation, graphics is irrelevant (only necessary for the console). I don't want the Xorg processes taking GPU memory, they should just run on the CPU.
    • Bernard Wei
      Bernard Wei almost 6 years
      In the old days when GPU are not that much supported, it is possible to setup Xorg to use framebuffer which is all CPU rendered. If you can remove all GPU drivers from Xorg and install only the framebuffer driver. That may be something to try.
    • David Parks
      David Parks almost 6 years
      I need the Nvidia GPU drivers installed. The server I have has 2x 1080 GPUs that we use for applications. Currently, Xorg is using ~1GB of memory on one of the two GPUs. There is no integrated graphics card on the server.
  • David Parks
    David Parks almost 6 years
    We're looking for CPU though, no graphics card, there is no integrated graphics card in my case. Unfortunately, the link isn't loading at the moment. I'll try looking later. The GPU in my case should be dedicated entirely to distributed scientific compute purposes.
  • WinEunuuchs2Unix
    WinEunuuchs2Unix almost 6 years
    Most CPUs have integrated GPUs. What CPU do you have?
  • WinEunuuchs2Unix
    WinEunuuchs2Unix almost 6 years
    Reading other comments I see you have a build it yourself motherboard and you can through a Skylake inside. I have an i7-6700HQ and the HD 530 graphics are so fast I leave the nVidia GTX 970M turned off.
  • David Parks
    David Parks almost 6 years
    This server doesn't have an integrated GPU (lspci | grep VGA only shows 2 Nvidia 1080's). It's a (typically) headless server that shouldn't have the ~1GB memory allocated for X windows (we do use the full 10GB of GPU memory for applications).
  • WinEunuuchs2Unix
    WinEunuuchs2Unix almost 6 years
    @DavidParks I did some more research and updated my answer. It's important to know your CPU model though.
  • JamShady
    JamShady over 5 years
    Doesn't work in my case. Session fails to start and I'm sent back to the login screen. Have an i7-7700k CPU, Ubuntu 16.04.
  • Stromael
    Stromael about 5 years
    A bit late but might help somebody. @levesque if you get stuck in the "Login Loop" you need to access the edited file to reset it. You can do this by circumventing the GUI of Ubuntu. At the Login screen hit Ctrl + Alt + F3. Then do sudo -i, followed by cd /etc/X11. Here you need to use a non-GUI editor, e.g., nano xorg.conf. From there you can reset the appropriate lines in the conf file. Then hit Ctrl+O to save it and Ctrl+X to exit Nano. Then do Ctrl+Alt+F7 to exit the terminal back to the Login screen. From here you need to reboot the computer. Now you should be able to login again. :)