GPU渲染

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

要启用 GPU 渲染,请进入 偏好设置 ‣ 系统 ‣ Cycles 渲染设备,然后选择 CUDAOptiXHIPoneAPIMetal。接下来,您必须在 属性 ‣ 渲染 ‣ 设备 中配置每个场景使用 GPU 渲染。

渲染技术

Blender 支持不同的技术在 GPU 上渲染,具体取决于特定的 GPU 制造商和操作系统。

CUDA -- NVIDIA

CUDA 在 Windows 和 Linux 上被支持,需要计算能力为 3.0 及以上的 Nvidia 显卡。为了确保你的 GPU 被支持,请看 Nvidia 显卡列表,其中有计算能力和支持的显卡。

OptiX -- NVIDIA

OptiX 支持 Windows 和 Linux,要求 Nvidia 显卡的计算能力达到 5.0 或更高,驱动程序版本至少为 470。要确保您的图形处理器受支持,请参阅 Nvidia 显卡列表

OptiX 利用 RTX 显卡的硬件光线追踪加速功能,提高了性能。

HIP -- AMD

在 Windows 和 Linux 上支持 HIP,要求使用 Vega 架构或更新的 AMD 显卡。同时支持独立 GPU 和 APU。

支持的 GPU 包括:

  • Radeon RX Vega 系列(不包括 Radeon VII)

  • Radeon RX 5000 系列

  • Radeon RX 6000 系列

  • Radeon RX 7000 系列

  • Radeon Pro WX 9100

  • Radeon Pro W6000 系列

最低驱动程序版本:

  • Windows:Radeon 软件 21.12.1 或 Radeon PRO 软件 21.Q4

  • Linux:Radeon 软件 22.10 或 ROCm 5.3

Please refer to AMD's website for more information about AMD graphics cards and their architectures.

在 Windows 系统中,最新驱动程序可提供实验性硬件光线追踪支持。这可以在偏好设置中启用。不过,目前在毛发渲染和退化三角形形状方面存在已知问题。

HIP 不支持图像纹理中的 裁剪 扩展模式。

oneAPI -- 英特尔

oneAPI 是一个计算库,支持 Windows 和 Linux 系统,需要使用 Xe HPG 架构的英特尔锐炫™显卡。支持光线追踪硬件加速。

支持的 GPU 包括:

  • 英特尔® 锐炫™ A-系列

最低驱动程序版本:

  • Windows:英特尔图形驱动 XX.X.101.4314

  • Linux:intel-level-zero-gpu 软件包 1.3.25812,通常通过 intel-compute-runtime 软件包 XX.XX.25812 提供

关于英特尔显卡及其架构的更多信息,请参考英特尔网站

Metal -- Apple (macOS)

配备 Apple Silicon、AMD 和英特尔显卡的苹果电脑支持 Metal。需要 macOS 13.0 或更新版本才能支持所有功能和显卡。

Light Trees and Shadow Caustics are not supported when using an AMD graphics card with Metal.

局限

常见问题

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

在老一代 GPU 上,显卡只能渲染或绘制用户界面。这会导致 Blender 在渲染时反应迟钝。在较新的 GPU 上,当使用大量内存或执行高成本的着色器时,繁重的场景也会导致 Blender 响应失灵,不过这种问题一般较少。

唯一完整的解决方案是使用专用 GPU 进行渲染,并使用另一个 GPU 进行显示。

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

可能有多种原因,但最常见的原因是你的显卡上没有足够的内存。通常情况下,GPU 只能使用 GPU 上的内存量(更多信息请参见多个 GPU 会增加可用内存吗?)。这通常比 CPU 可以访问的系统内存量小得多。对于 CUDA、OptiX、HIP 和 Metal 设备,如果 GPU 内存已满,Blender 会自动尝试使用系统内存。这对性能有影响,但通常还是会比使用 CPU 渲染的速度快。

多个 GPU 可以用于渲染吗?

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

多个 GPU 会增加可用内存吗?

通常不会,每个 GPU 只能访问自己的内存。

使用 NVLink 连接的 NVIDIA GPU 是个例外,在这种情况下,多个 GPU 可以共享内存,但性能成本较低。这可以通过偏好设置中的跨设备分配内存来启用。

哪个渲染更快?

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

错误信息

如果出现问题,请务必从 GPU 制造商网站或通过 Linux 上的包管理器安装官方显卡驱动程序。计算机制造商提供的显卡驱动程序有时会过时或不完整。

错误:内存不足

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

Note

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

The NVIDIA OpenGL driver lost connection with the display driver

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

另一种解决方案是增加超时时间,不过这会降低用户界面在呈现繁重场景时的响应速度。在此了解更多

不支持的 GNU 版本

在Linux上,根据你的GCC版本,你可能会得到这个错误。请参阅 Nvidia CUDA Installation Guide for 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 x.x and up are not supported!

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

CUDA 错误:内核编译失败

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

在这种情况下,您可以:

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

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

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