Bagaimana cara mengkonfigurasi igpu untuk xserver dan nvidia gpu untuk cuda?

12

Ubuntu 16.04

Output dari uname -a:

Linux HOST 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Kelas desktop:

  • CPU: Intel
  • GPU: Nvidia dengan 361.42

Apa yang saya inginkan:

  • GPU intel akan menjalankan xserver dan monitor saya, yang terhubung ke DP onboard
  • GPU nvidia hanya akan digunakan untuk perhitungan spesifik CUDA dll.
  • kontrol penuh atas nvidia gpu (waktu nyata, statistik, kecepatan kipas temps ...)

Masalahku:

  • tidak nvidia-smijuga nvidia-settingsberfungsi dan saya tidak dapat mengontrol GPU nvidia saya (kesalahan dikutip lebih jauh ke bawah)

Ceritaku:

Setelah ringkasan singkat masalah saya, saya ingin menyelami topik ini; Sejak rilis Ubuntu 16.04 saya bermain-main dan gagal mencapai yang berikut:

  • Saya ingin intel GPU saya (i7 6700K) untuk menggerakkan Xserver saya dan semuanya terkait dengannya.
  • Saya ingin GPU nvidia khusus saya hanya digunakan untuk perhitungan berbasis Cuda dan sejenisnya.
  • Saya akan menambahkan lebih dari satu GPU nvidia ke sistem, setelah masalah saya terpecahkan.

Ringkasan singkat tentang keadaan awal saya:

Saya menginstal Driver berpemilik untuk nvidia dan intel (intel-microcode dan nvidia-361.42) melalui apt-get dan menonaktifkan boot aman melalui mokutul --disable-validation.
Lalu saya mengatur nvidia-prime untuk menggunakan kartu intel.
Kemudian saya mengedit xorg.conf saya untuk memuat hanya satu layar dengan intel gpu dan driver intel. (tanyakan detailnya jika diperlukan)
Menguji GPU untuk rendering dengan Blender, semuanya tampak baik-baik saja, kecuali bahwa saya tidak bisa mendapatkan statistik gpu saya dan pengaturan nvidia tampak kosong.

Kesalahan:

sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.

Apa yang sejauh ini saya pelajari melalui semua percobaan dan penelitian saya sejak rilis (versi singkat, tanyakan detailnya kapan saja):

Dua Masalah saya saling terkait tetapi tidak sama:

Pengaturan Nvidia Kosong:

  • ini karena pengaturan ini hanya muncul, ketika ada Xserver terhubung ke GPU nvidia
  • solusi untuk ini adalah dengan menambahkan layar baru di xorg.conf yang memaksa dan xserver yang tidak digunakan untuk berjalan pada GPU nvidia
  • tapi ini saat ini tidak mungkin (lihat masalah lain) dan tidak diinginkan, karena saya ingin GPU nvidia fokus pada Cuda

Nvidia-smi tidak bekerja:

  • bbswitch bukan masalah karena GPU saya (550ti) tidak mendukungnya (kesalahan dalam dmesg)
  • nvidia prime mengubah entri untuk x86_64-linux-gnu_gl_conf menjadi /usr/lib/nvidia-361/ld.so.conf(nvidia GPU terpilih) atau /usr/lib/nvidia-361-prime/ld.so.conf(intel GPU terpilih)
  • konfigurasi untuk pemilihan intel tidak ada jalur penting ke modul nvidia esensial yang semuanya ada di conf untuk pemilihan nvidia
  • ketika beralih ke nvidia melalui prime-select, saya tidak memiliki Xserver karena Display terhubung ke GPU terintegrasi, tetapi masuk di konsol virtual nvidia-smi berfungsi

Asumsi saya:

  • Nvidia prime buruk dan tidak ingin seperti yang saya inginkan.
  • Saya harus entah bagaimana mengatasi prime dan mengkonfigurasi sistem (bahkan secara manual menulis konfigurasi baru?)

Mencoba Saya:

  • Saya mencoba mencopot pemasangan nvidia-prime tetapi saya baru tahu setelah itu, bahwa ini tidak bisa. Ketika file conf untuk x86_64-linux-gnu_gl_conf dihapus, hasilnya adalah kekacauan ...
  • Saya bahkan mencoba menambahkan path yang hilang ke file x86_64-linux-gnu_gl_conf secara manual, tetapi saya tidak benar-benar tahu apa yang saya lakukan dan tidak berhasil.

Pertanyaan saya:

1) Bagaimana saya bisa menyelesaikan masalah nvidia-smi? Apakah saya di jalur yang benar? Adakah yang punya instruksi bagaimana saya bisa melanjutkan?

2) Apakah mungkin untuk mengaktifkan kontrol kipas dan kontrol lebih lanjut untuk nvidia gpu (coolbits di xorg.conf) tanpa Xserver pada gpu (tanpa layar untuk gpu di xorg.conf)?

Terima kasih banyak sebelumnya atas balasan. Saya benar-benar menyisir web, sisir menjadi masalah saya.
Jika saya melewatkan sesuatu yang penting, tolong beritahu saya dan jangan ragu untuk meminta file log dll.

TERIMA KASIH

Gambar Gambar

tab driver tambahan saya: masukkan deskripsi gambar di sini

winnetou
sumber
Saya juga menciptakan sebuah pertanyaan launchpad: answers.launchpad.net/ubuntu/+question/294621
Winnetou
mungkin saya tidak menjelaskan proses instalasi saya dengan benar: setelah menginstal nvidia-driver via apt-get juga memeriksa Driver Tambahan, seperti yang Anda katakan dan driver yang benar sudah dipilih. saya menambahkan tangkapan layar. driver hadir dan jika saya beralih nvidia-prime ke Nvidia-Gpu semuanya berfungsi. mengubah pengaturan ini tidak dapat menginstal seluruh driver, sebenarnya itu adalah bagian dari driver dan bahkan tidak akan berfungsi tanpa ada
winnetou
itu adalah instalasi Ubuntu 16.04 bersih Pada setiap boot saya Perbarui dan Tingkatkan apt-get jadi saya kira saya telah menginstal pembaruan resmi terbaru
winnetou
Saya tahu, bahwa driver digunakan oleh sistem, karena saya dapat menggunakan CUDA pada GPU nvidia. Tetapi tidak semua modul nvidia dimuat saat boot, sehingga nvidia-smi misalnya melewatkan libs .... JIKA saya memahami masalah saya dengan benar
winnetou

Jawaban:

4

Jawaban yang diterima menggunakan server X untuk mengaktifkan perangkat Nvidia. Ini tidak perlu dan berarti bahwa server X akan menggunakan beberapa memori kartu.

Sebaliknya nvidia-modprobeharus dipasang seperti yang dijelaskan dalam FAQ driver (dapat ditemukan di tautan di bawah).

Jadi solusi yang saya sarankan adalah:

1) Instal driver Nvidia terbaru melalui runfile dari ftp://download.nvidia.com/XFree86/Linux-x86_64/ dengan tanda --no-opengl-filesdan --dkms.
2) Instal nvidia-modprobeversi yang sesuai melalui make alldan sudo make installdari ftp://download.nvidia.com/XFree86/nvidia-modprobe/

The --dkmsbendera memastikan bahwa modul kernel dikompilasi ulang ketika Anda meng-upgrade kernel Anda.

leezu
sumber
Ini berhasil untuk saya. Ini adalah jawaban yang paling sederhana dan harus menjadi jawaban yang diterima.
Marko Avlijaš
Solusi ini tidak berhasil untuk saya. Sebaliknya saya hanya menginstal driver secara normal dan menambahkan jalur nvidia ke LD_LIBRARY_PATH seperti yang disebutkan di bawah ini.
membalikkan
3

Saya (pembuat posting ini) menemukan solusi yang saya butuhkan sendiri!

Sekarang saya akan menjelaskan solusinya kepada siapa pun yang berada dalam situasi yang sama dan membutuhkan bantuan ini!

SOLUSI:
INSTAL NVIDIA DRIVER VIA THE RUNFILE YANG DISEDIAKAN DI http://www.nvidia.com/object/unix.html DENGAN BENDERA "--no-opengl-files" !!

Ini mencegah tidak hanya file nvidia opengl dari menimpa file mesa yang ada tetapi juga menginstal driver tanpa nvidia prime !!

Jadi semua masalah saya terpecahkan, cukup dengan menginstal driver secara manual, daripada menginstalnya dari repositori. Paket dari repositori adalah "Ramah-Optimus" dan karenanya semua pembuat masalah yang tidak berguna bergabung dengannya.

KEDUA

xorg.conf harus diperluas dengan layar lain untuk GPU khusus sehingga mereka / mereka memiliki / memiliki entri dalam pengaturan nvidia.

punyaku terlihat seperti ini

Section "ServerLayout"
    Identifier     "Layout0"
    Screen 0       "intel" 0 0
    Screen 1       "nvidia550ti" 3000 0
EndSection

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

Section "Device"
    Identifier     "nvidia550ti"
    Driver         "nvidia"
    BoardName      "GeForce GTX 550ti"
    BusID          "PCI:2@0:0:0"
EndSection

Section "Screen"
    Identifier     "intel"
    Device         "intel"
EndSection

Section "Screen"
    Identifier     "nvidia550ti"
    Device         "nvidia550ti"
    Option         "AllowEmptyInitialConfiguration" "on"
    Option         "Coolbits" "4"
    Option         "ConstrainCursor" "on"
EndSection
winnetou
sumber
1
Hai. Jawaban dari leezu lebih sederhana dan mungkin Anda harus menerimanya?
Marko Avlijaš
Saya belum dapat mengkonfirmasi jawaban leezu, meskipun terlihat sangat menjanjikan di mata saya. Jika ada lebih banyak orang yang melaporkan bahwa itu berfungsi, atau saya akhirnya bisa menguji jawabannya dan dapat mengonfirmasi, saya akan mengubah jawaban yang diterima. Dia memperbaiki masalah ini, bahwa nvidia-modprobe tidak berfungsi tanpa x-server berjalan pada kartu itu.
winnetou
Ini tidak berfungsi jika Anda menghapus semua driver nvidia yang ada dan mulai dari awal lagi. Mengatakan ini NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
AfzalivE
1

Saya memperoleh konfigurasi yang Anda inginkan (saya menginginkannya juga;)):

  • GPU intel akan menjalankan xserver dan monitor saya, yang terhubung ke DP onboard
  • GPU nvidia hanya akan digunakan untuk perhitungan spesifik CUDA dll.
  • kontrol penuh atas nvidia gpu (waktu nyata, statistik, kecepatan kipas temps ...)

dengan menggunakan bumblebee.

Tetapi sebelum saya masuk ke beberapa detail, saya harus memperingatkan Anda bahwa ketika mengubah konfigurasi nvidia-settings atau xorg.conf atau nvidia prime, Anda harus me-reboot sistem Anda (mungkin Anda sudah tahu). Tidak me-reboot bisa meninggalkan sistem dalam keadaan tidak konsisten.


Dalam konfigurasi saya, saya tidak menyentuh xorg.conf. Melakukan hal itu bagi saya selalu menjadi sumber rasa sakit. Silakan serahkan ke kondisi semula. Jika Anda tidak ingin melakukan instalasi baru, Anda dapat menemukan beberapa cadangan di /etc/X11/( ls /etc/X11/xorg.conf*).

Langkah pertama adalah berusaha membuat nvidia-settingspekerjaan. Jika Anda berhasil melakukannya, Anda dapat menggunakan nvidia PRIME untuk beralih ke intel GPU, seperti yang Anda sebutkan tadi. Memiliki nvidia prime point ke intel GPU diperlukan jika Anda ingin menggunakan NVIDIA GPU hanya untuk perhitungan CUDA (ini terutama diperlukan jika Anda ingin menggunakan cuda debugger cuda-gdb).

Setelah itu Anda dapat mencoba menginstal lebah :

sudo apt install bumblebee

Mulai ulang. Anda dapat memantau status lebah menggunakan

sudo service bumblebeed status

atau

bumblebeed -vv

Yang dilakukan lebah adalah mengaktifkan NVIDIA GPU dan mencoba memasukkan driver nvidia ke dalam kernel hanya jika diperlukan. Anda dapat menggunakan bumblebee dengan melakukan pendahuluan optirunke perintah yang ingin Anda jalankan.

Agar bumblebee berfungsi, saya harus mengedit secara manual /etc/bumblebee/bumblebee.confuntuk menetapkan nama dan jalur driver nvidia dengan benar.

[...]
Driver=nvidia
[...]
KernelDriver=nvidia_361
[...]
LibraryPath=/usr/lib/nvidia-361:/usr/lib32/nvidia-361

Kemudian, setelah sudo service bumblebeed restartsaya berhasil mengaktifkan sistem lebah.

Bahkan nvidia-smikembali

$ nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.

tapi optirun nvidia-smi:

$ optirun nvidia-smi
Fri Jun 17 11:47:48 2016       
+------------------------------------------------------+                       
| NVIDIA-SMI 361.42     Driver Version: 361.42         |                       
|-------------------------------+----------------------+----------------------+
| 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 970M    Off  | 0000:01:00.0     Off |                  N/A |
| N/A   53C    P1    18W /  N/A |     18MiB /  3071MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     20678    G   /usr/lib/xorg/Xorg                               4MiB |
+-----------------------------------------------------------------------------+

Semoga ini membantu.

Michele
sumber
jawaban yang bagus! TETAPI saya lelah Bumblebee dengan ubuntu 15.10 dan perangkat keras yang sama dan itu kacau. Begitu banyak, saya melakukan instalasi baru 16,04 setelah tersedia. Itu benar-benar lebih buruk. Bahkan Mode Pemulihan tidak bisa boot dengan benar .... Jadi saya bersumpah untuk tidak menggunakan lebah lagi. Masalah lain dengan lebah adalah (saya tidak tahu bagaimana Anda mengelak dari ini) adalah, bahwa gpu berdedikasi saya tidak mendukung bbswitch, jadi saya mendapat kesalahan, bahwa gpu tidak dapat dimatikan dengan benar
winnetou
Tapi, ini secara teori jawaban yang mungkin! Tapi bukan yang saya cari :(.
winnetou
TETAPI yang lain: (Saya tidak tahu lagi, jika ini berhasil saat saya coba) Apakah nvidia-settings menunjukkan kepada Anda GPU (sudo optirun nvidia-settings tentu saja)? Apakah Anda dapat mengontrol kecepatan kipas, tegangan, dll? Jika saya ingat dengan benar, pengaturan ini hanya mungkin dalam pengaturan nvidia, setelah Anda mengaktifkan coolbits di file xorg.conf. nvidia-smi hanya memberi Anda monitor ..... perbaiki jika saya salah
winnetou
Dan tanda tanya besar lainnya adalah: Apakah Bumblebee berfungsi dengan baik jika saya memiliki lebih dari satu GPU khusus? Usecase ini (igpu + gpu) sudah tidak disarankan untuk bumblebee pada GPU non-mobile, tetapi memiliki lebih dari satu d-gpu adalah kisah baru bagi bumblebee.
winnetou
@winnetou, Anda benar sepenuhnya tentang lebih dari satu GPU - ini adalah pertanyaan yang bagus. Masalah lain adalah bahwa nvidia-docker tidak berfungsi seperti yang diharapkan.
vskubriev
1

Saya menginstal ulang driver nvidia tanpa OpenGL seperti yang disebutkan dalam solusi di atas tetapi tidak bekerja untuk saya. Selain itu solusi ini cukup tidak memuaskan, karena mereka menyiratkan menghapus beberapa kemampuan driver (opengl).

Saya menemukan solusi yang lebih sederhana, di mana Anda tidak perlu menginstal ulang driver:

  • Saya menginstal driver nvidia secara normal
  • Dalam gui pengaturan-nvidia, hingga profil PRIME, saya memilih kartu grafis intel sebagai GPU utama
  • Setelah reboot, nvidia-smi tidak berfungsi, tapi saya memperbaikinya dengan menambahkan / usr / lib / nvidia-387 ke path libraries:
    export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH

Perhatikan bahwa tergantung pada driver yang diinstal, Anda mungkin perlu menambahkan folder lain di jalur perpustakaan Anda, misalnya / usr / lib / nvidia-384 .
Anda dapat menambahkan perintah ini ke file ~ / .bashrc untuk secara otomatis mengekspor path saat memuat bash baru.

membalikkan
sumber
Apa yang terjadi jika Anda meningkatkan driver nvidia? Apakah Anda harus mengubah jalur perpustakaan secara manual?
liang
Saya kira ini seharusnya tidak menjadi masalah jika driver masih di folder yang sama. Jika folder berubah, Anda mungkin harus mengubah jalur perpustakaan.
membalikkan
0

terutama sebagai pengingat bagi saya: di ubuntu 18.04 untuk menggunakan igpu untuk rendering dan nvidia gpu untuk cuda, instal driver nvidia default, buka nvidia-settings dan atur untuk menggunakan intel gpu. Setelah itu, driver nouveau daftar hitam dan bagian dari driver nvidia:

buka /etc/modprobe.d/blacklist-nvidia.conf dan baris komentar dengan cara ini:

#blacklist nvidia
blacklist nvidia-drm
#blacklist nvidia-modeset
#alias nvidia off
alias nvidia-drm off
#alias nvidia-modeset off

setelah itu buka /etc/modprobe.d/blacklist-nvidia-nouveau.conf dan tambahkan baris-baris itu:

blacklist nouveau
options nouveau modeset=0

untuk memastikan nouveau dinonaktifkan, Anda dapat memasukkannya dalam blacklist /etc/modprobe.d/blacklist.conf juga: pada akhirnya tambahkan:

#Blacklist nouveau drivers
blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

lalu reboot.

ketik nvidia-smiuntuk memeriksa nvidia dimuat, dan ketik lspci -nnk | grep -iA2 3Duntuk memeriksa driver yang digunakan adalah nvidia dan bukan nouveau.

pengguna840583
sumber