Nasıl xserver için igpu ve cuda için nvidia gpu yapılandırmak için?


13

Ubuntu 16.04

Çıktı 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

Masaüstü sınıfı:

  • CPU: Intel
  • Grafik işlemcisi: 361.42 ile Nvidia

İstediğim:

  • intel GPU, dahili DP'ye bağlı olan xserver ve monitörümü çalıştıracaktır
  • nvidia GPU yalnızca CUDA'ya özgü hesaplama vb. için kullanılacaktır.
  • nvidia gpu üzerinde tam kontrol (gerçek zamanlı, istatistikler, temps fan hızları ...)

Benim sorunum:

  • ne nvidia-smine ne de nvidia-settingsçalışır ve nvidia GPU'mu kontrol edemiyorum (hatalar daha aşağıda belirtiliyor)

Benim hikayem:

Sorunumun kısa özetinden sonra konuya dalmak istiyorum; Ubuntu 16.04'ün piyasaya sürülmesinden bu yana aşağıdakileri yapıyorum ve başaramıyorum:

  • Intel GPU'mun (i7 6700K) Xserver'ımı ve onunla ilgili her şeyi sürmesini istiyorum.
  • Özel nvidia GPU'mun sadece Cuda tabanlı hesaplama ve benzerleri için kullanılmasını istiyorum.
  • Sorunlarımı çözdükten sonra sisteme birden fazla nvidia GPU ekleyeceğim.

İlk durumumun kısa bir özeti:

Nvidia ve intel (intel-microcode ve nvidia-361.42) için özel Sürücüler'i apt-get yoluyla yükledim ve mokutul - disisable-validation ile güvenli önyüklemeyi devre dışı bıraktım.
Sonra nvidia-prime'ı intel kartı kullanacak şekilde ayarladım.
Sonra xorg.conf dosyamı intel gpu ve intel driver ile sadece bir ekran içerecek şekilde düzenledim. (gerekirse ayrıntılar isteyin)
GPU'yu Blender ile işlemek için test ettiğimde, gpu ve nvidia ayarlarımın istatistiklerini alamadım dışında her şey iyi görünüyordu.

Hatalar:

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.

Şimdiye kadar yayınladığımdan bu yana tüm denemelerim ve araştırmalarımdan öğrendiklerim (kısa versiyon, her zaman ayrıntı isteyin):

İki Sorunum ilgili ama aynı değil:

Nvidia ayarları Boş:

  • Bunun nedeni, bu ayarların yalnızca nvidia GPU'ya bağlı bir Xserver olduğunda görünmesidir
  • bunun çözümü xorg.conf içinde nvidia GPU üzerinde çalışmaya ve kullanılmayan xserver'a yeni bir ekran eklemek olacaktır
  • ama bu şu anda mümkün değil (diğer soruna bakın) ve arzu edilmiyor, çünkü tamamen nvidia GPU'nun Cuda'ya odaklanmasını istiyorum

Nvidia-smi çalışmıyor:

  • GPU'm (550ti) desteklemediğinden bbswitch bir sorun değil (dmesg hataları)
  • nvidia prime, x86_64-linux-gnu_gl_conf girdisini /usr/lib/nvidia-361/ld.so.conf(nvidia GPU seçildi) veya /usr/lib/nvidia-361-prime/ld.so.conf(intel GPU seçildi) olarak değiştirir
  • intel seçimi konfigürasyonunda, hepsi nvidia seçimi için konfendeki mevcut nvidia modüllerine giden gerekli yollar eksik
  • prime-select yoluyla nvidia'ya geçiş yaparken, Ekran entegre GPU'ya bağlı olduğu için bir Xserver'im yok, ancak sanal bir konsolda oturum açıyor nvidia-smi çalışıyor

Benim Varsayım:

  • Nvidia üssü kötü ve istediğim gibi istemiyor.
  • Bir şekilde asal aşmak ve sistemi yapılandırmak zorunda (hatta elle yeni yapılandırmalar yazma?)

Denemelerim:

  • Nvidia-prime'ı kaldırmayı denedim, ancak daha sonra bunun işe yaramayacağını fark ettim. X86_64-linux-gnu_gl_conf için conf dosyası silindiğinde, sonuç saf bir karmaşa ...
  • Hatta x86_64-linux-gnu_gl_conf dosyalarına eksik yolları elle eklemeyi denedim, ama ne yaptığımı bilmiyordum ve başarı elde edemedim.

Sorularım:

1) Nvidia-smi problemini nasıl çözebilirim? Ben doğru yolda mıyım? Nasıl ilerleyebileceğim konusunda birileri var mı?

2) gpu üzerinde bir Xserver olmadan (xorg.conf'da gpu için bir ekran olmadan) nvidia gpu (xorg.conf'da coolbits) için fan kontrolünü ve diğer kontrolleri etkinleştirmek mümkün müdür?

Herhangi bir cevap için şimdiden çok teşekkürler. Kelimenin tam anlamıyla web taramak, tarak benim sorunum.
Önemli bir şeyi kaçırırsam, lütfen bana bildirin ve günlük dosyaları vb. İstemekten çekinmeyin.

TEŞEKKÜRLER

Görüntüler

Ek sürücü sekmem görüntüsü: resim açıklamasını buraya girin


Ayrıca bir fırlatma rampası sorusu oluşturdum: answer.launchpad.net/ubuntu/+question/294621
winnetou

belki kurulum sürecimi doğru bir şekilde tarif etmedim: nvidia-sürücülerini apt-get ile kurduktan sonra da söylediğin gibi ek sürücüler kontrol edilir ve doğru sürücüler zaten seçilmiş. bir ekran görüntüsü dahil. sürücüler var ve ben nvidia-prime Nvidia-Gpu için geçiş yaparsanız her şey çalışır. bu ayarı değiştirmek tüm sürücüyü yükleyemez, aslında sürücünün bir parçası ve mevcut olmadan çalışmaz
winnetou

temiz bir ubuntu 16.04 yüklemek oldu Her boot Ben Güncelleme ve Yükseltme apt-get böylece yeni resmi güncellemeler yüklü sanırım
winnetou

Nvidia GPU'da CUDA kullanabildiğim için sürücülerin sistem tarafından kullanıldığını biliyorum. Ancak tüm nvidia modülleri önyüklemede yüklenmez, böylece nvidia-smi örneğin kütüphaneleri özler ....
Sorunumu

Yanıtlar:


4

Kabul edilen cevap, Nvidia cihazlarını etkinleştirmek için X sunucusunu kullanır. Bu gerekli değildir ve X sunucusunun kartın bir miktar hafızasını kullanacağı anlamına gelir.

Bunun yerine nvidia-modprobesürücü SSS bölümünde açıklandığı gibi kurulmalıdır (aşağıdaki bağlantıda bulunabilir).

Bu yüzden önerilen çözümüm:

1) den runfile aracılığıyla son Nvidia sürücüsünü yükleyin ftp://download.nvidia.com/XFree86/Linux-x86_64/ ile --no-opengl-filesve --dkmsbayrak.
2) İlgili nvidia-modprobesürümü ftp://download.nvidia.com/XFree86/nvidia-modprobe/ adresindenmake all ve sudo make installburadan yükleyin.

--dkmsBayrak kernelinizi yükselttiğinizde çekirdek modülü derlenmiş çekirdekler emin kılar.


Bu benim için çalıştı. Bu en basit cevaptır ve kabul edilen cevap olmalıdır.
Marko Avlijaš

Bu çözüm benim için işe yaramadı. Bunun yerine sürücüyü normal olarak yükledim ve aşağıda belirtildiği gibi nvidia yolunu LD_LIBRARY_PATH dizinine ekledim .
revers

3

Ben (bu yazının yaratıcısı) ihtiyacım olan çözümü kendi başıma buldum!

Şimdi benzer bir durumda olan ve bu yardıma ihtiyacı olan herkes için çözümü açıklayacağım!

ÇÖZÜM:
NVIDIA SÜRÜCÜSÜNÜ http://www.nvidia.com/object/unix.html adresinde sağlanan RUNFILE İLE "- no-opengl-files"!

Bu sadece nvidia opengl dosyalarının mevcut mesa dosyalarının üzerine yazmasını engellemekle kalmaz, aynı zamanda nvidia prime olmadan sürücüyü de yükler !!

Bu yüzden tüm sorunlarım, depodan yüklemek yerine sürücüyü manuel olarak yükleyerek çözüldü. Depolardan gelen paket "Optimus-Friendly" dır ve bu nedenle tüm yararsız baş belası ile birlikte gelir.

ikinci olarak

xorg.conf, ayrılmış GPU (lar) için başka bir ekranla genişletilmelidir, böylece nvidia ayarlarında girişleri olur / vardır.

benimki böyle görünüyor

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

1
Selam. Leezu'nun cevabı daha basit ve belki de bunu kabul etmelisin?
Marko Avlijaš

Henüz leezu'nun cevabını doğrulayamıyorum, ancak gözlerime çok umut verici görünüyor. Çalıştığını bildiren daha fazla kişi varsa veya sonunda cevabını test edip onaylayabilirsem, kabul edilen cevabı değiştireceğim. Bu sorunu giderir, nvidia-modprobe bu kartta çalışan bir x sunucusu olmadan çalışmaz.
winnetou

Varolan tüm nvidia sürücülerini kaldırırsanız ve yeniden baştan başlatırsanız bu çalışmaz. Bunu NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
söylüyor

1

İstediğiniz yapılandırmayı elde ettim (ben de istedim;)):

  • intel GPU, dahili DP'ye bağlı olan xserver ve monitörümü çalıştıracaktır
  • nvidia GPU yalnızca CUDA'ya özgü hesaplama vb. için kullanılacaktır.
  • nvidia gpu üzerinde tam kontrol (gerçek zamanlı, istatistikler, temps fan hızları ...)

kullanarak bumblebee.

Ancak bazı ayrıntılara girmeden önce, nvidia-settings veya xorg.conf veya nvidia prime yapılandırmasını değiştirirken sisteminizi yeniden başlatmanız gerektiğini (belki zaten biliyorsunuz) sizi uyarmalıyım. Yeniden başlatılmaması, sistemi tutarlı olmayan bir durumda bırakabilir.


Konfigürasyonumda dokunmadım xorg.conf. Bunu yapmak benim için her zaman acı kaynağı oldu. Lütfen orijinal durumuna bırakın. Yeni bir kurulum yapmak istemiyorsanız, /etc/X11/( ls /etc/X11/xorg.conf*) bölümünde bazı yedekler bulabilirsiniz .

İlk adım nvidia-settingsiş yapmaya çalışmak. Bunu yapmayı başarırsanız, zaten yaptığınız gibi, Intel GPU'ya geçmek için nvidia PRIME'ı kullanabilirsiniz. NVIDIA GPU'yu yalnızca CUDA hesaplamaları için kullanmak istiyorsanız, Intel GPU'ya nvidia prime noktası olması gerekir (özellikle cuda hata ayıklayıcısını kullanmak istiyorsanız özellikle gereklidir cuda-gdb).

Bundan sonra yaban arısı kurmayı deneyebilirsiniz :

sudo apt install bumblebee

Yeniden Başlatma. Bumblebee durumunu kullanarak izleyebilirsiniz

sudo service bumblebeed status

veya

bumblebeed -vv

Bombus arısı, NVIDIA GPU'yu etkinleştirmek ve nvidia sürücüsünü yalnızca gerektiğinde çekirdeğe yerleştirmeye çalışmaktır. Bumblebee'yi optirun, çalıştırmak istediğiniz komuta beklemeden kullanabilirsiniz.

Bombus arısı çalışması için, /etc/bumblebee/bumblebee.confnvidia sürücü adını ve yolunu doğru bir şekilde ayarlamak için elle düzenlemek zorunda kaldım .

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

Sonra, bir sudo service bumblebeed restartyaban arısı sistemini etkinleştirmeyi başardım.

Aslında nvidia-smigeri döner

$ 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.

ancak 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 |
+-----------------------------------------------------------------------------+

Bu yardımcı olur umarım.


iyi cevap! ANCAK Bumblebee ile ubuntu 15.10 ve aynı donanımı yorgun ve berbat. O kadar ki, kullanılabilir hale geldikten sonra 16.04 yeni bir kurulum yaptım. Gerçekten daha kötüydü. Kurtarma Modu bile düzgün açılmadı .... Bu yüzden artık yaban arısı kullanmama yemin ettim. Bombus arısı ile ilgili başka bir sorun (bunu nasıl atlattığınızı bilmiyorum), özel gpu'mun bbswitch'i desteklememesi, bu yüzden hatalar aldım, gpu doğru bir şekilde kapatılamadı
winnetou

Ancak, bu teorik olarak olası bir cevaptır! Ama aradığım kişi değil :(.
winnetou

Başka bir AMA: (daha fazla bilmiyorum, eğer bu benim denemem işe yaradıysa) nvidia ayarları size GPU'yu (elbette sudo optirun nvidia-settings) gösteriyor mu? Fan hızını, voltajını vb. Kontrol edebiliyor musunuz? Doğru hatırlıyorsam, bu ayarlar yalnızca nvidia ayarlarında, xorg.conf dosyasındaki coolbits'i etkinleştirdikten sonra mümkündür. nvidia-smi sadece bir monitör verir ..... eğer yanılıyorsam lütfen düzelt
winnetou

Ve başka bir büyük soru işareti: Birden fazla özel GPU'm varsa Bumblebee iyi çalışıyor mu? Bu usecase (igpu + gpu) mobil olmayan gpus üzerinde yaban arısı için zaten tavsiye edilmez, ancak birden fazla d-gpu olması yaban arısı için yeni bir deliktir.
winnetou

@winnetou kesinlikle birden fazla gpu hakkında haklısın - bu iyi bir soru. Başka bir sorun, nvidia-docker'ın beklendiği gibi çalışmadığıdır.
vskubriev

1

Yukarıdaki çözümlerde belirtildiği gibi nvidia sürücülerini opengl olmadan yeniden kurdum ama benim için çalışmadı. Üstelik bu çözümler, sürücülerin (opengl) bazı yeteneklerini ortadan kaldırdığı için oldukça tatmin edici değildir.

Sürücüyü yeniden yüklemenize gerek olmayan çok daha basit bir çözüm buldum:

  • Normalde nvidia sürücülerini kurdum
  • Nvidia ayarları gui, unter PRIME profillerinde, intel grafik kartını ana GPU olarak seçiyorum
  • Yeniden başlattıktan sonra nvidia-smi çalışmıyor, ancak kütüphaneler yoluna / usr / lib / nvidia-387 ekleyerek düzeltildi :
    export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH

Yüklü sürücüye bağlı olarak, kütüphane yolunuza başka bir klasör eklemeniz gerekebilir, örneğin / usr / lib / nvidia-384 . Yeni bir bash yüklerken yolu otomatik olarak dışa aktarmak için
bu komutu ~ / .bashrc dosyasına ekleyebilirsiniz .


Nvidia sürücüsünü yükseltirseniz ne olur? Kitaplık yolunu el ile değiştirmeniz gerekiyor mu?
liang

Sürücü hala aynı klasördeyse, bu bir sorun olmamalı sanırım. Klasör değişirse, muhtemelen kütüphane yolunu değiştirmeniz gerekir.
revers

0

esas olarak benim için bir hatırlatma olarak: ubuntu 18.04'te render için igpu ve cuda için nvidia gpu kullanmak, varsayılan nvidia sürücülerini yüklemek, nvidia ayarlarını açmak ve intel gpu kullanmaya ayarlamak. Bundan sonra, kara liste nouveau sürücüleri ve nvidia sürücülerinin bir parçası:

/etc/modprobe.d/blacklist-nvidia.conf dosyasını açın ve satırları şu şekilde yorumlayın:

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

bundan sonra /etc/modprobe.d/blacklist-nvidia-nouveau.conf dosyasını açın ve şu satırları ekleyin:

blacklist nouveau
options nouveau modeset=0

nouveau'nun devre dışı bırakıldığından emin olmak için, bunları /etc/modprobe.d/blacklist.conf içinde kara listeye alabilirsiniz: sonunda ekleyin:

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

sonra yeniden başlatın.

yazın nvidia-sminvidia yüklendiğinden emin olun ve yazın lspci -nnk | grep -iA2 3Dkullanımı nvidia olup nouveau içinde sürücüyü kontrol etmek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.