GPU渲染

介绍

使用 GPU 渲染既能够使用你的显卡进行渲染,而不是CPU。这会加快渲染速度,因为如今的GPU的设计旨在能够胜任大量运算方面的应用。另一方面,在渲染复杂场景时,当使用相同显卡进行显示与渲染时,它们也会因有限的显存容量和交互性繁体而受到局限。

配置

To enable GPU rendering, go into the Preferences, and under the System tab, select the Compute Device(s) to use. Next, for each scene, you can configure to use CPU or GPU rendering in the Render properties.

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

NVIDIA CUDA

NVIDIA CUDA is supported for GPU rendering with NVIDIA graphics cards. We support graphics cards with compute capability 3.0 and higher. See the list of NVIDIA graphics cards with compute capabilities.

AMD OpenCL

OpenCL is supported for GPU rendering with AMD graphics cards, with GCN architecture 2.0 and above. To make sure your GPU is supported checkout this Wikipedia page.

AMD 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.

常见问题

为什么在渲染过程中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.

报错信息

Unsupported GNU version! gcc 4.5 and up are not supported!(不支持的GNU版本!不支持gcc 4.5及以上版本!)

在Linux系统下,根据你的GCC版本,你可能会收到此错误。有两种可能的解决方案:

使用备用编译器

如果安装了与安装的CUDA工具包版本兼容的较旧GCC,则可以使用它而不是默认编译器。这是通过在启动Blender时设置 CYCLES_CUDA_EXTRA_CFLAGS 环境变量来完成的。

从命令行启动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在第一次尝试使用GPU进行渲染时成功编译CUDA渲染内核。成功构建内核后,你可以像往常一样启动Blender,CUDA内核仍将用于渲染。

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错误:内核编译失败

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版本(官方或 实验版本) 是否支持您的图形卡。
  2. 如果您自己构建Blender,请尝试下载并安装更新的CUDA开发人员工具包。

通常用户不需要安装CUDA工具箱,因为Blender带有预编译的内核。

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.

另外一种解决方案是增大失去相应的等待时间;这会使在渲染计算力非常大的场景的时候,让用户界面的反应慢很多。 更多请参考.

CUDA 错误: 在 cuCtxSynchronize() 中的未知错误

一个未知的错误可能有很多原因,但有一种可能性是它超时。请参阅上述答案以获取解决方案。