GPU渲染

介绍

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

Cycles 有两种GPU渲染模式: CUDA , 在 NVIDIA 的显卡上运行的加速模式; 以及 OpenCL , AMD 的显卡上运行的加速模式。

配置

要想启用GPU渲染,请进入User Preferences(用户首选项),在System tab(系统标签)栏下,选择Compute Device(s)to use(用于计算的设备)。然后,你就可以在各个场景的Render properties(渲染属性)面板中配置使用CPU或GPU进行渲染了。

CUDA

NVidia CUDA 支持使用 NVIDIA 显卡进行GPU渲染。我们支持GTX 4xx往后的显卡(兼容2.0到6.1)。

Cycles要求在所有操作系统上都需要安装最新的Nvidia驱动程序。

CUDA显卡列表对应的着色模式版本

OpenCL

使用 AMD 显卡支持 OpenCL 的GPU渲染。(我们只支持显卡具有 GCN 架构2.0及以上(HD 7xxx 及以上)。不是所有的7系显卡都是GCN架构的,为了确保您的GPU支持,请查看 此Wikipedia页面

Note

Cycles要求最新的AMD驱动已经安装,所有平台的系统都需要。

支持特性和限制

概览支持的特性,请查看对比表格 特性

CUDA限制:
GTX 4xx/5xx显卡商的最大数量的纹理贴图支持限制为:95张位图纹理(PNG,`` JPEG``, ..)或者5张浮点纹理(OpenEXR, 16 bit TIFF, ..), GTX6xx 或以上显卡这个数为145和5 。

常见问题

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

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

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

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

这可能会有多种原因,但是最常见的是您的显存不足所致。我们目前只可渲染适显存容许范围内场景,而这通常会比CPU的小。需要注意的是,举例来说,8k、4k、2k和1k大小的图像纹理会分别占用256MB、64MB、16MB以及4MB的显存容量。

我们打算加入一套系统,来支持超过GPU内存负载的场景,但短期内不会加入。

多个GPU可以用于渲染吗?

可以。打开 用户设置(User Preferences) ‣ 系统( System) ‣ 计算设备面板(Compute Device Panel) ,按需进行设置即可。

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

不能,每个GPU只能访问自身的显存。

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

目前Nvidia与CUDA渲染速度最快,但这取决于您购买的硬件。目前,CUDA和OpenCL在最新的中端GPU中大致相同。但是,CUDA在高端GPU方面是最快的。

报错信息

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

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

删除兼容性检查

如果以上方法都不管用,在 ''/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错误:无效的内核图像

如果您在Windows 64位系统下遇到此错误信息,请务必使用64位的Blender版本,而不要使用32位版本。

CUDA错误:内核编译失败

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

在这种情况下,您可以:

  1. 检查最新的Blender版本(官方或 实验版本) 是否支持您的图形卡。
  2. 如果您自己构建Blender,请尝试下载并安装更新的CUDA开发人员工具包。

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

CUDA错误:内存不足

这通常意味着GPU中没有足够的显存容量来存储场景。目前我们只能渲染显存容量允许范围内的场景,而这通常比CPU的要小。详请参见上文内容。

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

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

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

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

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