Рендеринг за допомогою графічного процесора відеокарти – GPU Rendering

GPU рендеринг робить можливим використання вашої графічної відеокарти для рендерингу, замість центрального процесора CPU. Це може прискорювати рендеринг, оскільки сучасні GPU розроблені для обчислення великої кількості даних. З іншого боку, вони також мають деякі обмеження для рендерингу складних сцен через більш обмежену пам’ять та проблеми із взаємодією при використанні однієї й тієї ж відеокарти для показу та рендерингу.

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 підтримує дві різні технології для рендера на GPU залежно від конкретного виробництва GPU.

NVIDIA

CUDA and Optix are supported for GPU rendering with NVIDIA graphics cards.

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, 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 is supported for GPU rendering with AMD graphics cards. Blender supports graphics cards with GCN generation 2 and above. To make sure your GPU is supported, see the list of GCN generations with the GCN generation and supported graphics cards.

AMD OpenCL GPU рендеринг підтримується на Windows та Linux, але не на macOS.

Підтримувані Функції та Обмеження – Supported Features and Limitations

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

  • Відкрита Мова Відтінення – Open Shading Language.
  • Просунутий відбір освітлення об’єму для скорочення шуму.

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

Часто Задавані Питання – Frequently Asked Questions

Чому Blender не реагує під час рендерингу?

Оскільки рендеринг відбувається за допомогою відеокарти, то вона не може перерисовувати інтерфейс користувача, що дає не реагування Blender’а. Ми намагаємося уникати цієї проблеми, даючи назад контроль над GPU так часто, як це можливо, але повністю плавна інтерактивність не може бути гарантована, особливо на важких сценах. Це обмеження відеокарт, для якого немає справжнього рішення, хоча ми можливо зможемо дещо покращити це у майбутньому.

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

Чому сцена, що рендериться на CPU, не рендериться на GPU?

Там може бути кілька причин, але найбільш поширена – нестача пам’яті на вашій відеокарті. Ми можемо наразі рендерити тільки сцени, що вписуються в обсяг пам’яті відеокарти, і він зазвичай менший, ніж можливий для рендерингу на CPU. Зауважте, що, наприклад, текстури зображення з роздільністю 8k, 4k, 2k та 1k займають відповідно 256MB, 64MB, 16MB та 4MB пам’яті.

Ми маємо намір додати систему для підтримки сцен, більших ніж пам’ять GPU, але це не буде зроблено найближчим часом.

Чи можна використовувати одночасно кілька GPU для рендерингу?

Так, перейдіть у Preferences ‣ System ‣ Compute Device Panel та сконфігуруйте це там, як потрібно.

Чи може одночасно кілька GPU збільшити доступну пам’ять?

Ні, кожна GPU може мати доступ тільки до її власної пам’яті.

Що рендерить швидше – NVIDIA чи AMD, CUDA чи OpenCL?

Поточно NVIDIA з CUDA дає найшвидший рендеринг, але це реально залежить від придбаного вами устаткування. Наразі, CUDA та OpenCL приблизно однакові з найновітніших GPU середнього класу. Проте, CUDA є найшвидшою для GPU елітного класу.

Повідомлення про Помилки – Error Messages

У випадку проблем, переконайтеся, що інсталювали офіційні драйвери графіки з вебсайту NVIDIA або AMD, чи через менеджер пакунків на Linux.

Unsupported GNU version! gcc 4.7 and up are not supported! – Непідтримувана версія GNU! gcc 4.7 та вище не підтримуються!

На Linux залежно від вашої версії GCC ви можете отримувати цю помилку. Існує два можливих рішення:

Використання альтернативного компілятора

Якщо ви маєте старіший інстальований GCC, що є сумісним з інстальованою версією інструментарію CUDA, то ви можете використати його замість стандартного компілятора. Це робиться шляхом установлення змінної середовища CYCLES_CUDA_EXTRA_CFLAGS при запуску Blender.

Запустіть Blender з командного рядка наступним чином:

CYCLES_CUDA_EXTRA_CFLAGS="-ccbin gcc-x.x" blender

(Підставте ім’я або шлях сумісного компілятора GCC).

Вилучення перевірок сумісності

Якщо вище не вдалося, то видаліть наступний рядок в /usr/local/cuda/include/host_config.h

#error -- unsupported GNU version! gcc 4.7 and up are not supported!

Це дозволить Cycles успішно компілювати ядро рендерингу CUDA при першому разі, коли він намагається використати ваш GPU для рендерингу. Як тільки це ядро вибудується успішно, то ви зможете запустити Blender, як звичайно, та ядро CUDA, як і раніше, буде використовуватися для рендерингу.

CUDA Error: Invalid kernel image – Помилка CUDA: Хибне зображення ядра

Якщо ви отримуєте цю помилку на Windows 64-bit, то переконайтеся, що використовуєте 64-bit збірку Blender’а, а не 32-bit версію.

CUDA Error: Kernel compilation failed – Помилка CUDA: Збій компіляції ядра

Ця помилка може трапитися, якщо ви маєте нову відеокарту від NVIDIA, що ще не підтримується даною версією Blender’а та встановленим інструментарієм CUDA. У цьому випадку Blender може намагатися динамічно будувати ядро для вашої відеокарти та дати збій.

У такому випадку ви можете:

  1. Перевірити, чи найостанніша версія Blender’а (офіційна або експериментальна – experimental builds) підтримує вашу відеокарту.
  2. Якщо ви вибудовуєте Blender самостійно, то спробуйте звантажити та інсталювати найновіший Інструментарій CUDA для розробників.

Зазвичай, користувачам не потрібно інсталювати Інструментарій CUDA, оскільки Blender поставляється з попередньо компільованими ядрами.

CUDA Error: Out of memory – Помилка CUDA: Недостатньо пам’яті

Це зазвичай означає, що не достатньо пам’яті для зберігання сцени на GPU. Ми можемо наразі рендерити тільки сцени, що вписуються в обсяг пам’яті відеокарти, і він зазвичай менший, ніж можливий для рендерингу на CPU. Детальніше про це дивіться вище.

The Nvidia OpenGL driver lost connection with the display driver – Драйвер OpenGL Nvidia втратив зв’язок з драйвером дисплею

Якщо GPU використовується одночасно для показу і рендерингу, то Windows має ліміт часу, під час якого GPU може здійснити обчислення рендера. Якщо ви маєте особливо важкі сцени, то Cycles може брати надто багато часу для GPU. Зменшення розміру плиток Tile Size на панелі Performance може полегшити цю проблему, але єдине реальне рішення – використовувати окремі відеокарти для показу та рендерингу.

Іншим рішенням може бути збільшення цього перепочинку – time-out, хоча це може зробити інтерфейс користувача менш реагованим при рендерингу важких сцен. Детальніше тут – Learn More Here.

CUDA error: Unknown error in cuCtxSynchronize() – Помилка CUDA: Невідома помилка в cuCtxSynchronize()

Невідома помилка може мати багато причин, але однією з можливих є перепочинок – time-out. Дивіться вище відповідь про можливі рішення.