Understanding V-Ray Hybrid rendering


以CPU进行CUDA渲染

GPU代码很难除错。 当代码崩溃时,不可避免地可能只回传一个内核转储(kernel dump), 并不会提供关于代码到底哪个部分实际导致崩溃的信息。为了了解崩溃原因,开发人员必须将注释掉(comment out)代码的每个部分,直到找到罪魁祸首。 这个过程相当乏味且耗时。

 

为了使GPU除错更容易,我们的主要GPU开发人员Blago Taskov先生想到一个方法,就是将CUDA代码移植到CPU,在这样他可以使用更好的除错工具。一旦他成功移植后,Blago就可以确定哪些代码行导致崩溃。这样却意外带来重大发现! 现在,V-Ray CUDA在两个CPU和GPU上进行渲染,并且产生完全相同的结果,V-Ray Hybrid混合渲染由此正式诞生。

 

V-Ray混合渲染基准实验

为了找出通过将添加CPU到GPU混合后可提升多少渲染速度,我们在Dabarti工作室的好朋友们对两个V-Ray CUDA场景进行了基准检验。

根据这些场景,添加CPU有助于将渲染时间减少13%和25%。 这是一个值得鼓舞的速度提升,不再只是让这些强大的CPU闲置在那。

硬件

CPU:两个 Intel Xeon CPU E5-2687W v3 3.10 GHz,共40个逻辑CPU内核

RAM:128 GB

GPU:两个NVIDIA Quadro GP100,每个16GB,总共7,168个GPU内核

© Dabarti Studio

火星探测器的场景

发动机:V-Ray 3.6 CUDA

分辨率:1920×1080

Noise阈值:0.01

 

GPU + CPU

时间:4:27(267s)

 

仅GPU

时间:5:03(303s)

比GPU + CPU长13%

 

仅CPU

时间:26:25(1585s)

比单独的GPU长520%

盐和胡椒的场景

发动机:V-Ray 3.6 CUDA

分辨率:1920×1080

Noise阈值:0.01

 

GPU + CPU

时间:9:11(551s)

 

仅GPU

时间:11:33(693s)

比GPU + CPU长25%。

 

仅CPU

时间:40:52(2452s)

比GPU单独长354%。

我们来看看V-Ray Hybrid的几个实例:

 

最大化您的计算能力

如果你有一个强大的工作站,比方说四十个CPU核心和四个GPU,你可以利用其所有的计算能力。不会任其闲置

 

使用所有的渲染节点

许多艺术家和工作室都有GPU和CPU工作站以及CPU渲染节点。 使用V-Ray Hybrid,就可以使用所有硬件来进行渲染。

 

CPU回退(fallback)

如果您的场景不符合您的GPU RAM上限,您仍然可以在CPU上渲染。

 

随时升级到GPU

当您的CPU机器已经准备好更换,V-Ray Hybrid可以帮助您轻松地转换到更多的GPU渲染,同时继续利用现有的CPU资源。 另外,如果在工作站或渲染节点上有一个空的PCIe插槽,添加一个GPU可以提供明显的速度提升,而不需要更换整台计算机。

 

需要注意的几件事情

V-Ray Hybrid和V-Ray Production renderer

值得注意的是,V-Ray Hybrid(GPU-CPU CUDA)渲染器与V-Ray Production(CPU)渲染器是不同的,这两个引擎将持续保持分开。

 

GPU核心与CPU核心

虽然V-Ray Hybrid可以同时在CPU和GPU上渲染,但CPU内核和GPU内核也不尽相同。 例如,具有2560个内核的GPU不会单纯地是8核CPU的320倍。 为了确定实际的速度差异,需要实际进行基准检验。

About the author

Christopher Nichols

Chris is a CG industry veteran and Director of Chaos Group Labs. He can also be heard regularly as the host of the CG Garage podcast which attracts 20,000 weekly listeners. With a background in both VFX and Design, Chris has worked for Gensler, Digital Domain, Imageworks and Method Studios. His credits include Maleficent, Oblivion and Tron: Legacy.