Rob Bredow关于GPU加速渲染

为了揭示GPU作为渲染平台的真正优缺点,您需要做的第一件事就是大肆宣传。 Sony Pictures Imageworks长期以来一直与GPU加速生产工具的开发相关联,包括渲染和模拟,因此我们借此机会与Imageworks CTO Rob Bredow进行交流,以便独家了解主要工作室使用的工具。

3D世界:Imageworks何时首次开始使用GPU进行渲染?

Rob Bredow:我们一直在使用GPU生成最终帧的元素,一直回到Polar Express(下面),我们在2002年开始工作。所以我们在过去的八年里一直在这样做。

Polar Express上的工作使用了Splat,这是我们今天仍在使用的渲染器。它基本上使我们能够渲染大量重叠的精灵:非常适合模拟烟雾,某种火焰和相对低细节的气氛。对于那个特定的渲染器,我们也可以在软件中渲染,并且速度慢一百倍 - 有时甚至慢一千倍 - 因此GPU是一个真正的大提升。

3DW:但Splat不是你的主要制作渲染器,是吗?

RB:不,这是一个特殊用途的渲染器。它已被用于很多节目,但我们的主要渲染器是Arnold [最初由Marcos Fajardo编写的GI渲染器,现在由Fajardo和Imageworks的内部团队共同开发]。我相信设施中的每个节目现在都将它用作主要渲染器。

3DW:Arnold或者Arnold的组件将来会变成基于GPU的吗?

RB:Open Shading语言背后的目标之一[Imageworks目前的开源开发计划的一部分]是建立一个清晰的区域,我们可以为未来的计算平台定制渲染器:工程师和艺术家之间的语言之间的区别使用和实际执行后端。

该后端的第一个目标是CPU,这就是我们现在在生产中使用的目标。但OSL的设计目标包括拥有GPU后端,如果您现在浏览OSL的讨论列表,您会看到有人在使用GPU加速渲染器。所以这可能在未来发生:渲染的一个组件可能发生在GPU上,即使是像Arnold这样的东西。

3DW:但只是渲染的一个组成部分,而不是整个过程?

RB:鉴于纹理的复杂性和几何的复杂性,需要完整的GI,运动模糊,头发,次表面散射 - 我们在生产质量渲染器中认为理所当然的事情 - 今天并不适合在GPU中,它必须是组件。

3DW:那么哪些组件可以在GPU上高效计算?

RB:任何时候你都有机会做一些事情 - 即使是非常复杂的事情 - 连续数百万次,只要它不需要比你在GPU上更多的板载内存,这可能比在中央处理器。

但令人惊讶的是CPU今天的能力。我们正在[在CPU上]做几年前不可想象的事情:例如,具有完整GI和数百万头发的场景。而且我们每帧的渲染时间不到十小时,有时不到六小时。

Splat渲染器正在进行中,在2009年的Cloudy With a Meat of Meatballs的'意大利面龙卷风'场景中。

3DW:CPU架构是否会继续快速发展以推动GPU的发展?

RB:很难找到合适的平衡点。我们这里有完整的频谱。例如,我们有两个用于吸烟的渲染器。 Splat速度非常快,当你需要一个纤细的元素,以大气的方式填充屏幕时,它是完美的解决方案,因为你可以在几个小时内从头到尾做一个元素。

但是我们还有一个名为Svea的[基于CPU的]软件包,它是我们的卷渲染器。如果你需要一个具有许多漂亮细节的火山碎屑云,或者你在爱丽丝梦游仙境中看到的那种令人难以置信的大气效果 - 你愿意在这些元素中投入一两天 - 它是适合这项工作的正确工具。

因此,即使在特殊效果渲染领域,也存在一些与GPU优化相关的妥协。如果你愿意围绕它设计一个系统并把它交给一个才华横溢的艺术家,他们可以在一天内完成20次迭代,而不是一两次。但是,我们每天都在阿诺德(Arnold)抛出各种场景,在GPU上拥有成千上万的几何体和数百万个纹理,这是没有意义的。今天不行。也许在几年后它会。

3DW:Splat是从头开始为GPU编写的吗?

RB:是的。它旨在将整个场景拟合到GPU中,并具有所施加的所有约束。我们有一个在CPU上运行的Splat版本,但我们在编写GPU版本后编写了它。当我们看到渲染时间我们离开[CPU版本]时,它总是非常令人失望。但那是因为它不是一个非常好的CPU设计。在为GPU开发时,您采用的整体理念与CPU的理念完全不同。

3DW:那为什么Splat的GPU版本运行得那么好?

RB:因为我们能够以第一个API的设计方式使用GPU。我们与GPU通信的方式是通过OpenGL,这是一个高度优化,高度优化的路径。每当Nvidia或其他任何人推出新驱动程序时,它都会提高Splat的性能。如果您正在为GPU编写代码,则需要使用与视频游戏相同的硬件部分。

New GPUs like Nvidia’s 6GB Quadro 6000 are overcoming early issues with onboard memory.

像Nvidia的6GB Quadro 6000这样的新GPU正在克服板载内存的早期问题。

3DW:GPU的板载内存有多少问题?

RB:每年都变得不那么重要了。几年前,所有关于你可以在你可以直接解决的非常有限的内存中做些什么,并且有各种各样的策略,人们用来最大化它的使用并处理I / O回到机器的主要部分记忆。

现在我们在每个人的工作站[中高端专业Nvidia GPU]中拥有的标准显卡拥有256或512MB的内存,这是一个更有用的数量。它仍然是一个考虑因素,但它并不是它的问题。

3DW:并行计算的标准怎么样? Imageworks在某些工具中使用CUDA:仅仅是因为你使用的是Nvidia硬件,还是有一个更基本的原因你不使用OpenCL?

RB:OpenCL的承诺是一个伟大的承诺:您编写一次代码,然后在最有意义的架构上运行该代码,或者在您实际需要运行它时可用。那将是我们正朝着这个并行计算世界的圣杯。

但是我们还没有看到 - 也许它就在那里,我们还没有意识到 - 在我们需要的那种生产环境中,代码在CPU和GPU上交替运行。我们希望它能够实现,但目前我们仍在为CUDA编写专门针对我们今天使用的GPU或OpenGL编写的代码,这些代码将始终在未来的GPU上以优化的方式运行。

我们还没有编写任何围绕OpenCL设计的内容以及能够互换地同时针对CPU和GPU的想法。如果发生这种情况,我们利用它的第一个地方之一将是在开放着色语言中,在Arnold内部运行的着色器中。这对我们来说是一个很好的优化。

---

这次访谈是我们在3D World杂志第138期的“渲染GPU:点击率和神话”中的独家在线补充,其中我们采访了现成的软件开发世界,包括心理图像,皮克斯和下限。要了解有关在GPU上渲染的优缺点的更多信息,您可以通过单击杂志缩略图或下面的链接购买问题138的副本。

购买3D World的第138期(1月11日号)

阅读有关Imageworks的Open Shading Language项目的更多信息



翻译字数超限