NVIDIA Prime ile CUDA nasıl kullanılır


10

Tüm web üzerinde yarım düzine mesaj buldum, ancak hiçbiri soruyu gerçekten cevaplamıyor.

Nvidia GPU'mu ekranı hesaplamak için değil, yalnızca hesaplamalar yapacak şekilde ayarlamak istiyorum. Ancak Intel GPU'yu nvidia-prime yapılandırmasında kullanmaya başladığımda, artık nvidia modülünü yükleyemiyorum.

modprobe: ERROR: could not insert 'nvidia_352': No such device

Modül olmadan, CUDA açıkçası çalışmıyor.

Peki modülün yüklenmesini imkansız kılan nvidia-prime tam olarak ne yapıyor? Kara listeye alınmadı. Hiçbir xorg.conf dosyası yok, bu yüzden sistem ayrı GPP yerine Intel GPU kullanmayı biliyor?

Ubuntu 14.04 fabrika kurulu bir Dell 5510 Precision'dayım ve GPU'm Quadro M1000M.

Bazıları yaban arısı kullanmayı önerir, ancak saf hesaplama yükleri için bu gerekli olmamalıdır.

Ayrıca, görünüşe göre yaban arısı modülü yükleyebilir. Peki tam olarak ne yapıyor?

Güncelleme: Öyleyse neden bir soru gönderdikten sonra saatlerce anlamaya çalıştıktan sonra cevabı bulduğum her zaman görünüyor. Bu gerçek sadece kısmi bir cevap, ama bir şeye devam ediyorum.

Şimdiye kadar asalın en az iki şey yaptığını belirledim:

  • Bbswitch kullanarak GPU'yu kapatın.
  • Değiştirir alternatifleri /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf için.

GPU'yu tekrar açmak için bbswitch kullanarak , artık NVIDIA modülünü yükleyebiliyorum.

Ancak soru hala devam ediyor: Sistemi NVIDIA kartını yalnızca hesaplamalar için kullanacak şekilde yapılandırmanın en iyi yolu nedir?

Intel GPU'yu kullanmak için nvidia-prime'ı ayarlamalı mıyım ve CUDA'nın çalışması için ne yaptığını elle çözmeye çalışmalı mıyım?

Sistemin hala ekran için Intel GPU kullandığından nasıl emin olabilirim?

NVIDIA prime'ı devre dışı bırakıp hepsini manuel olarak nasıl yapılandırırım?

Yoksa vermeli ve Bumblebee ve optirun kullanmalı mıyım? Varsa bunun dezavantajları nelerdir?

Herhangi bir tavsiye?


NVIDIA X Sunucu Ayarları uygulamasında GPU'daki ekranı devre dışı bırakabilir misiniz?
Roger Dahl

NVIDIA yardımcı programı yalnızca Intel ve NVIDIA GPU arasında seçim yapmanızı sağlar. Ekran için hangi kartın kullanılacağı gibi ince taneli ayarlar sağlamaz.
16'da orodbhen

Yanıtlar:


5

Benim durumumda NVidia kartının aslında kapalı olmadığını buldum ve CUDA kodunu çalıştırmak için yapmam gereken tek şey:

export LD_LIBRARY_PATH=/usr/lib/nvidia-352

Çalıştırmak istediğim kabukta (alternatif olarak global ayar değiştirmenin compiz, vb.

Bu noktaya ulaşmak için (Dell Optiplex 7010'da, Ubuntu 14.04, CUDA 7.5 ve GTX 980 ile) adımların şu olduğuna inanıyorum:

  1. Intel'i seçmek için PRIME Profilleri sekmesini kullanın
  2. Yeniden başlatın ve BIOS'ta varsayılan olarak Intel'i seçin
  3. Bilgisayarı Kapat
  4. Monitörleri yerleşik videoya takın :)

Şimdiye kadar her şey iyi çalışıyor gibi görünüyor (nvidia-smi kartı görüyor, cuda örnekleri çalışıyor, kartı kullanıyor vb.)


1
Evet, ne yazık ki tutarlı bir çözüm yok gibi görünüyor, bu yüzden kaputun altında neler olup bittiğini gerçekten alt etmek istedim.
orodbhen

2

Orijinal gönderimin güncellemesinde açıklandığı gibi, bunun için en azından bir cursory çözümü bulduğuma inanıyorum. Gerçekten bulduğum iki çözüm var ama eminim başkaları da var.

1 - Prime Intel modundayken, NVIDIA kartını bbswitch aracılığıyla yeniden etkinleştirin , ardından modprobe nvidiamodülü yüklemek ve cihaz düğümlerini oluşturmak için çalıştırın .

2 - Bumblebee optirun'u kullanarak tüm CUDA işlerinizi yapabileceğiniz bir bash oturumu başlatın.

Her iki çözüm de, bilgi işlem yükleri için NVIDIA kartını kullanırken ekranınız için yerleşik grafikleri kullanmanıza izin verir. Optirun çözümü daha çok yönlü görünüyor, ama minimalizm için ilkini tercih ediyorum.

Daha fazla anlayışa sahip birinin bu cevapta iyileşmesini umuyorum.


ilk seçeneği daha net açıklayabilir misiniz? Bbswitch kullanarak kartı nasıl açar ve kapatırsınız?
Abonec

Aslında bombus arısının nasıl iyi çalışacağını anladım ve zaman bulduğumda cevabımı güncelleyeceğim. Temelde takip bu . Bu şeylerin çok kötü belgelenmesi sinir bozucudur, çünkü gerçekten oldukça basittir.
17'de

2

NVIDIA kartı yalnızca CUDA uygulamaları için kullanıyorum ve bu yaklaşımı öğreniyorum:

Her zaman intel kartı kullanıyorum ve komutla onaylandı lspci | grep -E "VGA|3D":

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

NVIDIA kartı için ilgili satırda, (rev ff)kapalı olduğu anlamına gelmelidir .

Kartı açmak ve CUDA hesaplamaları için kullanmak için aşağıdaki iki komutu kullanıyorum:

sudo prime-select nvidia
sudo prime-switch

Bu komut lspci | grep -E "VGA|3D"raporundan sonra :

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

İlgili satırda (rev a2)değil (rev ff), hakkında dikkat edin . Şimdi kart hesaplamaya hazır.

Hesaplamalardan sonra geriye doğru eylemler kullanıyorum:

sudo prime-select intel
sudo prime-switch

Ve lspci | grep -E "VGA|3D"raporlar:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

Yani, temel olarak, hangi GPU'nun ekranı çalıştırdığını değiştirmek istiyorsanız, yalnızca prime ile geçiş yaptıktan sonra tekrar oturum açmanız gerekir? Buna rağmen sahip değildim, ama mantıklı. Elbette, oturumu kapatmadan veya yeniden başlatmadan önce tekrar geçiş yaptığınızdan emin olmanız gerekir.
orodbhen

Bu yaklaşımı kullanıyorum. Intel profil etkinken oturum açtım, böylece Xorg ve firefox GPU kullanmıyor. Sonra nvidia profiline geçiyorum ve tüm CUDA çalışmalarım GPU'ya gidiyor ve bellek için firefox ve Xorg ile rekabet etmek zorunda değil :)!
John

0

Birinin kabul edilen yanıttaki adımları uyguladıktan sonra hala sorun bulması durumunda şunu deneyin:

echo "install bbswitch /bin/true" > /etc/modprobe.d/blacklist-bbswitch.conf
update-initramfs -u

Bbswitch'i tamamen devre dışı bırakacaktır. Dezavantajı, güç tasarrufu için NVIDIA kartını kapatamayacağınızdır (Xorg, sürece entegre grafikleri kullanır prime-select intel).


0

Ben çalışırken kripto para birimi kurmak için kurulmuş bir egpu bir thinkpad T420 ile 1070 ti kullanıyorum. GPU teorik olarak birkaç ay sonra bu şekilde kendini ödeyecek.

Nvidia 387 ihracatı ile LD_LIBRARY_PATH = / usr / lib / nvidia-387'nin cuda kullanarak etminer ile çalıştığını buldum.

Ancak, bir "prime-select intel" sonra sistemi çalışmaya devam edebilmenin tek yolu, seçimi yaptığım ve oturumu kapattığında kart takılı ikinci bir monitör vardı oldu. Aksi takdirde, "Sistem düşük grafik modunda çalışıyor" hatası veya sürekli boş bir ekran alırdım. Tabii ki, Intel grafiklerini çalıştırarak oturum açtığımda, GPU'ya takılı monitör hiçbir şey görüntülemiyor, bu yüzden gpu'dan çıkarmam ve düello monitörü kurulumumu çalıştırmak için tekrar sisteme (DVI dock çıkışı) takmam gerekiyor .

Bunun nedeni, gpu-yöneticisinin bbswitch'in çalışmadığını algılaması ve ardından xorg yapılandırmasını silmesinden kaynaklandığına inanıyorum.

Bunu, benzer bir durumda olabilecek birkaç kişi için bir geçici çözüm göstermek için gönderiyorum, ancak aynı zamanda, her yeniden başlatma için bu kabloyu hareket ettirmek zorunda kaldığından birinin olmasını engellemek için bir fikri olup olmadığını görmek için rahatsızlık.

log_file: /var/log/gpu-manager.log

last_boot_file: / var / lib / ubuntu-drivers-common / last_gfx_boot new_boot_file: / var / lib / ubuntu-drivers-common / last_gfx_boot / lib içindeki fglrx modüllerini arıyor / run / run / udc-fglrx-was-loaded dosyası /modules/4.4.0-104-generic/updates/dkms /lib/modules/4.4.0-104-generic/updates/dkms içinde nvidia modülleri mi arıyorsunuz nvidia modülü yüklendi mi? evet Nvidia yüksüz mü? hayır Nvidia kara listede mi? evet fglrx yüklü mü? hayır fglrx kaldırıldı mı? hayır fglrx kara listede mi? hayır intel yüklü mü? evet Radeon yüklü mü? hayır Radeon kara listeye alındı ​​mı? hayır amdgpu yüklü mü? hayır amdgpu kara listede mi? no nouveau yüklü mü? no nouveau kara listede mi? evet fglrx çekirdek modülü mevcut mu? hayır nvidia çekirdek modülü mevcut mu? evet Satıcı / Aygıt Kimliği: 8086: 126 BusID "PCI: 0 @ 0: 2: 0" Önyükleme vga mı? evet Satıcı / Cihaz Kimliği: 10de: 1b82 BusID "PCI: conf Geçerli çekirdek alternatifi: (null) Geçerli örnek alternatifi: /usr/lib/nvidia-387-prime/ld.so.conf Nvidia etkin mi? hayır nvidia egl etkin mi? hayır fglrx etkin mi? hayır mesa etkin mi? hayır mesa egl etkin mi? hayır pxpress etkin mi? no Başbakan etkin mi? evet Prime egl etkin mi? evet Nvidia mevcut mu? evet Nvidia egl mevcut mu? hayır fglrx mevcut mu? hayır fglrx-core mevcut mu? yok mesa kullanılabilir mi? evet mesa egl mevcut mu? evet pxpress kullanılabilir mi? hayır Başbakan var mı? evet Prime egl mevcut mu? Intel IGP tespit edilmedi Intel hibrid sistem Nvidia sürücü sürüm 387.34 tespit edildi / sys / class / dmi / id / product_version = "ThinkPad T420" / sys / class / dmi / id / product_name = "4236L23" 1. deneme: bbswitch with quirks "load_state = -1 unload_state = 1" parametreleri Hata: can ' t open / proc / acpi / bbswitch xorg.conf dosyasının kaldırılması. Yol: /etc/X11/xorg.conf /usr/share/gpu-manager.d/hybrid-power-saving adresine erişemiyor Geçerli bbswitch durumunu değiştirmeye gerek yok

Bundan sonra nano xorg.conf olursa boş olur. Bunu monitör geçiş hilesi yaptıktan sonra gönderiyorum, madencilik arka planda devam ediyor ve xorg.conf hala boş. Benim tahminim, bir sebepten dolayı monitörü lightdm yeniden başlatma sırasında GPU'ya takılı tuttuğumda, xorg.conf'umun silinmesi önemli değil. Herhangi bir fikir?


Ayrıca ... Yukarıda önerildiği gibi kara listeye aldım, çünkü önyüklemede sürekli bir hata alırdım. Bir veya iki kez nvidia-384 kullanarak intel moduna önyükleme yapabildim, ancak bununla madenciliği yaparken sorun yaşadım ve bunun nvidia-387 ile 1070 ti desteğinin eklenmesi nedeniyle olabileceğini düşündüm.
17'de
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.