GPU渲染
GPU 渲染能够使用你的显卡进行渲染,而不是CPU。这会加快渲染速度,因为如今GPU的设计旨在能够胜任大量运算方面的应用。另一方面,由于显存容量有限,它们在渲染复杂场景时也有一些限制,并且在使用相同的显卡进行显示和渲染时会出现交互性问题。
要启用GPU渲染,请进入 首选项 ‣ 系统 ‣ Cycles渲染设备 ,然后选择 CUDA 或 OpenCL 。接下来,您必须为每个场景设置以下步骤才能使用GPU渲染 属性 ‣ 渲染 ‣ 设备 。
支持的硬件
Blender支持两种不同的技术在GPU上渲染,具体取决于特定的GPU制造商。
NVIDIA CUDA
NVIDIA CUDA 支持使用 NVIDIA 显卡进行GPU渲染。Blender支持具有3.0及更高计算能力的显卡。为了确保您的GPU受支持,请参阅具有计算功能和支持的 NVIDIA 显卡列表 。
Windows、MacOS和Linux均支持NVIDIA CUDA GPU渲染。
AMD OpenCL
OpenCL 支持使用 AMD 显卡进行 GPU 渲染。Blender支持 GCN 第2代及以上的显卡。为了确保您的GPU受支持,请参阅具有GCN世代和支持的 GCN显卡列表 。
Windows 和 Linux 支持 AMD OpenCL GPU 渲染,但在 macOS 上不受支持。
支持特性和限制
GPU渲染支持与CPU渲染相同的所有功能,但两个功能除外:
- 开放着色语言。
- 高级的体积光采样以降低噪点。
常见问题
为什么在渲染过程中Blender没有反应?
显卡正在渲染时,它不能重新绘制用户界面,这会导致Blender无法响应。我们试图通过尽可能频繁地回馈GPU控制来避免这个问题,但是无法保证完全流畅的交互,特别是在复杂的场景中。这是显卡没有真正解决方案的限制,尽管我们可能在未来有所改进。
如果可能的话,最好配备多个GPU,其中的一个用于显示界面,另一个用于渲染。
为什么场景是通过CPU渲染的,而不是GPU?
这可能会有多种原因,但是最常见的是您的显存不足所致。我们目前只可渲染适显存容许范围内场景,而这通常会比CPU的小。需要注意的是,举例来说,8k、4k、2k和1k大小的图像纹理会分别占用256MB、64MB、16MB以及4MB的显存容量。
我们打算加入一套系统来支持超过GPU显存负载的场景,但短期内不会加入。
多个GPU可以用于渲染吗?
可以。打开 用户设置 ‣ 系统 ‣ 计算设备面板 ,按需进行设置即可。
多个GPU能够增加显存容量吗?
不能,每个GPU只能访问自身的显存。
哪种渲染方案更为快速?NVIDIA还是AMD?CUDA还是OpenCL?
目前Nvidia与CUDA的渲染速度最快,但这取决于您购买的硬件。CUDA和OpenCL在最新的中端GPU中大致相同。但是,CUDA在高端GPU方面是最快的。
报错信息
如果出现问题,请确保从NVIDIA或AMD网站来安装官方显卡驱动程序,或者通过Linux上的软件包管理器来安装。
不支持的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错误:无效的内核图像
如果您在Windows 64位系统下遇到此错误信息,请务必使用64位的Blender版本,而不要使用32位版本。
CUDA错误:内核编译失败
如果您安装了新的NVIDIA显卡,但Blender版本 CUDA工具包不支持,就可能会出现此错误。在这种情况下Blender可能会尝试为您的显卡动态构建内核,但失败。
在这种情况下,您可以:
- 检查最新的Blender版本(官方或 实验版本) 是否支持您的图形卡。
- 如果您自己构建Blender,请尝试下载并安装更新的CUDA开发人员工具包。通常用户不需要安装CUDA工具箱,因为Blender带有预编译的内核。
CUDA错误:内存不足
这通常意味着GPU中没有足够的显存容量来存储场景。目前我们只能渲染显存容量允许范围内的场景,而这通常比CPU的要小。详请参见上文内容。
NVIDIA OpenGL驱动与显示驱动程序失去连接
如果同时使用GPU来显示与渲染,Windows系统在GPU渲染计算时间方面存在局限。如果您的场景非常复杂,那么Cycles引擎就需要占用过多的GPU时间。通过降低性能面板中的平铺尺寸值可以让此问题得到缓解,但真正的解决方案只有使用多个相对独立的显卡分别进行界面显示与渲染。
另外一种解决方案是增大失去相应的等待时间;这会使在渲染计算力非常大的场景的时候,让用户界面的反应慢很多。 更多请参考.
CUDA 错误: 在 cuCtxSynchronize() 中的未知错误
一个未知的错误可能有很多原因,但有一种可能性是它超时。请参阅上述答案以获取解决方案。