文章来源:https://labs.chaosgroup.com/index.php/rendering-rd/understanding-v-ray-hybrid-rendering/,欢迎转载,转载请注明出处。如有翻译问题欢迎批评指教。
场景由Dabarti Studio提供,使用V-Ray在2个GPU和2个CPU上混合渲染。
基于CPU的CUDA渲染
GPU代码可能难以调试。当代码崩溃时,不可避免地会出现这种情况,它只能返回一个内核转储,没有关于代码的哪个部分实际导致崩溃的信息。为了揭示原因,开发人员将注释掉代码的每个部分,直到找到罪魁祸首。这个过程可能是乏味和耗时的。
为了使GPU调试更容易,我们的首席GPU开发人员Blago Taskov的想法是将CUDA代码移植到CPU,在那里他可以使用更优秀的调试工具。一旦他开始工作,Blago可以确定哪些代码行导致崩溃。如此便带来了更大的发现。现在,V-Ray CUDA在CPU和GPU上同时呈现,并且产生完全相同的结果,V-Ray混合渲染正式诞生。
V-Ray混合渲染基准测试
为了找出添加CPU到GPU组合获得的速度提升,我们从Dabarti Studio的朋友处评估了两个V-Ray CUDA场景。
Hardware
CPU: 2 x Intel Xeon CPU E5-2687W v3 3.10 GHz, 总计40个逻辑核心(开启超线程)
内存: 128 GB
GPU: 2 x NVIDIA Quadro GP100 16GB, 总计7168个GPU核心
火星车场景
渲染引擎: V-Ray 3.6 CUDA
分辨率: 1920×1080
噪声阈值: 0.01
GPUs + CPUs
时间: 4:27 (267秒)
仅GPU
时间: 5:03 (303秒)
比GPU + CPU慢13%
仅CPU
时间: 26:25 (1585秒)
比仅GPU慢520%
盐和胡椒场景
渲染引擎: V-Ray 3.6 CUDA
分辨率: 1920×1080
噪声阈值: 0.01
GPUs + CPUs
时间: 9:11 (551秒)
仅GPU
时间: 11:33 (693秒)
比GPU+CPU慢25%
仅CPU
时间: 40:52 (2452秒)
比仅GPU慢354%
对于这些场景,添加CPU有助于将渲染时间减少13%和25%。这是一个可喜的速度提升,而不是让这些强大的CPU闲置。
我们来考虑下V-Ray混合渲染的几个实例:
最大化您的计算能力
如果您有一个强大的工作站,比如说40个CPU核心和4个GPU,您可以利用其所有的计算能力。不会造成闲置。
使用所有的渲染节点
许多艺术家和工作室都有GPU和CPU工作站以及CPU渲染节点。使用V-Ray混合渲染,他们可以使用他们拥有的所有硬件来渲染。
CPU反馈
如果您的场景不适合您的GPU显存限制,您仍然可以在CPU上渲染。
随时升级到GPU
随着CPU机器已经准备好被替换,V-Ray混合渲染可以帮助缓解过渡到更多的GPU渲染,同时继续利用现有的CPU资源。另外,如果在工作站或渲染节点上有一个空的PCIe插槽,添加一个GPU可以给带来本质的速度提升,而不需要更换整个机器。
要注意的几点
V-Ray混合渲染器和V-Ray产品渲染器
重要的是要注意,V-Ray Hybrid(GPU-CPU CUDA)混合渲染器与V-Ray Production(CPU)产品渲染器不同,两个引擎将继续保持分离。
GPU核心与CPU核心
虽然V-Ray混合渲染器可以同时在CPU和GPU上呈现,但CPU内核和GPU内核也不尽相同。例如,具有2560个内核的GPU不仅仅是8核CPU的320倍。为了确定实际的速度差异,需要实际的基准测试。