Как настроить igpu для xserver и nvidia gpu для cuda?

6

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
  • графический процессор nvidia должен использоваться только для конкретных вычислений CUDA и т. д.
  • полный контроль над nvidia gpu (в режиме реального времени, статистика, скорость вентиляторов темпа ...)

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

  • ни один nvidia-smi и nvidia-settings не работают, и я не могу контролировать свой графический процессор nvidia (ошибки приводятся ниже)

Моя история:

После краткого резюме моей проблемы я хочу погрузиться в тему; С момента выпуска Ubuntu 16.04 я стараюсь и не могу добиться следующего:

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

Краткий обзор моего начального состояния:

Я установил проприетарные драйверы для nvidia и intel (intel-microcode и nvidia-361.42) с помощью apt-get и отключил безопасную загрузку через mokutul -disable-validation.
Затем я установил nvidia-prime для использования карты Intel.
Затем я редактировал свой xorg.conf, чтобы содержать только один экран с Intel gpu и драйвером intel. (при необходимости уточните детали)
Тестирование графического процессора для рендеринга с помощью 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 Пусто:

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

Nvidia-smi не работает:

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

Мое предположение:

  • Nvidia prime плохой и не хочет, как я хочу.
  • Мне нужно как-то преодолеть простоту и настроить систему (даже вручную записывая новые конфиги?)

Мои попытки:

  • Я попробовал удалить nvidia-prime, но потом узнал, что это не сработает. Когда файл conf для 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 30.05.2016 в 17:09
источник

4 ответа

2

Я (создатель этого сообщения) нашел нужное мне решение!

Теперь я объясню решение для любого другого, кто находится в подобной ситуации и нуждается в этой помощи!

РЕШЕНИЕ:
УСТАНОВИТЕ ДРАЙВЕР NVIDIA ПО ПРОВЕРКЕ RUNFILE НА Ссылка С FLAG "--no-opengl-files" !!

Это предотвращает перезапись только файлов nvidia opengl от существующих файлов mesa, а также устанавливает драйвер без nvidia prime !!

Итак, все мои проблемы решены, просто установив драйвер вручную, вместо того, чтобы устанавливать его из репозиториев. Пакет из репозиториев «Optimus-Friendly» и, следовательно, содержит в себе все бесполезные нарушители спокойствия.

ВТОРЫХ

xorg.conf должен быть расширен другим экраном для выделенных GPU (ов), чтобы он / они имели / имели записи в настройках nvidia.

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

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

Section "Device"
    Identifier     "intel"
    Driver         "intel"
    BusID          "PCI:[email protected]:2:0"
EndSection

Section "Device"
    Identifier     "nvidia550ti"
    Driver         "nvidia"
    BoardName      "GeForce GTX 550ti"
    BusID          "PCI:[email protected]: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 27.06.2016 в 19:46
2

Принятый ответ использует 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 гарантирует, что модуль ядра будет перекомпилирован при обновлении вашего ядра.

    
ответ дан leezu 31.01.2017 в 08:04
1

Я получил конфигурацию, которую вы хотите (я тоже хотел);

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

, используя bumblebee .

Но прежде чем я расскажу о некоторых деталях, я должен предупредить вас, что при изменении конфигурации параметров nvidia или xorg.conf или nvidia prime вы должны перезагрузить свою систему (возможно, вы уже знаете). Не перезагрузка может оставить систему в несогласованном состоянии.

В моей конфигурации я не коснулся xorg.conf . Для меня это всегда было источником боли. Пожалуйста, оставьте его в исходном состоянии. Если вы не хотите выполнять новую установку, вы можете найти некоторые резервные копии в /etc/X11/ ( ls /etc/X11/xorg.conf* ).

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

После этого вы можете попробовать установить шмелю :

sudo apt install bumblebee

Reboot. Вы можете контролировать состояние шмеля, используя

sudo service bumblebeed status

или

bumblebeed -vv

Что делает шмел, так это активировать графический процессор NVIDIA и пытаться вставить драйвер nvidia в ядро ​​только тогда, когда это необходимо. Вы можете использовать шмелю, предварительно ожидая optirun , к команде, которую вы хотите запустить.

Чтобы сделать работу шмеля, мне пришлось вручную отредактировать /etc/bumblebee/bumblebee.conf , чтобы правильно установить имя и путь драйвера nvidia.

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

Затем, после того, как 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 |
+-----------------------------------------------------------------------------+

Надеюсь, что это поможет.

    
ответ дан Michele 17.06.2016 в 11:58
0

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

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

  • Я установил драйверы nvidia обычно
  • В настройках nvidia-gui, untirect 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.

    
ответ дан revers 12.01.2018 в 12:18