Saya telah menemukan setengah lusin posting tentang ini di seluruh web, tetapi tidak satupun dari mereka yang menjawab pertanyaan itu.
Saya ingin mengatur GPU nvidia saya hanya melakukan perhitungan, bukan menggerakkan layar. Tetapi ketika saya beralih menggunakan GPU Intel dalam konfigurasi nvidia-prime, saya tidak bisa lagi memuat modul nvidia.
modprobe: ERROR: could not insert 'nvidia_352': No such device
Tanpa modul, CUDA tidak berfungsi, jelas.
Jadi apa sebenarnya yang dilakukan nvidia-prime yang membuat tidak mungkin memuat modul? Itu tidak masuk daftar hitam. Tidak ada file xorg.conf, jadi bagaimana sistem tahu untuk menggunakan GPU Intel sebagai gantinya diskrit?
Saya menggunakan Dell 5510 Precision dengan pabrik Ubuntu 14.04 diinstal, dan GPU saya adalah Quadro M1000M.
Beberapa menyarankan menggunakan lebah, tetapi itu seharusnya tidak perlu untuk beban komputasi murni.
Juga, ternyata lebah mampu memuat modul. Jadi apa sebenarnya yang dilakukannya?
Update: Jadi mengapa selalu saya menemukan jawabannya ketika saya akhirnya mengirim pertanyaan, setelah berjam-jam mencoba mencari tahu. Sebenarnya ini hanya sebagian jawaban, tetapi saya sedang mengerjakan sesuatu.
Sejauh ini saya telah menentukan bahwa prime melakukan setidaknya dua hal:
- Matikan GPU menggunakan bbswitch.
- Mengubah alternatif untuk /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf.
Dengan menggunakan bbswitch untuk menghidupkan kembali GPU, saya sekarang dapat memuat modul NVIDIA.
Tetapi pertanyaannya masih ada: Apa cara terbaik untuk mengkonfigurasi sistem untuk menggunakan kartu NVIDIA hanya untuk perhitungan?
Haruskah saya mengatur nvidia-prime untuk menggunakan GPU Intel, dan mencoba untuk mengungkap secara manual apa yang dilakukan agar CUDA berfungsi?
Bagaimana saya memastikan bahwa sistem masih menggunakan GPU Intel untuk tampilan?
Bagaimana cara saya hanya menonaktifkan NVIDIA prime, dan mengonfigurasinya semuanya secara manual?
Atau haruskah saya menyerah dan menggunakan Bumblebee dan optirun? Apa kerugiannya jika ada?
Ada rekomendasi?
sumber
Jawaban:
Dalam kasus saya, saya menemukan bahwa kartu NVidia sebenarnya tidak dimatikan, dan satu-satunya hal yang perlu saya lakukan untuk menjalankan kode CUDA adalah:
di shell di mana saya ingin menjalankannya (saya berasumsi bahwa secara global mengubah pengaturan alternatif akan merusak compiz, dll, dll ...)
Untuk sampai ke titik ini (pada Dell Optiplex 7010, dengan Ubuntu 14.04, CUDA 7.5, dan GTX 980) saya percaya langkah-langkahnya adalah:
Semuanya tampaknya berfungsi dengan baik sejauh ini (nvidia-smi melihat kartu, sampel cuda berjalan, theano menggunakan kartu, dll ...)
sumber
Saya percaya saya telah menemukan setidaknya solusi sepintas lalu untuk ini, seperti yang dijelaskan dalam pembaruan ke posting asli saya. Sungguh ada dua solusi yang saya temukan, meskipun saya yakin ada yang lain.
1 - Dengan Prime dalam mode Intel, aktifkan kembali kartu NVIDIA melalui bbswitch , kemudian jalankan
modprobe nvidia
untuk memuat modul dan buat simpul perangkat.2 - Gunakan Bumblebee optirun untuk meluncurkan sesi bash dari mana Anda dapat melakukan semua hal CUDA.
Kedua solusi ini memungkinkan Anda untuk menggunakan grafis onboard untuk tampilan Anda, saat menggunakan kartu NVIDIA untuk menghitung beban. Solusi optirun tampaknya lebih fleksibel, tapi saya lebih suka yang pertama karena minimalis.
Saya berharap seseorang dengan pemahaman yang lebih baik akan meningkatkan jawaban ini.
sumber
Saya menggunakan kartu NVIDIA hanya untuk eksekusi CUDA dan mencari tahu pendekatan ini:
Setiap saat saya menggunakan kartu intel dan dikonfirmasi oleh perintah
lspci | grep -E "VGA|3D"
:Pada baris yang sesuai untuk kartu NVIDIA, Anda akan melihat
(rev ff)
artinya dimatikan.Untuk menghidupkan kartu dan menggunakannya untuk perhitungan CUDA saya menggunakan dua perintah berikut:
Setelah
lspci | grep -E "VGA|3D"
laporan perintah itu :Perhatikan tentang
(rev a2)
, bukan(rev ff)
di baris yang sesuai. Sekarang kartu siap untuk perhitungan.Setelah perhitungan saya menggunakan tindakan mundur:
Dan
lspci | grep -E "VGA|3D"
melaporkan:sumber
Jika seseorang masih menemukan masalah setelah mengikuti langkah-langkah dalam jawaban yang diterima, coba ini:
Ini akan menonaktifkan bbswitch sama sekali. Kekurangannya adalah Anda tidak dapat mematikan kartu NVIDIA untuk menghemat daya (Xorg masih menggunakan grafik terintegrasi, selama
prime-select intel
).sumber
Saya menggunakan ti 1070 dengan thinkpad T420 dalam egpu yang diatur untuk menambang mata uang kripto saat saya bekerja. Secara teoritis GPU akan membayar sendiri setelah beberapa bulan dengan cara ini.
Saya menemukan bahwa dengan nvidia 387 ekspor LD_LIBRARY_PATH = / usr / lib / nvidia-387 bekerja dengan ethminer menggunakan cuda.
Namun, satu-satunya cara saya bisa membuat sistem tetap bekerja setelah "prime-select intel" adalah jika saya memiliki monitor kedua yang dicolokkan ke kartu ketika saya melakukan seleksi dan keluar. Kalau tidak, saya akan mendapatkan kesalahan "Sistem sedang berjalan dalam mode grafis rendah", atau layar kosong terus-menerus. Tentu saja, ketika saya log-in menjalankan grafis intel, monitor yang terhubung ke GPU tidak menampilkan apa-apa, jadi saya harus mencabutnya dari GPU, dan menghubungkannya kembali ke sistem (DVI dock output) untuk menjalankan pengaturan duel monitor saya. .
Saya percaya ini karena gpu-manager mendeteksi bahwa bbswitch tidak berfungsi dan kemudian menghapus konfigurasi xorg.
Saya memposting ini untuk menunjukkan solusi bagi beberapa orang yang mungkin berada dalam situasi yang sama, tetapi juga untuk melihat apakah ada yang punya ide untuk menghentikan ini terjadi, karena harus memindahkan kabel itu untuk setiap reboot adalah sedikit masalah. kerepotan.
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 tidak dapat mengakses / menjalankan / udc-fglrx-was-loaded file Mencari file fglrx di / lib /modules/4.4.0-104-generic/updates/dkms Mencari modul nvidia di /lib/modules/4.4.0-104-generic/updates/dkms Ditemukan modul nvidia: nvidia_387_drm.ko Apakah nvidia dimuat? ya Apakah nvidia diturunkan? tidak Apakah nvidia masuk daftar hitam? ya Apakah fglrx dimuat? tidak Apakah fglrx diturunkan? tidak Apakah fglrx masuk daftar hitam? tidak Apakah intel dimuat? ya Apakah radeon dimuat? tidak Apakah radeon masuk daftar hitam? tidak Apakah amdgpu dimuat? tidak Apakah amdgpu masuk daftar hitam? tidak Apakah nouveau dimuat? tidak Apakah Anda baru saja masuk daftar hitam? ya Apakah modul kernel fglrx tersedia? tidak Apakah modul nvidia kernel tersedia? ya Vendor / Device Id: 8086: 126 BusID "PCI: 0 @ 0: 2: 0" Apakah boot vga? yes Vendor / Device Id: 10de: 1b82 BusID "PCI: conf Alternatif inti saat ini: (null) Alternatif egl saat ini: /usr/lib/nvidia-387-prime/ld.so.conf Apakah nvidia diaktifkan? tidak Apakah nvidia egl diaktifkan? tidak Apakah fglrx diaktifkan? tidak Apakah mesa diaktifkan? tidak Apakah mesa egl diaktifkan? tidak Apakah pxpress diaktifkan? tidak Apakah prime diaktifkan? ya Apakah prime egl diaktifkan? ya Apakah nvidia tersedia? ya Apakah nvidia egl tersedia? tidak Apakah fglrx tersedia? tidak Apakah fglrx-core tersedia? tidak Apakah mesa tersedia? ya Apakah mesa egl tersedia? ya Apakah pxpress tersedia? tidak Apakah prime tersedia? ya Apakah prime egl tersedia? tidak ada Intel IGP terdeteksi sistem hybrid Intel Nvidia versi driver 387.34 terdeteksi / sys / class / dmi / id / product_version = "ThinkPad T420" / sys / class / dmi / id / product_name = "4236L23" Percobaan pertama: bbswitch tanpa quirks Memuat bbswitch dengan "load_state = -1 unload_state = 1" parameter Kesalahan: bisa ' t open / proc / acpi / bbswitch Menghapus xorg.conf. Path: /etc/X11/xorg.conf tidak dapat mengakses /usr/share/gpu-manager.d/hybrid-power-saving Tidak perlu mengubah status bbswitch saat ini
Jika saya nano xorg.conf setelah ini kosong. Saya memposting ini setelah melakukan trik saklar monitor, dengan penambangan terjadi di latar belakang, dan xorg.conf saya masih kosong. Jadi tebakan saya adalah bahwa untuk beberapa alasan ketika saya menjaga monitor terhubung ke GPU pada lightdm restart tidak masalah bahwa xorg.conf saya dihapus. Ada ide?
sumber