How can I modify xorg.conf file to force X server to run on a specific GPU? (I am using multiple GPUs)
cuda, gpu, nvidia, xserver
Solution
If you have 2 NVIDIA GPUs, get the BusID parameters for both. The doc you linked explains a couple ways to do that, but `nvidia-smi -a` is pretty easy.
You will need to figure out which GPU you want to keep for display, and which you want to keep for CUDA. Again, this should be pretty obvious from `nvidia-smi -a`
Let's suppose your `nvidia-smi -a` includes a section like this:
PCI
Bus : 0x02
Device : 0x00
Domain : 0x0000
Device Id : 0x06D910DE
Bus Id : 0000:02:00.0
Then modify the device section like this:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:2:0:0"
EndSection
Then reboot. Make sure the one you are keeping for display is the one with the display cable attached!
You may also be interested in reading the nvidia driver readme and search on "BusID" for additional tips.
The document you linked references a "Display" section but that should be the "Device" section.
Problem
I'm running 2 GPUs and I'm trying to force X server to run on one GPU. According to this website : http://nvidia.custhelp.com/app/answers/detail/a_id/3029/~/using-cuda-and-x , here is how i should proceed : The X display should be forced onto a single GPU using the BusID parameter in the relevant "Display" section of the xorg.conf file. In addition, any other "Display" sections should be deleted. For example: BusID "PCI:34:0:0" Here is my xorg.conf file : ``` # nvidia-xconfig: X configuration file generated by nvidia-xconfig # nvidia-xconfig: version 304.64 (buildmeister@swio-display-x86-rhel47-12) Tue Oct 30 12:04:46 PDT 2012 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "Unknown" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection ``` So I tried to modify the subsection display with the correct BusID but it still does not work, I also tried to put it in the section Device. Anyone knows how i could do that ?