GPU渲染

GPU 渲染能够使用你的显卡进行渲染,而不是CPU。这会加快渲染速度,因为如今GPU的设计旨在能够胜任大量运算方面的应用。另一方面,由于显存容量有限,它们在渲染复杂场景时也有一些限制,并且在使用相同的显卡进行显示和渲染时会出现交互性问题。

要启用GPU渲染,请进入 首选项 ‣ 系统 ‣ Cycles渲染设备 ,然后选择 CUDAOptixOpenCL 。接下来,您必须为每个场景设置以下步骤才能使用GPU渲染 属性 ‣ 渲染 ‣ 设备 。

Note

GPU 渲染只支持Windows 和 Linux 系统,目前不支持macOS。

支持的硬件

Blender支持两种不同的技术在GPU上渲染,具体取决于特定的GPU制造商。

NVIDIA 英伟达

支持使用 NVIDIA 显卡进行GPU渲染的 CUDA 和Optix。

CUDA

CUDA渲染选项需要计算能力为3.0或更高的显卡。 要确保您的GPU受支持,请参阅具有计算功能和受支持的显卡的 NVIDIA显卡列表

Note

Unsupported Features:

  • Open Shading Language

  • Advanced volume light sampling to reduce noise

OptiX

OptiX 渲染要求使用计算能力大于或等于5.0的显卡。为了确保你所使用的GPU受支持,请参阅受支持的Nvidia显卡列表 <https://developer.nvidia.com/cuda-gpus#compute>`__ OptiX 在支持硬件光线追踪的RTX系列显卡上能发挥最大性能(例如,基于Turning架构或之后的显卡)。OptiX渲染支持仍处于实验阶段,并且尚未支持全部功能,详情见下文。

Optix需要具有最新NVIDIA驱动程序的Geforce或Quadro RTX显卡。

Note

Unsupported Features:

  • Open Shading Language

  • Advanced volume light sampling to reduce noise

  • 烘焙

  • 分路路径追踪

  • 环境光遮蔽(AO)和倒角着色器节点

  • Combined CPU and GPU rendering

AMD

OpenCL 支持使用 AMD 显卡进行 GPU 渲染。Blender支持 GCN 第2代及以上的显卡。为了确保您的GPU受支持,请参阅具有GCN世代和支持的 GCN显卡列表

适用于Windows和Linux的最新Pro驱动可在 AMD 网站 上下载。

Note

Unsupported Features:

  • Open Shading Language

  • Advanced volume light sampling to reduce noise

常见问题

为什么在渲染过程中Blender没有反应?

显卡正在渲染时,它不能重新绘制用户界面,这会导致Blender无法响应。我们试图通过尽可能频繁地回馈GPU控制来避免这个问题,但是无法保证完全流畅的交互,特别是在复杂的场景中。这是显卡没有真正解决方案的限制,尽管我们可能在未来有所改进。

如果可能的话,最好配备多个GPU,其中的一个用于显示界面,另一个用于渲染。

为什么场景是通过CPU渲染的,而不是GPU?

这可能有很多种原因导致此情况发生,但是最常见的原因是因为你没有足够的显存用于渲染。通常来说,GPU只能访问自己的显存(详情见 下文 以获取更多信息)。显存大小通常小于CPU可访问的内存大小。如果你使用支持CUDA或OptiX渲染的设备,当显存已经满的的时候,Blender会自动使用系统内存。这会带来性能的下降,但总体上还是快于CPU渲染。此功能并不支持OpenCL渲染。

多个GPU可以用于渲染吗?

可以。打开 用户设置 ‣ 系统 ‣ 计算设备面板 ,按需进行设置即可。

多个GPU能够增加显存容量吗?

通常来说,不行。每个GPU只能访问自己的显存,但是有些GPU可以与其它GPU共享显存。这可以通过遵循 跨设备分布式内存 中的步骤启用共享。

哪种渲染方案更为快速?NVIDIA还是AMD?CUDA还是OpenCL?

取决于所使用的硬件。根据测试场景,不同的技术所需的计算时间也有差异。有关不同设备性能的最新信息,请浏览 Blender Open Data

报错信息

如果出现问题,请确保从NVIDIA或AMD网站来安装官方显卡驱动程序,或者通过Linux上的软件包管理器来安装。

Unsupported GNU version

On Linux, depending on your GCC version you might get this error. See the Nvidia CUDA Installation Guide for Linux for a list of supported GCC versions. There are two possible solutions to this error:

使用备用编译器

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

从命令行启动Blender,如下所示:

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

(替换兼容GCC编译器的名称或路径)。

删除兼容性检查

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

  1. #error -- unsupported GNU version! gcc x.x and up are not supported!

这将允许Cycles在第一次尝试使用GPU进行渲染时成功编译CUDA渲染内核。成功构建内核后,你可以像往常一样启动Blender,CUDA内核仍将用于渲染。

CUDA错误:内核编译失败

如果您有新的Nvidia显卡尚未支持您安装的Blender版本和CUDA工具包,则可能会出现此错误。在这种情况下,Blender可能会尝试为您的显卡动态构建内核并失败。

在这种情况下,您可以:

  1. 检查最新的Blender版本(官方或 实验版本) 是否支持您的显卡。

  2. 如果您自己构建Blender,请尝试下载并安装更新的CUDA开发人员工具包。

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

CUDA错误:内存不足

这通常意味着GPU没有足够的显存来储存场景。

Note

使用较小的纹理分辨率是减少内存使用量的一种方法。比如,8k、4k、2k 和 1k 图像纹理分别占 256MB、64MB、16MB 和 4MB 的内存。

NVIDIA OpenGL驱动与显示驱动程序失去连接

如果同时使用GPU来显示与渲染,Windows系统在GPU渲染计算时间方面存在局限。如果您的场景非常复杂,那么Cycles引擎就需要占用过多的GPU时间。通过降低性能面板中的平铺尺寸值可以让此问题得到缓解,但真正的解决方案只有使用多个相对独立的显卡分别进行界面显示与渲染。

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

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

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