Banyak GPU di Linux - Cara menentukan GPU mana yang menjalankan X windows


12

Saya telah menjalankan Red Hat Enterprise Linux 6.1 pada sistem dengan GTX 480. Baru-baru ini saya menambahkan 3GB GTX 580, karena aplikasi CUDA saya membutuhkan lebih banyak memori daripada yang saya miliki di 480. Karena masalah ruang di dalam kotak, saya harus tempatkan 580 pada bus PCI-E yang terdekat dengan CPU, dan pindahkan 480 ke slot kedua.

Sekarang, ketika saya menjalankan RHEL, X windows berjalan pada 580. Saya ingin memiliki 480 run X windows sehingga 3GB penuh tersedia di 580. Saya hanya memiliki satu monitor yang hanya akan ditampilkan jika terhubung ke 580 ; tidak ada sinyal jika terhubung ke 480.

Saya telah menjelajahi beberapa opsi:

  1. Mengubah BIOS - sepertinya tidak ada cara untuk menentukan GPU utama pada BIOS saya

  2. Mengubah file xorg.conf. Saya berlari nvidia-xconfig -a. Ujung ekor xorg.conffile saya ditambahkan di bawah ini.

Saya berpikir bahwa saya hanya bisa menghapus salah satu bagian "Layar" dan menyuruh Screen0 menggunakan Device1 tetapi itu mencegah X windows dari berjalan.


Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 580" BusID "PCI:9:0:0" EndSection    
Section "Device" Identifier "Device1" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 480" BusID "PCI:7:0:0" EndSection
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
Section "Screen" Identifier "Screen1" Device "Device1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

Berikut adalah highlight yang dipilih dari xorg.0.log ketika X windows gagal memulai:

(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "Layout0"
(**) |-->Screen "Screen0" (0)
(**) |   |-->Monitor "Monitor0"
(**) |   |-->Device "Device1"
...
(--) PCI: (0:7:0:0) 10de:06c0:10de:075f nVidia Corporation GF100 [GeForce GTX 480] rev 163, Mem @ 0xf6000000/33554432, 0xc8000000/134217728, 0xd0000000/67108864, I/O @ 0x0000dc00/128, BIOS @ 0x????????/524288
(--) PCI:*(0:9:0:0) 10de:1080:19da:2203 nVidia Corporation GF110 [Geforce GTX 580] rev 161, Mem @ 0xfa000000/16777216, 0xd8000000/134217728, 0xd6000000/33554432, I/O @ 0x0000ec00/128, BIOS @ 0x????????/524288
...
(II) Module nvidia: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Video Driver
(II) NVIDIA dlloader X Driver  270.41.19  Mon May 16 23:33:35 PDT 2011
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
(II) Primary Device is: PCI 09@00:00:0
...
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(II) Sep 15 16:18:27 NVIDIA(0): NVIDIA GPU GeForce GTX 480 (GF100) at PCI:7:0:0 (GPU-0)
(--) Sep 15 16:18:27 NVIDIA(0): Memory: 1572864 kBytes
(--) Sep 15 16:18:27 NVIDIA(0): VideoBIOS: 70.00.21.00.02
(II) Sep 15 16:18:27 NVIDIA(0): Detected PCI Express Link width: 8X
(--) Sep 15 16:18:27 NVIDIA(0): Interlaced video modes are supported on this GPU
(--) Sep 15 16:18:27 NVIDIA(0): Connected display device(s) on GeForce GTX 480 at PCI:7:0:0
(--) Sep 15 16:18:27 NVIDIA(0):     none
(EE) Sep 15 16:18:27 NVIDIA(0): No display devices found for this X screen.
(II) UnloadModule: "nvidia"
(II) UnloadModule: "wfb"
(II) UnloadModule: "fb"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

Bisakah Anda juga memposting kesalahan yang muncul di Anda /var/log/Xorg.0.log, setelah Anda hanya meninggalkan satu Screendi Anda xorg.confdan X gagal berjalan?
aland

Tolong jangan posting silang pertanyaan.
nhinkle

@nhinkle: Oke - mengerti.
kues

@aland - baru saja memposting file xorg.0.log saya
kues

Jawaban:


1

Jika saya membaca konfigurasi Anda dengan benar, Anda tampaknya memiliki Device0 = 580 Anda di PCI 9: 0: 0 dan Device1 = 480 Anda di 7: 0: 0. Screen0 Anda adalah pasangan 580 Anda (Perangkat0) pada Monitor0 dan layar Anda1 pasangan 480 dan Monitor1 Anda.

Tetapi di sisi lain, log keluaran berpikir bahwa Layout0 adalah triplet screen0, monitor0 dan Device1, yang bukan yang Anda inginkan. Mungkinkah Anda perlu mendefinisikan Layout0 di konfigurasi Anda untuk menjadi triplet screen1, monitor1, device1? Mungkin bait ServerLayout?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.