gpt4 book ai didi

gpu - 为什么我们使用 CPU 而不是 GPU 进行光线追踪?

转载 作者:行者123 更新时间:2023-12-03 07:44:26 24 4
gpt4 key购买 nike

在对光栅化和光线追踪做了一些研究之后。我发现互联网上没有太多关于 CPU 如何用于光线追踪的信息。我遇到了关于皮克斯以及他们如何在 CPU 上预渲染汽车 2 的文章。这需要他们每帧 11.5 小时。在相同的图像质量下,GPU 会不会以更快的速度渲染?
http://gizmodo.com/5813587/12500-cpu-cores-were-required-to-render-cars-2
https://www.engadget.com/2014/10/18/disney-big-hero-6/
http://www.firstshowing.net/2009/michael-bay-presents-transformers-2-facts-and-figures/
干杯,
山姆

最佳答案

我是一家拥有专有渲染器的大型 VFX 和动画功能工作室的渲染软件架构师之一(不是皮克斯,虽然我曾经是那里的渲染软件架构师,很久很久以前)。

几乎所有高质量的电影渲染(在所有大工作室,所有主要渲染器)都只有 CPU。造成这种情况的原因有很多。没有特别的顺序,一些真正引人注目的让你了解问题的味道:

  • 只有当一切都在内存中时,GPU 才会运行得很快。最大的GPU卡有,什么,12GB左右,它必须容纳一切 .好吧,我们通常使用 30GB 的几何图形和引用 1TB 或更多纹理的场景渲染。无法将其加载到 GPU 内存中,它实际上太大了两个数量级。所以 GPU 根本无法处理我们最大(甚至平均)的场景。 (使用 CPU 渲染器,我们可以在需要时从磁盘分页。GPU 不擅长。)
  • 不要相信炒作,使用 GPU 进行光线追踪并不是明显战胜 CPU。 GPU 擅长高度连贯的工作(一次对大量数据做同样的事情)。光线追踪非常不连贯(每条光线可以走不同的方向,与不同的对象相交,为不同的 Material 着色,访问不同的纹理),因此这种访问模式非常严重地降低了 GPU 性能。直到最近,GPU 光线追踪才能与最好的基于 CPU 的光线追踪代码相匹配,即使它已经超过了它,也远远不够,扔掉所有旧代码并重新开始使用有缺陷的 GPU 脆弱代码.最大、最昂贵的场景是 GPU 速度稍快的场景。在简单的场景中跑得更快对我们来说并不重要。
  • 如果您在基于 CPU 的渲染器中有 50 或 100 人年的生产强化代码,您只是不要为了获得 2 倍的加速而将其丢弃并重新开始。软件工程的努力、稳定性等更为重要,也是更大的成本因素。
  • 同样,如果您的工作室投资了一个拥有 20,000 个 CPU 内核的数据中心,并且全部采用最小、最节能和最高效的外形尺寸,那么这也是一项沉没成本投资,您不会轻易放弃。用包含顶级 GPU 的新机器替换它们会大大增加渲染农场的成本,而且它们更大并产生更多热量,因此它实际上可能不适合您的建筑物。
  • Amdahl 定律:实际的“渲染”本身只是生成场景的一个阶段,GPU 对此没有帮助。假设完全生成场景并将其导出到渲染器需要 1 小时,“渲染”需要 9 小时,在这 9 小时中,一个小时是从磁盘读取纹理、体积和其他数据。因此,在用户体验渲染的总共 10 小时(按下按钮直到最终图像准备好)中,8 小时可能会通过 GPU 加速。因此,即使 GPU 在该部分的速度是 CPU 的 10 倍,您也会从 10 小时缩短到 1+1+0.8 = 近 3 小时。因此 10 倍 GPU 加速仅转化为 3 倍实际增益。如果 GPU 在光线追踪方面比 CPU 快 1,000,000 倍,你仍然有 1+1+tiny,这只是 5 倍的加速。

  • 但是游戏有什么不同呢?为什么 GPU 适合游戏而不适合电影?

    首先,当您制作游戏时,请记住它必须实时渲染——这意味着您最重要的限制是 60Hz(或其他)帧速率,并且您在必要时牺牲了质量或功能来实现这一目标。相比之下,对于电影,牢不可破的约束是让导演和 VFX 主管对他或她想要的质量和外观感到满意,而你需要多长时间才能得到它(在某种程度上)是次要的。

    此外,对于游戏,您逐帧渲染,呈现在每个用户面前。但是对于电影,您实际上是在渲染一次,而交付给影院的是一个电影文件——因此,电影观众永远不会知道或关心您是否每帧花费了 10 个小时,但如果它看起来不好看,他们会注意到。因此,只要它们看起来很棒,对那些需要很长时间的渲染的惩罚就少了。

    对于游戏,您实际上并不知道要渲染哪些帧,因为玩家可能会在世界各地游荡,几乎可以从任何地方查看。你不能也不应该试图让它变得完美,你只是希望它一直足够好。但是对于一部电影来说,镜头都是手工制作的!大量的人工时间用于合成、动画、照明和合成每个镜头,然后您只需渲染一次。想想经济学——一旦 10 天的日历(和薪水)进入照明和合成镜头恰到好处,在一小时(甚至一分钟)内渲染它与过夜相比的优势非常小,而且不值得图像质量或可实现的复杂性的任何牺牲。

    关于gpu - 为什么我们使用 CPU 而不是 GPU 进行光线追踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38029698/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com