การ์ด NVIDIA สำหรับการ์ด CUDA และ AMD สำหรับแสดงบน Ubuntu 16.04


12

ฉันใช้ Ubuntu 16.04 เนื่องจากเป็นระบบปฏิบัติการที่ฉันพบว่าสะดวกกว่าสำหรับการทำงานกับเครือข่ายประสาทเทียม (CNN) กระบวนการติดตั้ง Ubuntu นั้นใช้ได้จนกระทั่งฉันต้องการตั้งค่าการ์ดกราฟิกสองตัวในระบบเดียวกัน:

  • NVIDIA 970 GTX
  • AMD R9 380

ฉันต้องการใช้การ์ด NVIDIA สำหรับ CUDA เท่านั้นเพื่อให้สามารถใช้หน่วยความจำกราฟิกทั้งหมดและ AMD สำหรับส่วนต่อประสานกราฟิกผู้ใช้ ด้วยเหตุนี้จอภาพทั้งหมดจะถูกเสียบเข้ากับการ์ดนี้

ปัญหา:

  • เมื่อฉันติดตั้งไดรเวอร์ nvidia และ cuda 8.0 ดูเหมือนว่าตกลงทั้งหมด แต่เมื่อฉันติดตั้งไดรเวอร์ AMD ฉันไม่สามารถลงชื่อเข้าใช้ lightdm ได้
  • ถ้าฉันเสียบมอนิเตอร์บนการ์ด AMD มันบอกว่า lightdm ทำงานในโหมดกราฟิกต่ำและไม่มีอะไรทำงาน
  • แก้ไขไฟล์ xorg.conf ไม่ได้สร้างความแตกต่างใด ๆ เนื่องจากถูกเขียนทับโดย gpu-manager

ฉันไม่พบบทช่วยสอนที่อธิบายวิธีการดังกล่าว


โปรดตัดและวางส่วนคำตอบของโพสต์ลงในคำตอบแยกต่างหากด้านล่าง
edwinksl

ตกลงฉันทำอย่างนั้น ..
Marcus

คำตอบ:


11

ก่อนที่จะเริ่มฉันแนะนำให้ติดตั้ง ssh เพื่อให้สามารถปิดระบบจากระยะไกลหากมีสิ่งผิดปกติ โดยใช้คำสั่งนี้:

sudo apt-get install ssh

และเพื่อปิดระบบของคุณคุณจะต้อง ssh กับคอมพิวเตอร์หรืออุปกรณ์มือถืออื่นและใช้คำสั่งนี้:

sudo shutdown -r now

ขั้นตอนที่ 1

ก่อนอื่นคุณต้องถอดการ์ด AMD ออก, รักษาการ์ด NVIDIA ของคุณและติดตั้ง CUDA และไดรเวอร์ NVIDIA คุณสามารถดาวน์โหลด cuda ได้จากที่นี่: https://developer.nvidia.com/cuda-downloads

ตรวจสอบให้แน่ใจว่าทุกอย่างทำงานโดยใช้คำสั่งนี้:

nvidia-smi

ขั้นตอนที่ 2

ณ จุดนี้เราต้องแก้ไขด้วงเพื่อเริ่มในโหมดคอนโซลเนื่องจากเรากำลังยุ่งกับกราฟิกการ์ด

การใช้โปรแกรมแก้ไขที่คุณโปรดปราน (ในกรณีของฉันโจ) แก้ไขไฟล์การกำหนดค่าด้วงเริ่มต้น:

sudo joe /etc/default/grub

และเปลี่ยนบรรทัดเหล่านี้:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

กับคนเหล่านี้:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

ในที่สุดก็อัพเดตด้วงโดยใช้คำสั่งนี้:

sudo update-grub

ขั้นตอนที่ 3

ปิดระบบของคุณและลบการ์ด NVIDIA และปลั๊กอินการ์ด AMD เปิดคอมพิวเตอร์ของคุณและติดตั้งไดร์เวอร์กราฟิกล่าสุดของ AMD ในกรณีของฉันฉันติดตั้งไดรเวอร์โดยใช้คำสั่งเหล่านี้:

wget https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-16.40-348864.tar.xz
tar -Jxvf amdgpu-pro-16.40-348864.tar.xz
cd amdgpu-pro-16.40-348864/
./amdgpu-pro-install
sudo usermod -a -G video $USER

รีสตาร์ทคอมพิวเตอร์ของคุณ ตอนนี้คุณสามารถเริ่ม lightdm (ส่วนต่อประสานผู้ใช้) โดยใช้คำสั่งนี้:

sudo service lightdm start

ทุกอย่างทำงานได้ตามปกติและตอนนี้คุณสามารถตั้งค่าจอแสดงผลของคุณโดยใช้การตั้งค่าระบบ

ขั้นตอนที่ 4

ปิดระบบของคุณและเพิ่มการ์ด NVIDIA ของคุณและอย่าลบ AMD (ณ จุดนี้คุณจะมีการ์ดกราฟิกสองตัวในระบบของคุณ) เปิดคอมพิวเตอร์และเข้าสู่ระบบโดยใช้ชื่อผู้ใช้ของคุณ แต่อย่าเริ่ม LIGHTDM !!

ณ จุดนี้ gpu-manager ได้ตั้งค่าทั้งการ์ดกราฟิกสำหรับโหมดคอนโซลและเฉพาะ AMD สำหรับ lightdm (ตั้งแต่เราเริ่ม lightdm ในขั้นตอนก่อนหน้า) ถ้าเราเรียกใช้ lightdm ณ จุดนี้ gpu-manager จะทำให้เป็นระเบียบ ดังนั้นตอนนี้เราต้องปิดการใช้งาน gpu-manager อย่างสมบูรณ์ ด้วยเหตุนี้เราต้องแก้ไขด้วงอีกครั้ง:

sudo joe /etc/default/grub

และแทนที่บรรทัดเหล่านี้:

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

โดยคนเหล่านี้:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nogpumanager"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console

ในที่สุดก็อัพเดตด้วงโดยใช้คำสั่งนี้:

sudo update-grub

ขั้นตอนที่ 5

รีสตาร์ทระบบของคุณและหาก lightdm ไม่เริ่มต้นอย่างถูกต้อง (ปรากฏเป็นหน้าจอสีดำ) จากนั้นคุณต้องกด Ctrl + F1 เข้าสู่ระบบในโหมดคอนโซลและเพิ่มคำสั่งนี้ไปยังไฟล์ rc.local:

sudo joe /etc/rc.local

เพิ่มบรรทัดนี้ก่อน "exit 0":

service lightdm start

รีสตาร์ทระบบของคุณและทุกอย่างจะทำงานได้ทันที ...

ในคอนโซลคุณสามารถตรวจสอบได้ว่ามีการใช้งานกราฟิกการ์ดทั้งสองชุดโดยใช้คำสั่งนี้:

lspci -nnk | grep -i vga -A3 | grep 'in use'

Kernel driver in use: amdgpu
Kernel driver in use: nvidia

และ nvidia-smi ควรทำงานได้ดี แสดงว่าคุณใช้หน่วยความจำ 0 เมกะไบต์:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 970     Off  | 0000:02:00.0     Off |                  N/A |
| 30%   42C    P0    36W / 163W |      0MiB /  4036MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

ฉันพยายามทำให้มันใช้งานได้สองสามวัน เคอร์เนลตัวไหนที่คุณใช้บน Ubuntu 16.04
Aaron Skomra

คุณประสบความส
Szymon Roziewski

1
@ d84_n1nj4 ฉันไม่ได้ลองกับ Ubuntu 18.04 บางทีมันอาจจะทำงานได้โดยตรงโดยไม่ต้องทำตามขั้นตอนเหล่านี้ ... มันจะดีถ้าคุณสามารถแบ่งปันประสบการณ์ของคุณ
มาร์คัส

1
@Marcus ฉันจะทำอย่างนั้น ควรเริ่มต้น / เสร็จภายในวันจันทร์ ทันทีที่ Amazon จัดส่งจอภาพ 4K ที่จัดลำดับแล้วของฉัน> <
d84_n1nj4

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