Блендер не видит видеокарту

Обновлено: 17.05.2024

Не работает CUDA в Blender. Гибридная графика - nvidia+intel. Bumblebee, primus - работают. Установлен nvidia-cuda-toolkit. В R3 проблем не было.
Вывод User:

[fossa@Nout-V ~]$ vblank_mode=0 primusrun blender
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Read new prefs: /home/fossa/.config/blender/2.72/config/userpref.blend
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
CUDA cuInit: Unknown error

Сходу не скажу, надо будет посмотреть. Модуля этого у нас, действительно, нет.

А в R3 что выдает 'vblank_mode=0 primusrun blender' ?

И ещё - 'modinfo nvidia-uvm' (тоже в R3)?

modinfo nvidia-uvm' (тоже в R3) --- modinfo : ERROR : Module nvidia-uvm not found.
vblank_mode=0 primusrun blender R3 --- то же что и в R4, только не говорит про CUDA или nvidia.
Драйвера в R3 были 331. в R4 - 340.

Ясно. Спасибо за информацию.

Я скоро буду готовить обновление для драйверов nvidia340, посмотрю заодно, почему там nvidia-uvm не собирается. Судя по тому, что ребята из NVidia пишут, в версии 331.20 он появился.

Попробуйте, пожалуйста, вот что.
Отредактируйте /var/lib/dkms/nvidia340/340.24-5/source/dkms.conf (под root) так, чтобы в этом файле было следующее:

Старое содержимое dkms.conf перед этим можно удалить.

Затем выполните, тоже под root, такие команды:

Что они выводят?

Если всё прошло хорошо, модуль должен собраться и стать видимым для системы. Проверьте, что он есть, вызвав 'modinfo nvidia-uvm'.

Теперь можно попробовать ещё раз запустить blender. Посмотрим, как сейчас пойдёт.

В следующем обновлении пакетов с драйверами NVidia я эти изменения в dkms.conf тоже добавлю, чтобы не нужно было с ним вручную возиться.

В следующем обновлении пакетов с драйверами NVidia я эти изменения в dkms.conf тоже добавлю, чтобы не нужно было с ним вручную возиться.

Добрый день! Хотелось бы узнать - решили ли проблему по установке Bumblebee на ноуты с гибридной графикой Nvidia+Intel? Сейчас тестирую Rosa R4 на виртуалке по причине того,что на R3 плясал с бубном,пока установил драйвера правильно.

aboguckiy писал(а): Добрый день! Хотелось бы узнать - решили ли проблему по установке Bumblebee на ноуты с гибридной графикой Nvidia+Intel? Сейчас тестирую Rosa R4 на виртуалке по причине того,что на R3 плясал с бубном,пока установил драйвера правильно.

Я подготовил обновление для драйверов NVidia до версии 340.46. Исправил там и проблему с nvidia_uvm заодно. Сейчас наши ребята из команды QA всё проверяют. Если хотите, можете тоже поставить это обновление и проверить, что nvidia_uvm сейчас собирается автоматически, посмотреть, всё ли при этом работает.

Установить проще всего так: подключить соотв. репозиторий и выполнить обновление:

Все установилось, все работает. но CUDA работают только если запустить карту от root (в дальнейшем она отключается с помощью rmmod nvidia_uvm && systemctl restart bumblebeed.service)

Вероятно, это из-за того, что нужно загружать модуль nvidia-uvm, а права на загрузку модулей ядра имеет только root. Если бы не Optimus, можно было бы просто nvidia_uvm в автозагрузку прописать, но тут это не пройдёт: nvidia_uvm без модуля nvidia340 не загрузится, а тот тоже загружается только спец. образом, когда он нужен.

Вроде можно было с помощью /etc/modprobe.d/*.conf сделать, чтобы если грузится nvidia, грузился и nvidia_uvm заодно. Надо вспомнить, как это делается.

euspectre писал(а): Вроде можно было с помощью /etc/modprobe.d/*.conf сделать, чтобы если грузится nvidia, грузился и nvidia_uvm заодно. Надо вспомнить, как это делается.

Этот вариант - deprecated, если не ошибаюсь: modprobe может игнорировать /etc/modprobe.conf. Плюс, как modprobe его читает (если читает) - это вопрос.

Надёжнее так сделать: создать файл /etc/modprobe.d/nvidia_uvm.conf (под root) и вписать туда следующее:

На всякий случай можно перезагрузить систему и проверить, будет ли теперь nvidia_uvm грузиться автоматически при загрузке модуля nvidia340.

Если что, lsmod показывает, какие модули сейчас загружены.

Он и будет грузиться от root. Надо проверить, загрузится ли он автоматически вместе с модулем nvidia340 (он же - nvidia). Bumblebee грузит же модуль nvidia от имени root, а теперь, по идее, должен загрузить обоих.

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia 10548666 37
drm 302256 10 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia_uvm 35066 2
nvidia 10548666 46 nvidia_uvm
drm 302256 11 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia 10548666 37
drm 302256 10 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia_uvm 35066 2
nvidia 10548666 46 nvidia_uvm
drm 302256 11 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

Не видно от рута.
В обоих сполерах знак $ от пользователя [fossa@Nout-V ~]$ lsmod | grep nvidia
У меня от пользователя, при записи softdep nvidia340 post: nvidia_uvm выдает

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia_uvm 35066 2
nvidia 10548666 46 nvidia_uvm
drm 302256 11 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

[fossa@Nout-V ~]$ lsmod | grep nvidia
nvidia 10548666 37
drm 302256 10 ttm,i915,drm_kms_helper,nvidia
i2c_core 40643 7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nvidia,videodev

lsmod и от обычного пользователя запускать можно. Но почему nvidia_uvm не грузится автоматически - пока идей нет. Разве что, его не с помощью modprobe загружают, а insmod'ом, например. Да, пока неясно, как быть.

Господа, так cuda в блендере починили или нет?
Просто у меня Blender 2.74 не хочет переключаться на GPU (в вариантах только CPU)

Раз используется только дискретная видеокарта, всё проще. Загрузите модуль nvidia_uvm явно (автоматически он, похоже, не загружается), под root:

Затем запустите Blender и проверьте. Если заработает теперь, можно будет модуль и в автозагрузку добавить.

euspectre писал(а): lsmod и от обычного пользователя запускать можно. Но почему nvidia_uvm не грузится автоматически - пока идей нет. Разве что, его не с помощью modprobe загружают, а insmod'ом, например. Да, пока неясно, как быть.

Вот поставился пакет автоматом: x11-driver-video-nvidia346 и остальные.
Смотрю: rpm -qa x11-driver-video-nvidia346
И не нахожу файлов:

Вроде всё на месте. Странно. Если есть возможность получить лог работы Blender, может, там какая-то информация будет. Запустить Blender из консоли с какими-нибудь опциями для этого? Не знаю, как именно, т.к. в самом Blender не разбираюсь.

К багу, как обычно, приложите и данные hw-probe.

nvidia346, nvidia346-cuda-opencl, python-pycuda

Вроде конфиг не трогал. запускаю от root vblank_mode=0 primusrun blender
Всё определяет. и главное- рендерит. После выключения Blender - скрипт перезапуска "boom". иначе видеокарта не переключается (как хорошо, что есть индикатор на ноутбуке).
Скрипт "Boom"

В настройках выбрал OpenCL и в окне рендера GPU-вычисления.
После нажатия кнопки Анимация отрендерилась картинка на которой прозрачная модель (ели ели видно)
Если поставить на CPU то рендерит нормально.
В чем дело ? Помогите пожалуйста.
Версия если нужно 2.78
Видеокарта Radeon R7 250
Заранее спасибо за ответ.

DeletedCube

Знаток

Еще они пишут: "OpenCL support is still in an early stage and has not been optimized as much."
"Поддержка OpenCL пока еще на ранней стадии и еще недостаточно оптимизирована."

Учитывая, что полноценную поддержку CUDA они ввели относительно недавно, то значит, что они еще не добрались толком до OpenCL. Отсюда свои ограничения.

Jack_Savage

Пользователь сайта

То есть я могу рендерить только на процесоре ?
Просто 1 кадр 9 минут. А у меня на 3 минуты материал :С

Знаток

То есть я могу рендерить только на процесоре ?
Просто 1 кадр 9 минут. А у меня на 3 минуты материал :С

Может купить какой-нибудь GeForce c CUDA. Всё-равно понадобиться для других приложений, которые Вы когда-нибудь начнёте использовать. На AMD, я помню, у меня даже интерфейс в Гудини глючил. Так что AMD - это не серьёзно.

И кстати, OpenShader Language не работает, ни на nVidia, ни на AMD. Так что для некоторых вычислений CPU безальтернативен всё ещё.

Jack_Savage

Пользователь сайта

А перенести модель с анимацией, скилетом в Maya к примеру заморочно ?
Или она тоже на AMD не очень быстро работает ?
PS: Спасибо за ответы

Знаток

Хм, так у ментала тоже ограниченная поддержка GPU, если ничего не поменялось в последний год. Так что не очень понятен смысл такой рокировки. Конечно, там больше внешних рендеров существует, но это всё-равно работа - подгонять шейдеры под другой ренедер, не считая рига анимации, который слетит.

FBX, в принципе, но очень маловероятно, что всё перенесётся как должно. Не говоря уже о специфических вещах Блендера, вроде шейпов, гибких костей, драйверов, скриптов и т.п.

Если там совсем проект горит по времени, возможно лучшим решением будет аренда мощностей на рендерферме какой-нибудь. Они все на CPU работают, по понятным причинам. Там правда свои подводные камни. Например, сложный риг персонажей на РебусФарм не уходил, он требовал удалить слишком много модификаторов, которыми управлялась анимация, по сути запечь её всю. Что не так просто было.

Jack_Savage

Пользователь сайта

Хм, так у ментала тоже ограниченная поддержка GPU, если ничего не поменялось в последний год. Так что не очень понятен смысл такой рокировки. Конечно, там больше внешних рендеров существует, но это всё-равно работа - подгонять шейдеры под другой ренедер, не считая рига анимации, который слетит.


FBX, в принципе, но очень маловероятно, что всё перенесётся как должно. Не говоря уже о специфических вещах Блендера, вроде шейпов, гибких костей, драйверов, скриптов и т.п.


Если там совсем проект горит по времени, возможно лучшим решением будет аренда мощностей на рендерферме какой-нибудь. Они все на CPU работают, по понятным причинам. Там правда свои подводные камни. Например, сложный риг персонажей на РебусФарм не уходил, он требовал удалить слишком много модификаторов, которыми управлялась анимация, по сути запечь её всю. Что не так просто было.

Эх. Проект то не комерчиский я это для себя делаю.
Просто пока рендерится я нечего не могу делать за пк.
Вот и хочу быстрей сделать. Если убрать с перса шерсть то рендерится быстро будет но не красиво :С

Jack_Savage

Пользователь сайта

И еще. Каким образом движки в играх рендерят такие. сложные модели по 20 раз в секунду даже у меня на пк а у блендера уходит 9 минут на 1 раз ?

PS: Поставил 25 проходов. Ну так уже лучше. Почти такая же картинка но за 5 а не за 9 минут

DeletedCube

Знаток

И еще. Каким образом движки в играх рендерят такие. сложные модели по 20 раз в секунду даже у меня на пк а у блендера уходит 9 минут на 1 раз ?

Во-первых, нормально - это от 30 кадров в секунду.
Во-вторых, риалтайм рендеры построены по другому. Если коротко, то они собирают информацию об объектах в кадре и уже от них получают информацию, как они должны выглядеть на основе материалов, текстур, запеченных карт освещения, карт отражения и т.п.
В игровой графике чаще всего объекты не взаимодействуют между собой. Не работает каустика, преломление. Все эти вещи отображаются с помощью множества ухищрений.
Cycles работает иначе. Он относится к так называемым path tracing рендерам. То есть, чтобы получить картинку, из камеры испускаются лучи, они сталкиваются с объектами. Дальше на основе шейдеров продолжают отражаться, поглощаться, проникать сквозь объект. До тех пор пока не встретят источник света или вступит ограничение по отскокам. В первом случае получится светлый пиксель, во втором - темный (что значит тень). Там еще много особенностей. Но этот расчет хотя и долгий, но приближенный к реальному освещению.

Знаток

И еще. Каким образом движки в играх рендерят такие. сложные модели по 20 раз в секунду даже у меня на пк а у блендера уходит 9 минут на 1 раз ?

Если в двух словах: Если ты видишь фотореалистичный рендер из редактора - это результат пересчёта фотонов (сэмплов) приближенный к физике реального мира. Если в игре - это 100% художественная имитация реальности.

Там не всё рендерится одинаково, и не применяется RayTrace. Например, все отражения - это предваритально запечённая карта окружения, которая рендерится (часто с низким разрешением) только при входах в локацию, или с определённой частотой. Волосы, как бы реалистично они не выглядели в кадре, не являются волосами на самом деле. Кроме исключительных случаев, вроде Tomb Raider, где симуляция волос реализовывалась специальными инструкциями в графическом процессоре nVidia. И помните на сколько это было забавно на разных карточках, в момент когда игра вышла. Почему, собственно, это и была опциональная фича. По дефолту, и на консолях, волосы реализовывались обычными текстурами.
Все текстуры и нормали предварительно запечённые. Тени от персонажей если есть, рендерются с более низким разрешением чем всё остальное. Тени окружения могут быть вообще запечёнными в текстуры в момент загрузки локации в память. Внутренние помещения квартир на самом деле обычная плоскость. Например, в Battlefield 4 писали специальный шейдер, который смещал несколько планов комнаты относительно взгляда игрока, создавая иллюзию того, что там есть комната. Но это был один шейдер на полигоне.

Так, чего-то я уже более чем в двух словах пошёл. Но суть, в общем передал. Так что реалтаймовый рендеринг в игре это результат многих месяцев работы художников и программистов.

Глянь тут, народ пытался приблизить стандартный ренедер Блендера к тому, что выдаёт UE4. Получилось не 1:1, но в некоторых случаях сгодится.

Jack_Savage

Пользователь сайта

Если в двух словах: Если ты видишь фотореалистичный рендер из редактора - это результат пересчёта фотонов (сэмплов) приближенный к физике реального мира. Если в игре - это 100% художественная имитация реальности.

Там не всё рендерится одинаково, и не применяется RayTrace. Например, все отражения - это предваритально запечённая карта окружения, которая рендерится (часто с низким разрешением) только при входах в локацию, или с определённой частотой. Волосы, как бы реалистично они не выглядели в кадре, не являются волосами на самом деле. Кроме исключительных случаев, вроде Tomb Raider, где симуляция волос реализовывалась специальными инструкциями в графическом процессоре nVidia. И помните на сколько это было забавно на разных карточках, в момент когда игра вышла. Почему, собственно, это и была опциональная фича. По дефолту, и на консолях, волосы реализовывались обычными текстурами.
Все текстуры и нормали предварительно запечённые. Тени от персонажей если есть, рендерются с более низким разрешением чем всё остальное. Тени окружения могут быть вообще запечёнными в текстуры в момент загрузки локации в память. Внутренние помещения квартир на самом деле обычная плоскость. Например, в Battlefield 4 писали специальный шейдер, который смещал несколько планов комнаты относительно взгляда игрока, создавая иллюзию того, что там есть комната. Но это был один шейдер на полигоне.

Так, чего-то я уже более чем в двух словах пошёл. Но суть, в общем передал. Так что реалтаймовый рендеринг в игре это результат многих месяцев работы художников и программистов.

Глянь тут, народ пытался приблизить стандартный ренедер Блендера к тому, что выдаёт UE4. Получилось не 1:1, но в некоторых случаях сгодится.

И еще вопросик. Почему блендер делали сначала на CPU как я понял даже CUDA не давно прикрутили. Видеокарта же расчитана для расчетов видео.

Jack_Savage

Пользователь сайта


Знаток

Каустика, кстати, это проблема Блендера тоже. Ибо слишком долго. И в некоторых случаях имеет смысл её имитировать.

Действительно, попробуй что-нибудь оптимизировать. Можешь погуглить разные техники, подумать, что может помочь в твоём проекте.

Во-первых, блендеру 20+ лет, и когда его делали, никаких GPU, в том смысле, в котором мы их понимаем сегодня, ещё и в помине не было на рынке. Во вторых, у центральных процессоров и графических принципиально разные инструкции. Это не просто чипсет, который делает тоже самое, но быстрее. Поэтому под GPU нужно переписывать всю математику рендера. И кстати, изначально никакого фотореалистичного Cycles тоже не было. Был классический RayTrace.

Видео-карта изначально расчитана для вывода полноцветного изображения, в те времена, когда ресурсов компьютера для этого не хватало, и требовался отдельный вычислительный блок под это. Карточки середины 90-ых, например, состязались в том, кто больше цветов при большем же разрешении сможет выводить на экран) Позднее её научили считать 3Д графику (3D ускорители изначально были отдельными), ещё позднее в них запихнули физический процессор (который тоже когда-то был отдельный). Так что сегодняшние видео-карты это уже отдельные компьютеры по сути, работающие по своей собственной математикой, никак не пересекающиеся с центральным процессором. И да, это лучше всего подходит для расчёт света - быстрее. Но не все, кстати, могут быстро переписать свои рендеры. В основном или ренедер сразу GPU, или медленно и с косяками переписывается с CPU, когда разработчики понимают, что надо начинать конкурировать в этом сегменте, что естевственно, это грех не только Блендера.
Кстати, помню, что такой же переходны период был в играх. Когда 3D ускорители был ещё в диковинку большинству геймеров. А разработчикам нужно было давать что-то новое, и в то же время был страх терять менее богатую аудиторию - в некоторых играх был выбор Software или Hardware рендеринг. В первом случае считалось на процессоре, во втором с ускорителем. Иногда, правда, это был не более чем маркетинговый ход (типа, может работать и без ускорителя, лохи), потому что разрыв в производительность слишком колоссальный, и софты были не сильно играбельны на среднем железе без ускорителя. Но было и наоборот, когда поддержка ускорителя криво запиливалась, просто чтобы такая возможность была, хотя игра нормально работала и без. Иногда дополнительные фичи были привязаны к ней, более реалистичная вода, например, или трава, и там тоже был маркетинг. В общем, всё как обычно.

Мне кажется, Вам стоит подучить матчасть. Вопросы какие-то странные. То хочу чтобы одна кнопка сразу рендерила красиво, но не понимаете что происходит на рендере и почему. Мы тоже не поймём, потому что вчера нас там не было)

Cycles поддерживает два режима визуализации на GPU: CUDA, который предпочтителен для графических карт Nvidia, и OpenCL, который поддерживает визуализацию на графических картах AMD.

Конфигурирование¶

Для включения визуализации на GPU, откройте окно Параметры и на вкладке Система выберите используемое Устройство расчёта. Затем, для каждой сцены, в панели Визуализация вы сможете настроить использование визуализации на CPU или на GPU.

Cycles требует установки самых свежих драйверов Nvidia, для всех операционных систем.

OpenCL¶

Cycles требует установки самых свежих драйверов AMD, для всех операционных систем.

Поддерживаемые возможности и ограничения¶

Обзор поддерживаемых возможностей и сравнение технологий приведены в соответсвующем разделе .

Ограничения CUDA: Максимальное количество индивидуальных текстур ограничено 88 целочисленными текстурами ( PNG , JPEG и так далее) и 5 текстурами с плавающей запятой ( OpenEXR , 16-битный TIFF и прочие) на картах серии GTX 4xx/5xx. Более поздние карты не имеют такого ограничения.

Часто задаваемые вопросы¶

Почему Blender перестаёт отвечать во время визуализации?¶

Когда графическая карта занята визуализацией, она не может перерисовывать пользовательский интерфейс, из-за чего Blender перестаёт отвечать. Мы пытаемся обойти эту проблему, забирая контроль над GPU как можно чаще, но гарантировать полностью гладкую работу мы не можем, особенно на тяжёлых сценах. Это ограничение графических карт и для него не существует стопроцентно работающего решения, хотя мы и постараемся в будущем улучшить этот момент.

Если у вас есть возможность, лучше установить более одного GPU и использовать один из них для отображения, а остальные задействовать для визуализации.

Почему сцена, которая визуализируется на центральном процессоре, не визуализируется на видеокарте?¶

Для этого существует множество причин, но самая часто встречающаяся - на вашей видеокарте недостаточно памяти. На текущий момент мы можем визуализировать только те сцены, которые влезают в память видеокарты, которая обычно меньше памяти, доступной центральному процессору. Обратите внимание, что, например, изображения текстур размерами 8k, 4k, 2k и 1k занимают, соответственно, 256Мб, 64Мб, 16Мб и 4Мб памяти.

Мы намерены добавить систему для поддержки сцен больших, чем имеющаяся память видеокарты, но это будет не скоро.

Можно ли для визуализации использовать несколько видеокарт?¶

Да, перейдите в Параметры ‣ Система ‣ Устройство расчёта ( User Preferences ‣ System ‣ Compute Device Panel ) и настройте устройства по своему вкусу.

Могут ли несколько видеокарт увеличить доступную память?¶

Нет, каждая видеокарта имеет доступ только к своей собственной памяти.

Какой рендер быстрее: Nvidia или AMD, CUDA или OpenCL?¶

Currently Nvidia with CUDA is rendering fastest, but this really depends on the hardware you buy. Currently, CUDA and OpenCL are about the same in the newest mid-range GPUs. However, CUDA is fastest in the respect of high-end GPUs.

Unsupported GNU version! gcc 4.7 and up are not supported! (Неподдерживаемая версия GNU! gcc 4.7 и старше не поддерживаются!)¶

On Linux, depending on your GCC version you might get this error. There are two possible solutions:

Use an alternate compiler

If you have an older GCC installed that is compatible with the installed CUDA toolkit version, then you can use it instead of the default compiler. This is done by setting the CYCLES_CUDA_EXTRA_CFLAGS environment variable when starting Blender.

Launch Blender from the command line as follows:

(Substitute the name or path of the compatible GCC compiler).

Remove compatibility checks

If the above is unsuccessful, delete the following line in /usr/local/cuda/include/host_config.h

This will allow Cycles to successfully compile the CUDA rendering kernel the first time it attempts to use your GPU for rendering. Once the kernel is built successfully, you can launch Blender as you normally would and the CUDA kernel will still be used for rendering.

CUDA Error: Invalid kernel image (Ошибка CUDA: Неверное ядро изображения)¶

Если вы получили эту ошибку на 64-битной MS-Windows, убедитесь, что вы используете 64-битную сборку Blender, а не 32-битную.

CUDA Error: Kernel compilation failed (Ошибка CUDA: Сбой компиляции ядра)¶

Эта ошибка может возникнуть, если у вас новая карта Nvidia, которая пока ещё не поддерживается вашей версией Blender’а, а у вас установлен набор инструментов CUDA. В этом случае Blender может попытаться динамически собрать ядро для вашей графической карты и не преуспеть в этом.

В таком случае вы можете:

  1. Check if the latest Blender version (official or experimental builds) supports your graphics card.
  2. Если вы сами собирали Blender, попробуйте скачать и установить новейший набор инструментов для разработчика CUDA.

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

CUDA Error: Out of memory (Ошибка CUDA: Не хватает памяти)¶

Обычно эта ошибка означает, что для хранения сцены на видеокарте не хватает памяти. На текущий момент мы можем визуализовывать только те сцены, которые влезают в память видеокарты, которая обычно меньше памяти, доступной центральному процессору. Подробности смотрите выше.

The Nvidia OpenGL driver lost connection with the display driver (Драйвер Nvidia OpenGL потерял соединение с драйвером дисплея)¶

Если видеокарта используется как для обычной работы, так и для визуализации, MS-Windows имеет ограничение на время, которое видеокарта может посвятить вычислению визуализации. Если у вас есть особенно тяжёлые сцены, Cycles может занять слишком много времени видеокарты. Уменьшение размера плиток в панели .*Производительность* может облегчить эту проблему, но единственным реальным решением является использование отдельной видеокарты для визуализации.

Another solution can be to increase the time-out, although this will make the user interface less responsive when rendering heavy scenes. Learn More Here.

CUDA error: Unknown error in cuCtxSynchronize() (Ошибка CUDA: Неизвестная ошибка в cuCtxSynchronize())¶

An unknown error can have many causes, but one possibility is that it is a time-out. See the above answer for solutions.

To enable GPU rendering, go into the Preferences ‣ System ‣ Cycles Render Devices , and select either CUDA, Optix or OpenCL. Next, you must configure each scene to use GPU rendering in Properties ‣ Render ‣ Device .

Supported Hardware¶

Blender supports two different technologies to render on the GPU depending on the particular GPU manufacture.

NVIDIA¶

CUDA requires graphics cards with compute capability 3.0 and higher. To make sure your GPU is supported, see the list of NVIDIA graphics cards with the compute capabilities and supported graphics cards. CUDA GPU rendering is supported on Windows, macOS, and Linux.

For RTX graphics cards with hardware ray tracing support (e.g. Turing), Optix can be used for better performance. Optix support is still experimental and does not yet support all features, see below for details.

Optix requires Geforce or Quadro RTX graphics card with recent NVIDIA drivers, and is supported on Windows and Linux.

AMD OpenCL GPU rendering is supported on Windows and Linux, but not on macOS.

Поддерживаемые возможности и ограничения¶

CUDA and OpenCL rendering supports all the same features as CPU rendering, except two:

  • Open Shading Language.
  • Advanced volume light sampling to reduce noise.

Optix support is experimental and does not yet support the following features:

  • Baking
  • Brachend Path Tracing
  • Ambient Occlusion and Bevel shader nodes
  • Combined CPU + GPU rendering
  • Using CPU memory for bigger scenes

Часто задаваемые вопросы¶

Почему Blender перестаёт отвечать во время визуализации?¶

Когда графическая карта занята визуализацией, она не может перерисовывать пользовательский интерфейс, из-за чего Blender перестаёт отвечать. Мы пытаемся обойти эту проблему, забирая контроль над GPU как можно чаще, но гарантировать полностью гладкую работу мы не можем, особенно на тяжёлых сценах. Это ограничение графических карт и для него не существует стопроцентно работающего решения, хотя мы и постараемся в будущем улучшить этот момент.

Если у вас есть возможность, лучше установить более одного GPU и использовать один из них для отображения, а остальные задействовать для визуализации.

Почему сцена, которая визуализируется на центральном процессоре, не визуализируется на видеокарте?¶

There maybe be multiple causes, but the most common is that there is not enough memory on your graphics card. Typically while using GPU rendering the GPU can only use the amount of memory that is on the GPU. This is usually much smaller then the amount of system memory that the CPU uses. In the case that the GPU runs out of memory Blender will automatically try to also use system and GPU memory. This has a performance impact but it is still faster than using CPU rendering. This feature does not work on OpenCL rendering.

Можно ли для визуализации использовать несколько видеокарт?¶

Yes, go to Preferences ‣ System ‣ Compute Device Panel , and configure it as you desire.

Могут ли несколько видеокарт увеличить доступную память?¶

Нет, каждая видеокарта имеет доступ только к своей собственной памяти.

What renders faster, NVIDIA or AMD, CUDA or OpenCL?¶

Currently NVIDIA with CUDA is rendering fastest, but this really depends on the hardware you buy. Currently, CUDA and OpenCL are about the same in the newest mid-range GPUs. However, CUDA is fastest in the respect of high-end GPUs.

In case of problems, be sure to install the official graphics drivers from the NVIDIA or AMD website, or through the package manager on Linux.

Unsupported GNU version! gcc 4.7 and up are not supported! (Неподдерживаемая версия GNU! gcc 4.7 и старше не поддерживаются!)¶

On Linux, depending on your GCC version you might get this error. There are two possible solutions:

Use an alternate compiler

If you have an older GCC installed that is compatible with the installed CUDA toolkit version, then you can use it instead of the default compiler. This is done by setting the CYCLES_CUDA_EXTRA_CFLAGS environment variable when starting Blender.

Launch Blender from the command line as follows:

(Substitute the name or path of the compatible GCC compiler).

Remove compatibility checks

If the above is unsuccessful, delete the following line in /usr/local/cuda/include/host_config.h

This will allow Cycles to successfully compile the CUDA rendering kernel the first time it attempts to use your GPU for rendering. Once the kernel is built successfully, you can launch Blender as you normally would and the CUDA kernel will still be used for rendering.

CUDA Error: Invalid kernel image (Ошибка CUDA: Неверное ядро изображения)¶

If you get this error on Windows 64-bit, be sure to use the 64-bit build of Blender, not the 32-bit version.

CUDA Error: Kernel compilation failed (Ошибка CUDA: Сбой компиляции ядра)¶

This error may happen if you have a new NVIDIA graphics card that is not yet supported by the Blender version and CUDA toolkit you have installed. In this case Blender may try to dynamically build a kernel for your graphics card and fail.

В таком случае вы можете:

  1. Check if the latest Blender version (official or experimental builds) supports your graphics card.
  2. Если вы сами собирали Blender, попробуйте скачать и установить новейший набор инструментов для разработчика CUDA.

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

CUDA Error: Out of memory (Ошибка CUDA: Не хватает памяти)¶

Обычно эта ошибка означает, что для хранения сцены на видеокарте не хватает памяти. На текущий момент мы можем визуализовывать только те сцены, которые влезают в память видеокарты, которая обычно меньше памяти, доступной центральному процессору. Подробности смотрите выше.

One way to reduce memory usage is by using smaller resolutions for textures. For example, 8k, 4k, 2k, and 1k image textures take up respectively 256MB, 64MB, 16MB and 4MB of memory.

The NVIDIA OpenGL driver lost connection with the display driver¶

If a GPU is used for both display and rendering, Windows has a limit on the time the GPU can do render computations. If you have a particularly heavy scene, Cycles can take up too much GPU time. Reducing Tile Size in the Performance panel may alleviate the issue, but the only real solution is to use separate graphics cards for display and rendering.

Another solution can be to increase the time-out, although this will make the user interface less responsive when rendering heavy scenes. Learn More Here.

CUDA error: Unknown error in cuCtxSynchronize() (Ошибка CUDA: Неизвестная ошибка в cuCtxSynchronize())¶

An unknown error can have many causes, but one possibility is that it is a time-out. See the above answer for solutions.

© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License


По идеи, если OPENCL активна, видеокарта должна работать.
Мониторинг на AMD показывает погоду на Марсе, особенно под линуксом.
Ориентируйся по шуму вентиляторов.
Погоняй на рендер сцену с разными настройками.
Посмотри как быстрее будет получаться.
Показать полностью…

Зы, хз пофиксили ли, уже с полгода прошло.
Бенч с бмв при рендер на карте какой-то материал выдавал чёрным. Блеск или отражение, или хз че. В винде и линуксе.
На ноуте fx705dy видюха fx560x.
Баг тогда не стал оформлять, подумал что это на фиг никому не нужно.
Две почти игровые модели, с похожей начинкой, никто на них не будет блендер включать. Партия ноутов мааааленькая.
Может это тоже Баг, что блендер не работает)))

Здравствуйте форумчане!
Проблема в следующем:
Установил Blender на свой ноутбук (видеокарты интегрированная и дискретная) на Manjaro 15.12
в настройках blenderа устройство расчёта (Compute Device) должен быть выбор между CPU и GPU, но в меню выбора GPU нет
Драйвера video-hybrid-intel-nouveau-bumblebee замена на другие драйвера также не помогает. Запуск через optirun не даёт результатов.

lspci -k | grep VGA -A2
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
Subsystem: Acer Incorporated [ALI] Device 0647
Kernel driver in use: i915
— 01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 640M] (rev ff)
Kernel modules: nouveau
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57785 Gigabit Ethernet PCIe (rev 10)

Любители повозиться с трёхмерной компьютерной графикой наверняка слышали о возможности рендерить сцены с помощью процессора видеокарт. В этой статье пойдёт речь о настройке программного окружения и редактора Blender для реализации этой возможности.

Основа всего - программно-аппаратная технология CUDA, созданная в недрах компании NVidia и применяемая в современных видеокартах GeForce.

Что даёт использование CUDA? Для сравнения, ниже представлены результаты рендеринга одной и той же сцены и одинаковыми параметрами. Одно лишь различие - в первом случае для рендеринга используется центральный процессор, а во втором - процессор видеокарты.



Результат рендеринга сцены посредством Cycles и центрального процессора.
Время обработки: 443 секунды (7 минут 23 секунды).
Результат рендеринга сцены посредством Cycles и технологии CUDA, использующей процессор видеокарты.
Время обработки: 197 секунд (3 минуты 17 секунд).

Как видно, графический результат практически одинаковый, а время на построение почти в два раза меньше. Если это анимация или какой-то большой проект, то время на рендеринг можно существенно сократить, используя CUDA.

Дано: желание; компьютер с видеокартой от NVidia (поддерживающей CUDA!); установленный и настроенный дистрибутив Ubuntu 14.04; установленный редактор 3D-графики Blender.
Задача: настроить программно-аппаратный рендеринг в Blender.
Уровень подготовки пользователя: средний. Так как дело будет касаться установки драйверов для видеокарты, позаботьтесь об альтернативном доступе в сеть Интернет на тот случай, если с установкой будут проблемы.
Решение:

Установка дополнительных пакетов

Удобным для себя способом устанавливаем следующие пакеты: nvidia-331-updates, nvidia-settings, nvidia-cuda-toolkit , а также их зависимости. У автора, на момент написания статьи, в репозиториях Ubuntu была готова версия 331 закрытых драйверов для NVidia. Не исключено, что будут версии по-новее - пробуйте ставить последнюю, а в случае проблем, пробуйте ставить предыдущие версии. Автор рекомендует дополнительно установить пакет openssh-server на тот случай, если возникнет проблема с работой видеодрайвера и не будет возможности работать даже в консольном режиме - аварийно, можно будет зайти с другого компьютера по сети.

После установки - перезагрузите компьютер.

Проверить работоспособность аппаратного закрытого драйвера можно через графическую утилиту "NVIDIA X Server Settings" или посмотреть наличие загруженного модуля nvidia:



Если модули загружаются и утилита показывает информацию по драйверу и видеокарте, то переходим к настройке Blender`а.

Настройка и проверка

Подразумевается, что пользователь ориентируется в менюшках Blender`а. Запускаем Blender и переходим в меню "User Preferences".



Далее сдвигаем нижнюю границу верхнего меню и переходим в "System". Спускаемся вниз этой страницы и слева находим секцию "Compute Device". Должна появиться кнопка "CUDA" (позиция 1). Активируем её и ниже должна появиться модель карты (позиция 2). Далее сохраняем настройки путём нажатия на "Save User Settings".





Выбираем метод рендеринга "GPU compute" (позиция 2) и сам рендерер "Cycles Render" (позиция 3). Запускаем рендеринг и наблюдаем за ходом процесса. Для сравнения, проделываем проверку с рендерингом только на центральном процессоре. На этом настройка завершена.

Особенность в производительности

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



Результат рендеринга сцены посредством Cycles и центрального процессора.
Время обработки: 112 секунд (1 минута 52 секунды).
Результат рендеринга сцены посредством Cycles и технологии CUDA, использующей процессор видеокарты.
Время обработки: 202 секунды (3 минуты 22 секунд).

На стенде использовался процессор с такими характеристиками:

На машине используется программная регулировка частоты процессора и когда идёт непосредственно работа по рендерингу, частота повышается до максимума. На машине использовалась такая же программная конфигурация, что и при написании статьи.

В данном случае, рендеринг посредством центрального процессора на порядок быстрее, чем через видеокарту. Если свести результаты обоих тестов, то получается такая картина:

Процессор Кол-во ядер Bogomips Размер кэша, Кб Видеокарта Время рендеринга CPU, сек. Время рендеринга CUDA, сек.
Intel Celeron CPU E1500 @ 2.20GHz 2 4388.89 512 GeForce GT630, 4ГБ 443 197
Intel Pentium CPU G2010 @ 2.80GHz 2 5587.41 3072 GeForce GT630, 2ГБ 112 202

Обе машины показали практически одинаковые значения времени рендеринга через CUDA - можно предположить, что это физический предел видеокарты.

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

Читайте также: