Cray XK6能否运行实时光线追踪器?

5

我今天听说了Cray的新超级计算机——XK6,但是我有点困惑瓶颈在哪里。是在互连上吗?如果配置了500,000个16核处理器的XK6能否实现与《玩具总动员3》相当的实时图形保真度?在这里的“实时”是指60帧每秒,或者每帧大约16.7毫秒。

2个回答

6
纯计算量其实在从《玩具总动员3》或类似现代动画(或VFX)电影中渲染一帧的过程中所需的内容中占比很小。这些场景可能引用了数百GB的纹理,即使您能够准确地知道哪个子集的纹理将需要用于一帧,它也可能是数十GB,仍需要从磁盘上读取和/或通过网络传输。GPU或大规模并行分布式计算并不能加速这一过程。此外,渲染只是非常后期的步骤...为一帧准备几何输入(模拟流体、布料和头发,细分几何形状,从磁盘读取和解释大型场景)可能会相当耗时。
因此,只是随意举例(但这些是相当现实的),假设准备场景需要30分钟(加载模型、细分几何形状、一些小的模拟等),渲染需要4.5小时(其中,假设有30分钟用于从磁盘读取纹理和其他资源,剩下4小时用于“光线追踪”和其他计算)。如果XK6使光线追踪变得无限快,它只能将整个过程加速5倍(1小时仍然是难以串行化的准备和I/O)。这就是阿姆达尔定律。
现在,您可能会问自己:“游戏为什么能如此快?”它们有两种方法:(1)它们大幅度减少数据集(纹理大小、几何分辨率等),使其全部适合GPU并且加载关卡相对较快(奇怪的是,当您认为渲染是在“实时”中发生时,您作为用户没有计算到这一点);(2)它们在将光盘发布前不惜任何代价地进行计算、技巧和人力劳动来优化场景和算法,以便当它出现在玩家面前时可以快速渲染。
因此,总之,如果您想知道XK6的总计算能力是否足以在实时计算所需的所有纯数学内容以渲染电影帧,则是的,它可能足够了。但是,如果您想知道XK6是否能够根据渲染器需要的输入实际上实时渲染电影,则不能。XK6对于渲染这些电影帧的人们是否有用?不,它可能不值得重新编写所有软件(数百人年)的麻烦。

谢谢,我在想这可能是一个I/O限制的任务。考虑到从RAM读取与从磁盘读取相比的数量级加速,如果每帧所需的所有纹理都加载到RAM中,会怎样呢? - gonzo_taylor
如果您需要按顺序呈现大量帧(相同的环境、相同的资源),则可以预加载纹理,并将 I/O 分摊到所有这些帧上。但是,您需要约 1TB 的容量来存储纹理,这比目前最大的GPU卡提供的两个数量级还要大。 - Larry Gritz

0
从另一个角度来看,用户通常一次只呈现一个场景,然后进行小的更改并反复呈现。即使实时呈现单个场景,仍可能需要将数GB的纹理加载到GPU的RAM中。
像Cray这样使用“核心海”或大量现代CPU的超级计算机能否实时执行作业?是的,对于足够简单的场景而言是可以的。但对于更复杂的场景,例如需要在8MP(电影为4K x 2K,DSLR/独立类型电影为2MP)下每像素100+条光线,并且包含许多物体、阴影、雾、折射、漫反射光源等,则可能需要过多的计算,即使以24fps的速度也无法完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接