Як налаштувати igpu для xserver та nvidia gpu для cuda?


12

Ubuntu 16.04

Вихід 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

Настільний клас:

  • Процесор: Intel
  • GPU: Nvidia з 361,42

Що я хочу:

  • Intel GPU запустить xserver і мій монітор, який підключений до бортового DP
  • GPU nvidia повинен використовуватися тільки для обчислення конкретних CUDA тощо.
  • повний контроль над gpu nvidia (у режимі реального часу, статистикою, швидкістю вентилятора темпів ...)

Моя проблема:

  • ні , nvidia-smiні nvidia-settingsробота , і я не можу керувати NVidia GPU (помилки наведені далі вниз)

Моя історія:

Після короткого резюме моєї проблеми я хочу зануритися в тему; З моменту виходу Ubuntu 16.04 я замислювався і не досягав наступного:

  • Я хочу, щоб мій графічний процесор Intel (i7 6700K) керував моїм Xserver і все, що йому присвячено.
  • Я хочу, щоб мій виділений nvidia GPU використовувався лише для обчислень на основі Cuda тощо.
  • Після того, як я вирішуватиму проблеми, я додаду до системи більше nvidia GPU.

Короткий підсумок мого початкового стану:

Я встановив власні драйвери для nvidia та intel (intel-microcode та nvidia-361.42) за допомогою безпечного завантаження apt-get та onesposoble через mokutul --disable-validation.
Тоді я встановив nvidia-prime використовувати Intel-карту.
Потім я відредагував свій xorg.conf, щоб він містив лише один екран із Intel gpu та Intel драйвером. (запитайте деталі, якщо потрібно)
Тестуючи GPU для візуалізації за допомогою Blender, все здавалося нормально, за винятком того, що я не міг отримати статистику мого gpu, і налаштування nvidia виявилися порожніми.

Помилки:

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.

Що я до цього часу дізнався з усіх моїх спроб та досліджень з моменту виходу (коротка версія, будь-коли запитайте деталі):

Мої дві проблеми пов'язані, але не однакові:

Параметри Nvidia порожні:

  • це тому, що ці налаштування відображаються лише тоді, коли до GPU nvidia підключений Xserver
  • рішенням для цього було б додати новий екран у xorg.conf, що змушує і невикористаний xserver працювати на nvidia GPU
  • але це наразі неможливо (див. іншу проблему) і не бажано, оскільки я просто хочу, щоб nvidia GPU зосередилася на Cuda

Nvidia-smi не працює:

  • bbswitch - це не проблема, оскільки мій GPU (550ti) не підтримує його (помилки в dmesg)
  • nvidia prime змінює запис для x86_64-linux-gnu_gl_conf на або /usr/lib/nvidia-361/ld.so.conf(вибрано GPU nvidia), або /usr/lib/nvidia-361-prime/ld.so.conf(вибрано GPU Intel)
  • у конфігурації для вибору Intel відсутні істотні шляхи до основних модулів nvidia, які присутні у конф для вибору nvidia
  • при переході на nvidia через prime-select у мене немає Xserver, оскільки дисплей підключений до інтегрованого GPU, але вхід у віртуальну консоль nvidia-smi працює

Моє Успіння:

  • Nvidia prime погана і не хоче так, як я хочу.
  • Я повинен якось подолати прайм і налаштувати систему (навіть вручну писати нові конфігурації?)

Мої спроби:

  • Я спробував видалити nvidia-prime, але лише після цього зрозумів, що це не може працювати. Коли файл конф для x86_64-linux-gnu_gl_conf видалено, результат - чистий безлад ...
  • Я навіть спробував додати пропущені шляхи до файлів x86_64-linux-gnu_gl_conf вручну, але я не дуже знав, що роблю, і не мав успіху.

Мої запитання:

1) Як я можу вирішити проблему nvidia-smi? Я на правильному шляху? Хтось має інструкції, як я міг діяти?

2) Чи можна включити управління вентиляторами та подальший контроль для nvidia gpu (coolbits в xorg.conf) без Xserver на gpu (без екрана для gpu в xorg.conf)?

Величезне заздалегідь дякую за будь-які відповіді. Я буквально розчесав павутину, моя проблема - гребінець.
Якщо я пропустив щось важливе, будь ласка, скажіть мені і не соромтеся запитувати файли журналів тощо.

СПАСИБІ

Зображення

Моє додаткове зображення вкладки драйвера: введіть тут опис зображення


Я також створив питання про запуск
winnetou

можливо, я неправильно не описав свій процес встановлення: після установки nvidia-драйверів через apt-get також перевіряється Додаткові драйвери, як ви сказали, і правильні драйвери були вже обрані. Я включив скріншот. драйвери присутні, і якщо я переключу nvidia-prime на Nvidia-Gpu, все працює. змінивши цю налаштування, не можна встановити цілого драйвера, фактично його частину драйвера і навіть не працювати, не маючи присутніх
winnetou

це було чисте встановлення ubuntu 16.04. На кожному завантаженні i Update and Upgrade apt-get, так що я думаю, у мене встановлено новітні офіційні оновлення
winnetou

Я знаю, що драйвери використовуються системою, так як я можу використовувати CUDA на nvidia GPU. Але не всі nvidia-модулі завантажуються під час завантаження, так що nvidia-smi, наприклад, не вистачає libs .... ЯКЩО я правильно розумію свою проблему
winnetou

Відповіді:


4

У прийнятій відповіді використовується сервер X для включення пристроїв Nvidia. Це не обов'язково і означає, що X-сервер буде використовувати деяку пам’ять карти.

Натомість nvidia-modprobeслід встановлювати, як описано в FAQ щодо драйверів (їх можна знайти за посиланням нижче).

Тому моїм рекомендованим рішенням є:

1) Встановіть останній драйвер Nvidia через файл запуску з ftp://download.nvidia.com/XFree86/Linux-x86_64/ із прапором --no-opengl-filesта --dkms.
2) Встановіть відповідну nvidia-modprobeверсію через make allі sudo make installз ftp://download.nvidia.com/XFree86/nvidia-modprobe/

--dkmsПрапор гарантує , що модуль ядра компілюється при оновленні ядра.


Це працювало для мене. Це найпростіша відповідь і повинна бути прийнятою відповіддю.
Марко Авліяш

Це рішення не спрацювало для мене. Натомість я просто встановив драйвер нормально і додав шлях до nvidia до LD_LIBRARY_PATH, як було зазначено нижче.
реверси

3

Я (творець цієї публікації) знайшов потрібне мені рішення самостійно!

Зараз я поясню рішення для всіх, хто опинився в подібній ситуації і потребує цієї допомоги!

РІШЕННЯ:
ВСТАНОВИТИ Драйвер NVIDIA ВІД ЗАКУСКА, ЗАБЕЗПЕЧЕНОГО НА http://www.nvidia.com/object/unix.html З ФЛАГОМ "--no-opengl-files" !!

Це не дозволяє файлам nvidia opengl перезаписати існуючі файли mesa, а й встановити драйвер без nvidia prime !!

Тож усі мої проблеми вирішуються, просто встановивши драйвер вручну, а не встановлюючи його з сховищ. Пакет із сховищ "Оптимізує дружнє", тому в комплекті є всі непотрібні виконавці несправностей.

ДРУГО

xorg.conf слід розширити ще одним екраном для виділених графічних процесорів, щоб він / вони мали / мали записи в nvidia-налаштуваннях.

моя виглядає так

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
Привіт. Відповідь leezu простіша, і, можливо, ви повинні це прийняти?
Марко Авліяш

Я ще не можу підтвердити відповідь leezu, хоча це виглядає дуже перспективно для моїх очей. Якщо буде більше людей, які повідомляють, що це працює, або я нарешті змушу перевірити його відповідь і можу підтвердити, я зміню прийняту відповідь. Він вирішує проблему, що nvidia-modprobe не працює без x-сервера, який працює на цій карті.
winnetou

Це не працює, якщо ви видалите всі існуючі драйвери nvidia та запускаєте все заново. Про це говорить 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

Я отримав потрібну вам конфігурацію (я теж хотів;)):

  • Intel GPU запустить xserver і мій монітор, який підключений до бортового DP
  • GPU nvidia повинен використовуватися тільки для обчислення конкретних CUDA тощо.
  • повний контроль над gpu nvidia (у режимі реального часу, статистикою, швидкістю вентилятора темпів ...)

за допомогою bumblebee.

Але перш ніж розібратися з деякими подробицями, я повинен попередити вас, що при зміні конфігурації nvidia-settings або xorg.conf або nvidia prime, ви повинні перезавантажити систему (можливо, ви вже знаєте). Якщо перезавантаження не може перевести систему в невідповідний стан.


У моїй конфігурації я не торкався xorg.conf. Це для мене завжди було джерелом болю. Залиште його у початковому стані. Якщо ви не хочете виконувати нову установку, ви можете знайти резервні копії в /etc/X11/( ls /etc/X11/xorg.conf*).

Перший крок - намагання зробити nvidia-settingsроботу. Якщо вам це вдасться, ви можете використовувати nvidia PRIME для переходу на Intel GPU, як ви вже згадували. Маючи nvidia першокласну точку Intel GPU, потрібно, якщо ви хочете використовувати NVIDIA GPU лише для обчислень CUDA (особливо це потрібно, якщо ви хочете використовувати відладчик cuda cuda-gdb).

Після цього ви можете спробувати встановити джмеля :

sudo apt install bumblebee

Перезавантажте. Ви можете стежити за станом джмелів за допомогою

sudo service bumblebeed status

або

bumblebeed -vv

Що робити джміль - це активувати NVIDIA GPU та намагатися вставити драйвер nvidia в ядро ​​лише за потреби. Ви можете використовувати джмеля, попередньо очікуючи optirunна команду, яку потрібно виконати.

Щоб працювати з джмелем, мені довелося вручну відредагувати, /etc/bumblebee/bumblebee.confщоб правильно встановити ім’я та шлях драйвера nvidia.

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

Потім, після a, sudo service bumblebeed restartмені вдалося активувати джмелів.

Фактично nvidia-smiповертається

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

але 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 |
+-----------------------------------------------------------------------------+

Сподіваюсь, це допомагає.


хороша відповідь! Але я втомився джмеля з ubuntu 15.10 і тим же обладнанням, і він заплутався. Настільки багато, що я зробив новий встановлення 16.04 після того, як він став доступним. Це було справді гірше. Навіть режим відновлення не завантажувався правильно .... Тому я поклявся більше не використовувати джмеля. Ще одна проблема з джмелем була (я не знаю, як ви це обійшли) полягала в тому, що мій виділений gpu не підтримує bbswitch, тому я помилився, що gpu coul не буде вимкнено правильно
winnetou

Але, це теоретично можлива відповідь! Але не той, кого я шукаю :(.
winnetou

Ще АЛЕ: (я більше не знаю, чи це спрацювало у моїй спробі) Чи показують nvidia-налаштування GPU (sudo optirun nvidia-settings, звичайно)? Чи можете ви керувати швидкістю обертання вентилятора, напругою тощо? Якщо я пам'ятаю правильно, ці налаштування можливі лише в налаштуваннях nvidia, після того як ви включите прохолодні файли у файлі xorg.conf. nvidia-smi дає вам лише монітор ..... будь ласка, виправте, якщо я помиляюся
winnetou

І ще один величезний знак запитання: чи добре працює джміль, якщо у мене є більше одного gpu? Цей футляр (igpu + gpu) вже не рекомендується для джмелів на мобільних gpus, але наявність більше одного d-gpu - це нова історія для джмелів.
winnetou

@winnetou ви абсолютно праві щодо кількох gpu - це гарне питання. Інша проблема полягає в тому, що nvidia-docker працює не так, як очікувалося.
vskubriev

1

Я перевстановив драйвери nvidia без opengl, як згадувалося у вищезазначених рішеннях, але це не працювало для мене. Більше того, ці рішення є досить незадовільними, оскільки передбачають усунення певних можливостей драйверів (opengl).

Я знайшов набагато простіше рішення, для якого вам не потрібно перевстановлювати драйвер:

  • Я встановив драйвери nvidia нормально
  • У gui-налаштуваннях nvidia, вхідних профілів PRIME, я вибираю графічну карту Intel як основний графічний процесор
  • Після перезавантаження nvidia-smi не працює, але я виправив додавання / usr / lib / nvidia-387 до шляху бібліотеки:
    export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH

Зауважте, що залежно від встановленого драйвера, можливо, вам доведеться додати ще одну папку у ваш шлях бібліотеки, наприклад / usr / lib / nvidia-384 .
Ви можете додати цю команду у файл ~ / .bashrc, щоб автоматично експортувати шлях при завантаженні нового bash.


Що станеться, якщо оновити драйвер nvidia? Чи потрібно вручну змінювати шлях бібліотеки?
laang

Я думаю, це не повинно бути проблемою, якщо драйвер все ще знаходиться в одній папці. Якщо папка зміниться, вам, ймовірно, слід змінити шлях до бібліотеки.
реверси

0

в основному як нагадування для мене: в ubuntu 18.04 використовувати igpu для візуалізації та nvidia gpu для cuda, встановити драйвери nvidia за замовчуванням, відкрити налаштування nvidia та налаштувати на використання Intel gpu. Після цього, чорний список водіїв nouveau та частина драйверів nvidia:

відкрити /etc/modprobe.d/blacklist-nvidia.conf та рядки коментарів таким чином:

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

після цього відкрийте /etc/modprobe.d/blacklist-nvidia-nouveau.conf та додайте ці рядки:

blacklist nouveau
options nouveau modeset=0

щоб бути дійсно впевненим, що модерн вимкнено, ви можете передати їх у чорний список також у /etc/modprobe.d/blacklist.conf: наприкінці add:

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

потім перезавантажте.

введіть nvidia-smiдля перевірки завантаження nvidia, а тип lspci -nnk | grep -iA2 3Dперевірити драйвер, який використовується, - це nvidia, а не nouveau.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.