CPU+GPU双管齐下 理解V-Ray3.6 CUDA混合渲染

文章来源: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

场景由Dabarti Studio提供

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

场景由Dabarti Studio提供

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倍。为了确定实际的速度差异,需要实际的基准测试。

发表评论

电子邮件地址不会被公开。 必填项已用*标注