Nhiều GPU trong Linux - Cách chỉ định GPU nào chạy X windows


12

Tôi đã chạy Red Hat Enterprise Linux 6.1 trên hệ thống có GTX 480. Gần đây tôi đã thêm 3 GB GTX 580, vì ứng dụng CUDA của tôi cần nhiều bộ nhớ hơn so với 480. Do vấn đề về không gian trong hộp, tôi đã phải đặt 580 trên bus PCI-E gần CPU nhất và di chuyển 480 sang khe thứ hai.

Bây giờ, khi tôi chạy RHEL, các cửa sổ X đang chạy trên 580. Tôi muốn có các cửa sổ X chạy 480 vì vậy 3 GB đầy đủ có sẵn trên 580. Tôi chỉ có một màn hình sẽ chỉ hiển thị nếu được kết nối với 580 ; không có tín hiệu nếu được kết nối với 480.

Tôi đã khám phá một vài lựa chọn:

  1. Thay đổi BIOS - dường như không có cách nào để chỉ định GPU chính trên BIOS của tôi

  2. Thay đổi tệp xorg.conf. Tôi chạy nvidia-xconfig -a. Phần đuôi của xorg.conftập tin của tôi được thêm vào bên dưới.

Tôi nghĩ rằng tôi chỉ có thể xóa một trong các phần "Màn hình" và có Screen0 sử dụng Device1 nhưng điều đó ngăn các cửa sổ X chạy.


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

Dưới đây là các điểm nổi bật được chọn từ xorg.0.log khi cửa sổ X không khởi động:

(==) 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

Bạn có thể xin lỗi cũng đăng các lỗi xuất hiện trong bạn không /var/log/Xorg.0.log, sau khi bạn chỉ để lại một lỗi Screentrong xorg.confX và không chạy được?
aland

Xin đừng hỏi chéo bài.
nhíp

@nhinkle: Ok - hiểu rồi
kues

@aland - vừa đăng tệp xorg.0.log của tôi
kues

Câu trả lời:


1

Nếu tôi đọc cấu hình của bạn một cách chính xác, bạn dường như có Device0 = 580 của bạn ở PCI 9: 0: 0 và Device1 = 480 của bạn tại 7: 0: 0. Screen0 của bạn là cặp của 580 (Device0) trên Monitor0 và screen1 của bạn là cặp 480 và Monitor1 của bạn.

Nhưng mặt khác, nhật ký đầu ra cho rằng Layout0 là bộ ba màn hình0, màn hình0 và Device1, đây không phải là điều bạn muốn. Có thể chỉ đơn giản là bạn cần xác định Layout0 trong cấu hình của mình để trở thành bộ ba màn hình1, màn hình1, thiết bị1? Có lẽ một khổ ServerLayout?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.