Как я могу заставить nVidia CUDA или OpenCL работать на ноутбуке с дискретной картой nVidia / Intel Integrated Graphics?

Насколько я знаю, даже унифицированный на основе Compiz вряд ли будет работать в виртуальной машине (я спросил об этом в UDS и сказал, что compiz не запускается на виртуальных машинах.)

25
задан 10 May 2012 в 17:56

4 ответа

Вот полный ответ (основанный на ответах Alex Falappa и Lekensteyn):

На самом деле можно заставить графические процессоры nVidia Optimus запускать CUDA на Ubuntu.

Bumblebee is not необходимых для CUDA. (подробнее о Alex Falappa : Является ли NVIDIA GeForce с технологией Optimus поддерживаемой Ubuntu?)

Однако, когда вам нужно показывать графические примеры с помощью OpenGL, вам нужно что-то вроде Bumblebee для систем Optimus, иначе вы либо ничего не увидите на дисплее, либо не получите ошибку:

ERROR: Support for necessary OpenGL extensions missing. 

Если вам нужно использовать программу с интенсивным графикой, такую ​​как Blender, Bumblebee в настоящее время является хорошим способом

Перейти к установке CUDA, если вы не хотите устанавливать Bumblebee (т.е. если вам не нужен OpenGL). В противном случае, прочитайте.

Установка Bumblebee

Следуйте инструкциям на Является ли NVIDIA GeForce с технологией Optimus поддерживаемой Ubuntu?

После того, как вы установили Bumblebee и перезагрузились, вы сможете выбрать графическую карту, которая будет использоваться при запуске программ, используя optirun Например:

optirun blender

Чтобы быстро проверить, работает ли все правильно, используйте:

optirun glxspheres

Вы увидите программу с яркими (! d20)

Убедитесь, что строка поставщика GL в терминале содержит слово Установка CUDA . Если вы запустите только glxspheres, вы увидите, что строка поставщика содержит карту Intel.

При запуске программы CUDA вам необходимо установить набор инструментов CUDA и драйвер nvidia. Если вы собираетесь компилировать программы, вам также нужен SDK. Установщики можно найти на http://developer.nvidia.com/cuda-downloads, пожалуйста, прочитайте приведенные ниже инструкции перед тем, как разрезать свой ноутбук Optimus.

Установка CUDA

Драйвер

Я рекомендую установить драйвер nvidia из диспетчера пакетов Ubuntu. Если вы установите Bumblebee, вам не нужно беспокоиться о драйвере. В противном случае после установки сделайте библиотеки nvidia, как описано в http://developer.nvidia.com/cuda-downloads .

Toolkit

В принципе, вам нужно загрузить установщик, сделать его исполняемым и запустить его. , - Загрузите программу установки. По состоянию на 9 января 2013 года 5.0.35 является самым последним драйвером. Поскольку у меня 64-разрядная ОС, я использую 64-разрядный 11.10 Ubuntu-пакет (хотя я выполняю 12.10). Сделайте его исполняемым и разрешите установку на /usr/local/cuda:

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

Когда появляется сообщение об установке, в котором спрашивается, где установить CUDA, просто нажмите «Ввод», чтобы принять значение по умолчанию /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

. После установки будет напечатано несколько сообщений, предлагающих поместить каталог библиотеки cuda на путь поиска в библиотеке:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

Вы можете пропустить этот шаг, если хотите, но затем вы должны установить LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH позже при запуске программы.

SDK

Если вы хотите скомпилировать приложения CUDA, вы можете установить SDK так же, как описано выше.

Использование CUDA

Для работы CUDA не нужен X-сервер с поддержкой nvidia.

Использование CUDA

. В этом случае вы можете запустить свою случайную тестовую программу, например:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

Если вы не добавили CUDA в свой путь к библиотеке, вам понадобятся:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram [!d41 ]

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram [ ! d44]

(вы можете удалить из него 32-битные пути, если ваша программа 64-разрядная).

 optirun blender

Если программа CUDA имеет что-то для отображения с использованием OpenGL, у вас есть для использования optirun:

LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH optirun blender

Установка сборки Blender

(с предварительно скомпилированными ядрами CUDA)

Или, если у вас нет CUDA, добавленного к вашему пути по умолчанию :

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

Когда вы запустите optirun blender, вы можете получить сообщение от Blender о том, что компиляция ядра CUDA не удалась, и сообщение на терминале похоже на следующее:

Если вы хотите использовать функцию рендеринга графического объекта Blender, вам может понадобиться сборка Blender с предварительно скомпилированными ядрами CUDA. Созданные из Blender.org все имеют предварительно скомпилированные ядра CUDA; ppa: cheleb / blender-svn builds ( Lekensteyn's ).

Чтобы установить официальную сборку Blender, просто следуйте инструкциям, изложенным в этом ответе.

 optirun '/usr/lib/blender/blender'
13
ответ дан 25 May 2018 в 11:53
  • 1
    В последних версиях Bumblebee (установленных из шмеля / стабильной PPA) не требуется команда usermod. Я сохраню инструкции по установке на askubuntu.com/a/36936/6969 обновлен, поэтому, пожалуйста, перейдите к этому сообщению, а не копируйте эти инструкции по установке. – Lekensteyn 11 May 2012 в 00:42
  • 2
    @Lekensteyn Хорошо, сделано! – Peter Cassetta 11 May 2012 в 05:50

Я только что сделал несколько экспериментов и могу подтвердить утверждения Эрика Эпплмана о том, что Bumblebee не нужен для CUDA.

Однако, когда вам нужно показывать графические примеры с помощью OpenGL, вам нужно что-то вроде Bumblebee для систем Optimus, иначе вы либо не будете «Нет ничего на вашем дисплее или получите ошибку:

ERROR: Support for necessary OpenGL extensions missing.

При запуске программы CUDA вам необходимо установить инструментарий CUDA и драйвер nvidia. Если вы собираетесь компилировать программы, вам также нужен SDK.

Установка CUDA

Драйвер

Bumblebee , пожалуйста, прочитайте приведенные ниже инструкции перед тем, как разрезать ваш ноутбук Optimus. Я рекомендую установить драйвер nvidia из диспетчера пакетов Ubuntu. Если вы установите Bumblebee, вам не нужно беспокоиться о драйвере. В противном случае после установки выполните библиотеки nvidia, как описано на https://askubuntu.com/a/107746/6969.

Toolkit

В принципе, вам нужно загрузить установщик, сделать его исполняемым и запустить Это. - Загрузите программу установки. На момент написания этой статьи 4.2.9 является самым последним драйвером. Поскольку у меня 64-разрядная ОС, я использую 64-разрядный 11.04 Ubuntu-пакет (хотя я выполняю 12.04). Сделайте его исполняемым и разрешите установку на /usr/local/cuda:

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

Когда появляется сообщение об установке, в котором спрашивается, где установить CUDA, просто нажмите «Ввод», чтобы принять значение по умолчанию /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

. После установки он распечатает несколько сообщений, предлагающих поместить каталог библиотеки cuda на путь поиска в библиотеке:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

Вы можете пропустить этот шаг, если хотите, но затем вы должны установить LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH позже при запуске программы.

SDK [ ! d17]

Если вы хотите иметь возможность компилировать приложения CUDA, вы можете установить SDK так же, как описано выше. Загрузите, сделайте его исполняемым и запустите (не как root, например, без sudo!). При компиляции его частей мне пришлось внести некоторые изменения в NVIDIA_GPU_Computing_SDK/C/common/common.mk, хотя:

после строки 189, OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu, добавить:
OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
после строки 271, swap ${RENDERCHECKGLLIB} с [ f15], чтобы он выглядел следующим образом:
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
несколько (5) строк, сделайте то же самое, но удалите -lcuda. несколько (7) строк, сделайте то же самое, что и вы в строке 271.

Использование CUDA

CUDA не нуждается в X-сервере, управляемом nvidia. В этом случае вы можете запустить свою случайную тестовую программу, например:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

Если вы не добавили CUDA в свой путь к библиотеке, вам понадобятся:

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: $ LD_LIBRARY_PATH someComputallyIntensiveProgram [!d29 ]

LD_LIBRARY_PATH = / usr / lib / nvidia-current: / usr / lib32 / nvidia-current: / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram [ ! d32]

(вы можете удалить из него 32-битные пути, если ваша программа 64-разрядная).

 optirun blender

Если у программы CUDA есть что-то отображаемое с помощью OpenGL, у вас есть для использования optirun:

LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / local / cuda / lib: $ LD_LIBRARY_PATH optirun blender
25
ответ дан 25 May 2018 в 11:53
  • 1
    Спасибо, я вручу вам награду (но я соглашусь с ответом сообщества Wiki). – Peter Cassetta 10 May 2012 в 17:42
  • 2
    Кроме того, 100 представителей и аванс не точно отражают, насколько я ценю вашу работу над проектом Bumblebee. Вы и ваши коллеги сделали это отличным программным обеспечением, которым оно является. Так что спасибо тебе. :) – Peter Cassetta 10 May 2012 в 23:53
  • 3
    Надеюсь, теперь я надеюсь, что время предоставит нам окончательное решение в форме PRIME с обновленным стеком xorg + mesa (или Wayland?) :) – Lekensteyn 11 May 2012 в 00:41
  • 4
    PRIME , Xorg - это сервер отображения, ответственный за показ вашей графики, Mesa для OpenGL, Wayland является возможным преемником Xorg. – Lekensteyn 11 May 2012 в 00:50
  • 5
    Следует отметить, что CUDA требует минимум драйвера NVIDIA. Например, для CUDA 6.5 требуется как минимум NVIDIA 340.21. – Yamaneko 6 November 2015 в 23:34

Гибридная графика (как правило, интегрированная графика Intel и дискретная графика Nvidia) под Linux в настоящее время немного хлопотная. Что-то медленно двигается в поле X-сервера, но не задерживайте дыхание.

Как вы уже догадались, Bumblebee в настоящее время является хорошим способом.

Недавно я купил Asus N55 ноутбук с графикой Intel / Nvidia Мне удалось заставить визуализатор циклов Blender использовать CUDA.

Когда я установил Ubuntu 12.04, он использовал встроенную графику по умолчанию с помощью графического драйвера Intel. Графический драйвер noveau не должен устанавливаться.

Затем я открыл терминал и сделал:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

После этого я сделал (как рекомендовано инструкциями по установке): [!d5 ]

sudo usermod -a -G bumblebee $USER

Затем я перезагрузился.

Чтобы выбрать драйвер, который будет использоваться при запуске программ, используйте программу optirun, например:

optirun blender

Чтобы проверить, работает ли все правильно использовать:

optirun glxspheres

И проверить, что строка поставщика GL содержит слово Nvidia. Если вы запустите вместо этого:

glxspheres

Строка поставщика должна содержать слово Intel

2
ответ дан 25 May 2018 в 11:53
  • 1
    Нужно ли устанавливать драйверы nVidia перед установкой Bumblebee? Я предполагаю, что нет, основываясь на том, как вы сформулировали свой ответ. Кроме того, хорошо видеть, что кто-то смог использовать CUDA на Ubuntu с помощью карты Optimus! Я проголосую за это, как только я получу 15 представителей. :) – Peter Cassetta 8 May 2012 в 16:49
  • 2
    Хорошо, я установил Bumblebee. Я использовал optirun, и я могу проверить, что Blender использовал мой графический процессор nVidia для рендеринга 3D-видового экрана. Однако нет «GPU». в раскрывающемся списке настроек пользователя Blender. Он отображает только «CPU». Смотрите этот снимок экрана . Нужно ли устанавливать дополнительные драйверы для использования CUDA? – Peter Cassetta 8 May 2012 в 17:34

Я нахожу, что для запуска всех примеров CUDA, используя Bumblebee, вам нужно установить драйверы 295.40 отсюда и во время установки, выберите не переопределять config x11.

Тогда вам нужно использовать тот же драйвер для компиляции примеров и для запуска программы.

1
ответ дан 25 May 2018 в 11:53

Другие вопросы по тегам:

Похожие вопросы: