Зображування, рендеринг за допомогою графічного процесора відеокарти – GPU Rendering

GPU rendering makes it possible to use your graphics card for rendering, instead of the CPU. This can speed up rendering because modern GPUs are designed to do quite a lot of number crunching. On the other hand, they also have some limitations in rendering complex scenes, due to more limited memory, and issues with interactivity when using the same graphics card for display and rendering.

To enable GPU rendering, go into the Preferences ‣ System ‣ Cycles Render Devices, and select either CUDA 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

NVIDIA CUDA is supported for GPU rendering with NVIDIA graphics cards. Blender supports 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.

NVIDIA CUDA GPU rendering is supported on Windows, macOS, and Linux.

AMD OpenCL

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 rendering is supported on Windows and Linux, but not on macOS.

Підтримувані функції та обмеження

GPU rendering supports all the same features as CPU rendering, except two:

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

Часто задавані питання – Frequently Asked Questions

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

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

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

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

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

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

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

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

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

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

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.

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

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:

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

(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

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

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. Перевірити, чи найостанніша версія Blender’а (official or 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

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.