กำหนดค่า Xorg ให้ทำงานจาก GPU ในตัว


11

ฉันใช้ Ubuntu 14.04LTS กับ Intel CPU + กราฟิกรวมกับ GTX650 GPU ฉันถามคำถามนี้เกี่ยวกับ SO แต่พวกเขาบอกว่ามันไม่น่าสนใจ

ฉันต้องการใช้ GPU ของฉันในการดีบักรหัส CUDA และเพื่อที่ฉันจะต้องเปลี่ยนการแสดงผลเป็นแบบรวมเท่านั้น นี่เป็นข้อผิดพลาดที่ฉันได้รับเมื่อฉันพยายามแก้ไขข้อบกพร่องในขณะนี้:

"All cuda devices are used for display and cannot be used while debugging"

ฉันเข้าไปใน BIOS และเปลี่ยนการแสดงผลหลักเป็น iGPU (อินทิเกรตหนึ่ง HD4600) ไม่มีอะไรออกมาจากพอร์ต GPU อีกต่อไป (ในแง่ของการแสดงผล) และฉันเสียบจอมอนิเตอร์ของฉันเข้ากับเมนบอร์ด ใช้จอภาพเพียงจอเดียวเท่านั้น ปกติฉันมีพวกเขาชอบ:

|[Monitor 1, VGA]| |[Monitor 2, DVI]|

ในการกำหนดค่านั้นด้วย iGPU ไม่มีสิ่งใดปรากฏบนจอภาพ 1 (เป็นสีดำ แต่คอมพิวเตอร์รู้ว่ามีอยู่ - ไฟสีเขียวเปิดอยู่และหน้าต่างทั้งหมดของฉันเปิดอยู่) วิธีเดียวที่จะทำให้มันใช้งานได้คือการสลับมอนิเตอร์ 2 เป็น VGA และจอภาพ 1 เป็น DVI

ถ้าฉันเข้าlspci | grep VGAสู่ Terminal ฉันจะได้รับสิ่งนี้:

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)

วิ่งxrandrให้ฉัน:

Screen 0: minimum 8 x 8, current 3360 x 1050, maximum 16384 x 16384
DVI-D-0 disconnected primary (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
VGA1 connected 1680x1050+0+0 474mm x 296mm
   1680x1050      60.0*+
   1600x1000      60.0 +
   1280x1024      75.0     72.0     60.0  
   1440x900       75.0     59.9  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   800x600        72.2     75.0     60.3  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
DP1 disconnected
HDMI1 disconnected
HDMI2 connected 1680x1050+1680+0 474mm x 296mm
   1680x1050      60.0*+
   1600x1000      60.0 +
   1280x1024      75.0     72.0     60.0  
   1440x900       75.0     59.9  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   800x600        72.2     75.0     60.3  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI3 disconnected
VIRTUAL1 disconnected

มันไม่ใช่การเชื่อมต่อ HDMI ฉันไม่รู้ว่าทำไมมันถึงคิดว่ามันเป็น ด้วย GPU มันรู้ว่าเป็น DVI อย่างไรก็ตาม...

นี่คือxorg.conf(ถ้าฉันเปลี่ยนมันก็แค่เขียนทับมัน):

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
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

นี่คือ10-monitors.confไฟล์ของฉันใน/usr/share/X11/xorg.conf.d/:

  GNU nano 2.2.6                                      File: /usr/share/X11/xorg.conf.d/10-monitors.conf                                                                                   

Section "Monitor"
    Identifier     "VGA1"
EndSection

Section "Monitor"
    Identifier     "HDMI2"
EndSection

Section "Device"
   Identifier      "intel0"
   Driver          "intel"
   BusID           "PCI:0@0:2:0"
EndSection

Section "Device"
   Identifier      "intel1"
   Driver          "intel"
   BusID           "PCI:0@0:2:0"
EndSection

Section "Screen"
   Identifier     "Screen0"
   Device         "intel0"
   Monitor        "VGA1"
   DefaultDepth   24
   SubSection     "Display"
      Depth       24
      Modes       "1680x1050" "1920x1080"
   EndSubSection
EndSection

Section "Screen"
   Identifier     "Screen1"
   Device         "intel1"
   Monitor        "HDMI2"
   DefaultDepth   24
   SubSection     "Display"
      Depth       24
      Modes       "1680x1050" "1920x1080"
   EndSubSection
EndSection

สิ่งนี้ยังคงไม่อนุญาตให้รหัส CUDA ของฉันถูกดีบั๊ก ถ้าฉันใช้ lsof / dev / nvidia * ฉันจะได้รับ:

COMMAND  PID     USER   FD   TYPE  DEVICE SIZE/OFF  NODE NAME
compiz  1659 cinnamon  mem    CHR 195,255          11805 /dev/nvidiactl
compiz  1659 cinnamon  mem    CHR   195,0          11806 /dev/nvidia0
compiz  1659 cinnamon   11u   CHR 195,255      0t0 11805 /dev/nvidiactl
compiz  1659 cinnamon   12u   CHR   195,0      0t0 11806 /dev/nvidia0
compiz  1659 cinnamon   13u   CHR   195,0      0t0 11806 /dev/nvidia0
compiz  1659 cinnamon   14u   CHR   195,0      0t0 11806 /dev/nvidia0

ดังนั้นฉันจึงเดาว่า Compiz (เซิร์ฟเวอร์ X) กำลังใช้งานอยู่ ฉันจะหยุดการใช้งานได้อย่างไร?


1
ฉันคิดว่าคุณกำลังใช้ไดรเวอร์ NVIDIA ที่เป็นกรรมสิทธิ์อยู่ใช่ไหม บางทีการลองใช้เวอร์ชั่นอื่นอาจช่วยได้ (ลอง 384,387?) นอกจากนี้คุณกำลังพัฒนาด้วย CUDA อะไร ฉันยังไม่ได้ลอง 14.04 แต่ฉันใช้ CUDA8.0.61 เมื่อ 17.04 ด้วย 970M nvidia-384 (ไม่มี iGPU ที่นี่)
Robobenklein

1
ยังดีที่จะตรวจสอบจะเป็นไดรเวอร์ Intel xserver ฉันจะลองด้วยจำนวนจอภาพน้อยที่สุดที่เสียบอยู่และให้แน่ใจว่าตัวควบคุม nvidia ไม่ได้ถูกเปิดใช้งานด้วย Xserver (ดูยูทิลิตี้ Nvidia GUI ในขณะที่ X กำลังทำงานและดูสิ่งที่แสดงอยู่) นอกจากนี้การตรวจสอบที่คุ้มค่าคือnvidia-debugdump -l -v -zการดูว่าระบบของคุณจดจำการ์ดของคุณอย่างไร
Robobenklein

คำตอบ:


0

ฉันประสบความสำเร็จในการติดตั้งจอภาพสองตัวโดยหนึ่งตัวเชื่อมต่อกับ ATI GPU เฉพาะของฉันและอีกอันหนึ่งเชื่อมต่อกับ i7-2600K iGPU

เพื่อที่จะทำเช่นนั้นฉันวิ่ง

xrandr --setprovideroutputsource 1 0

มันเคยใช้งานได้อย่างไม่มีที่ติ แต่ก็ยังถือว่าเป็นการทดลองและมีการอัพเกรดเคอร์เนลหลายครั้งตั้งแต่นั้นมา YMMV

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.