Как заставить работать Nvidia CUDA? (для рендеринга GPU в Blender)

Я пытаюсь заставить CUDA (хотя точно не знаю, что именно) работать в Ubuntu для рендеринга на GPU в программе 3D-моделирования Blender. На Windows 7 64-битная работает без нареканий. В Ubuntu я не могу включить функции обработки GPU в Blender. Я предполагаю, что Nvidia CUDA должна быть установлена.

Можно ли это сделать? Если да, могу ли я получить подробную информацию о том, как это сделать? Спасибо!

Запуск Ubuntu GNOME 15.04 x64 с GNOME 3.14, фирменных драйверов Nvidia GTX 660 и Nvidia.

3 ответа

Решение

Для установки CUDA из стандартных репозиториев выполните:

sudo apt-get install nvidia-cuda-toolkit nvidia-modprobe

Это будет в настоящее время установить V6.5 CUDA. На момент написания этой статьи V7.0 является самым последним и может быть получен прямо из репозиториев nVidia. Прочтите это предупреждение, прежде чем отправиться в репозитории nVidia.

Мне удалось найти решение на сайте Nvidia. У них есть пакет.deb, который вы должны загрузить и установить в своей системе, чтобы репозиторий мог устанавливать CUDA непосредственно из Nvidia. Вот как я получил это работает:

  1. Перейдите на https://developer.nvidia.com/cuda-downloads
  2. Выберите файл.deb, соответствующий вашей версии Ubuntu. (В то время у них не было пакета для Ubuntu 15.04, поэтому я выбрал пакет для 14.10. Это решило мою проблему, но я не уверен, что это создаст какие-либо проблемы совместимости в будущем. Это кажется ужасным риском, но я хотел сделать это известным.)
  3. Перейдите в файловый браузер, найдите загруженный пакет.deb и дважды щелкните (или в один клик), чтобы установить пакет через Ubuntu Software Center.
  4. Откройте терминал
  5. Тип: sudo apt-get update
  6. Тип: sudo apt-get установить cuda
  7. Подождите, пока пакеты загрузятся и установятся, затем перезагрузите компьютер (для меня пакеты были более 900 МБ, поэтому загрузка с моим подключением заняла около 20 минут)

После перезагрузки Blender смог использовать CUDA для запуска рендеринга и выпечки на GPU. Задача решена!

TL;DR: некоторые файлы отсутствуют. Чтобы получить их, выполните приведенную ниже команду в своем терминале.

Примечание: замените номер версии номером версии Blender, который вы используете.

      $ wget https://download.blender.org/release/Blender2.83/blender-2.83.5-linux64.tar.xz && \
sudo tar -C /usr/share/blender/scripts/addons/cycles/ \
-xvf blender-2.83.5-linux64.tar.xz \
blender-2.83.5-linux64/2.83/scripts/addons/cycles/lib/ \
--strip-components=5 && \
rm -f blender-2.83.5-linux64.tar.xz

После этого перезапустите Блендер.


В Blender из репозитория Debian/Ubuntu отсутствуют некоторые файлы для работы рендеринга Cycles CUDA/GPU.

Блендер из репозитория Debian/Ubuntu не будет работать с CUDA, потому что он не был упакован с ядром CUDA для циклов, или, точнее, рендеринг Cycles не был упакован с некоторыми файлами, которые должны быть сохранены.

Циклы без ядра CUDA

Блендер установлен из репозитория Debian/Ubuntu.

      $ ls /usr/share/blender/scripts/addons/cycles/lib
ls: cannot access '/usr/share/blender/scripts/addons/cycles/lib': No such file or directory

Циклы с ядром CUDA

      $ ls /usr/share/blender/scripts/addons/cycles/lib

ilter_sm_30.cubin  filter_sm_52.cubin  filter_sm_75.cubin  kernel_sm_37.cubin  kernel_sm_61.cubin
filter_sm_35.cubin  filter_sm_60.cubin  kernel_optix.ptx    kernel_sm_50.cubin  kernel_sm_70.cubin
filter_sm_37.cubin  filter_sm_61.cubin  kernel_sm_30.cubin  kernel_sm_52.cubin  kernel_sm_75.cubin
filter_sm_50.cubin  filter_sm_70.cubin  kernel_sm_35.cubin  kernel_sm_60.cubin

Резюме

Те *.cubinфайлы необходимы для работы рендеринга Cycles CUDA/GPU. И они отсутствуют в репозитории.

Установка не активирует возможности рендеринга CUDA/GPU в Blender, поскольку при этом не устанавливается ядро ​​Cycles CUDA. Вам не нужно устанавливать полную nvidia-cuda-toolkit, libcuda1достаточно для работы рендеринга Cycles CUDA/GPU.

Разумеется, необходим проприетарный драйвер NVIDIA.

Простой обходной путь

Я предполагаю, что драйвер NVIDIA уже был установлен. Если вы понятия не имеете, что это значит, ознакомьтесь с отличным ответом AskUbuntu .

Загрузите Blender с официального сайта и извлеките ядро ​​CUDA Cycles из tar-архива, который вы загрузили в /usr/share/blender/scripts/addons/cycles/lib.

Примечание. Текущая версия Blender LTS — 2.83. Измените версию Blender ниже соответственно, если вы используете другую версию Blender.

В Debian вы также должны запустить apt install libcuda1если он не был автоматически установлен после установки nvidia-driver

      $ sudo tar -C /usr/share/blender/scripts/addons/cycles/ \
-xvf blender-2.83.5-linux64.tar.xz \
blender-2.83.5-linux64/2.83/scripts/addons/cycles/lib/ \
--strip-components=5

Перезапустите Blender, и у вас должны быть рабочие циклы с включенным CUDA.

Более сложный обходной путь

Ядро Cycles CUDA можно скомпилировать самостоятельно. Посетите Blender Wiki для получения подробной информации.

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