碎碎念:
最近拿到一个工业模型渲染测试,它有三千六百万个三角面,内存使用了近16G。家里电脑显卡是GTX960,才2G显存,完全不够用啊。稍微加点模型进去,就超显存不渲了,很是揪心,谁让我选了redshift渲呢。。但不可否认它确实出图很快啊。
为了测试继续进行下去,我不断优化场景,尽可能的删掉看不到物体。最终模型三角面减到了两千百万,才勉强能够渲成图。小心翼翼调整采样,都不敢多加半点参数。门都不敢打开,糟心的测试,真是够够了。贴一张渲染出来的图留念一下吧!
这只是别人发给我的测试,可能不是西门子的东西,自己瞎放上去的。如有不合适,请联系我删掉。。
恩!回归到正题,要跟上时代潮流家里就得换电脑了。于是我研读了一下redshift的对于硬件的需求。
划重点:
- 游戏显卡跟专业显卡在redshift渲染性能上没差异。windows系统选专业显卡会快。
- 1GB的显存中容纳大约2千万到3千3百万个三角面。算算自己的需求量吧。
- 单显卡,显存越高越好啦,渲染会更快。
- 多个GPU的显存不能叠加在一起用。如果是多显卡一起使用,可以一次渲多帧,会节约渲染时间。
- CPU单核高GHz是更好的选择。
- 至少安装比GPU大两倍的内存。
- 本地缓存纹理文件夹所在的磁盘,使用固态硬盘会加快读取速度。
- 网络读取速度会影响渲染速度,请用大量代理文件(例如3000w面的代理)测试本地路径和网络路径渲染时间差异。
- redshift有使用out of core 技术。它可以在GPU耗尽的情况下,使用到系统内存。但会降低渲染速度。还是显存多的好啊~
Hardware Considerations For Redshift
这里官方提供的Redshift的硬件注意事项文档,以下是它的翻译,凑活着看吧。
GPU
Redshift是一个CUDA应用程序,这意味着它目前只适用于NVidia GPU。 从游戏级GPU,我们推荐最新一代TitanX Pascal 12GB或GTX1070 / GTX1070Ti / GTX1080 / GTX1080Ti GPU。
或者是当前的RTX2070,RTX2080或RTX2080Ti GPU。 从专业级GPU,我们推荐上一代Quadro P5000,P6000,GP100,GV100 GPU或下一代Quadro RTX GPU。 除了Quadro GV100和Quadro RTX6000 / RTX8000(它们是目前市场上最快的GPU)之外,就Redshift而言,GeForces和Quadros之间没有性能差异。 与GeForces相比,Quadros可以更快地渲染视口OpenGL,但这不会影响Redshift的渲染性能。 Quadros对GeForces的一个主要优势是它们通常拥有更多的板载VRAM。 例如,唯一提供24GB VRAM的NVidia GPU是Quadro M6000,Quadro P6000和Quadro RTX6000。 Quadro GV100每GPU提供高达32GB的容量,而Quadro RTX8000提供48GB的VRAM。 这是很多VRAM!:-)
GTX GPU和Titan / Quadro / Tesla GPU之间的一个重要区别是TCC驱动程序可用性。 TCC的意思是“特斯拉计算集群”。 它是由NVidia for Windows开发的一种特殊驱动程序。 它绕过了Windows显示驱动程序模型(WDDM),允许GPU以更快的速度与CPU通信。 TCC的缺点是,一旦启用它,GPU就会变得对Windows和3D应用程序(例如Maya,Houdini等)“隐形”。 它成为CUDA应用程序的专用,如Redshift。 只有Quadros,Teslas和Titan GPU才能启用TCC。 GeForce GTX卡无法使用它。 如上所述,TCC仅对Windows有用。 Linux操作系统不需要它,因为Linux显示驱动程序不会遇到通常与WDDM相关的延迟。 换句话说,默认情况下,Linux上的CPU-GPU通信比所有NVidia GPU上的Windows(使用WDDM)更快,无论是GTX卡还是Quadro / Tesla / Titan。
考虑到在撰写本文时,单个TitanX的成本约为GTX1080的两倍,用户经常会问的问题是“哪一个更好? 一个TitanX还是两个GTX1080?“ 那么,就原始计算能力而言,两款GTX1080将击败单一的TitanX。 但是如果您要渲染的场景是多边形(超过150米的独特多边形),我们建议获得11-12GB或更高的GPU。 请参阅下一节有关VRAM及其优点的部分。
如果在同一台计算机上安装多个GPU,Redshift将渲染得更快。 拥有多个GPU需要特殊的主板/ CPU /设置注意事项,本文档后面将对此进行概述。
回顾一下:
- 你需要更多的VRAM吗? 如果是这样,Titan / Quadro / Tesla是您的正确选择
- 你需要TCC(即在Windows上更快的渲染)? 如果是这样,Titan / Quadro / Tesla是您的正确选择
- 如果您不需要上述任何一种,多个GTX GPU(成本相同)将提供更多的原始计算能力
VRAM(即显存)足够多,它与性能有何不同?
NVidia GPU配置为4GB / 6GB / 8GB / 11GB / 12GB / 24GB / 48GB VRAM。 假设未来的GPU将具有更多VRAM,这是安全的。 那么特定用户的VRAM数量是多少?
Redshift的一般经验法则是“VRAM越多越好”。 然而,具有更多VRAM的视频卡也更昂贵。 下面的文字解释了Redshift如何使用VRAM,以便用户在选择GPU时做出明智的决定。
在VRAM利用方面,Redshift非常有效。 它能够在大约1GB的显存中容纳大约2千万到3千3百万个独特的三角形。 如果一个场景包含3亿个三角形,Redshift通常需要大约10GB的VRAM。 但即使是具有8GB VRAM的GPU也可以使用Redshift渲染如此高的多边形场景,因为它具有核外架构(请参阅我们的在线常见问题解答,了解“out of core”)。 但是,过多的核外数据访问有时会导致相当大的性能损失。 因此,在渲染高多边形场景时,最好有足够的VRAM。
Redshift的out-of-core技术并未涵盖所有可能的数据类型。 目前,Redshift无法以out of core方式存储volume grids(例如OpenVDB ,Supported by Houdini ® , FumeFX ® and RealFlow ®, 基于网格的缓存格式)。 这意味着使用数百兆字节的OpenVDB数据的场景可能需要具有更多VRAM的GPU,否则帧渲染将被中止。
拥有大量VRAM的另一个好处是Redshift的“自动内存管理”功能。 如果场景没有使用太多多边形,则可以启用“自动内存管理”设置并允许Redshift渲染得更快。 该设置位于Redshift的“Memory”选项卡中。 它允许Redshift与CPU的通信频率较低,从而提高了渲染性能。 有关此设置的更全面说明,请参阅Redshift的在线文档或论坛。
拥有大量VRAM的另一个好处是能够同时运行多个GPU应用程序。 Maya的OpenGL视口,Chrome(网络浏览器)和Windows本身等应用程序可能会消耗大量的VRAM,并且几乎没有内存供Redshift使用。显然,这对包含大量VRAM的GPU来说不是一个问题。对于无法负担具有大量VRAM的GPU的用户,可能的解决方法是安装额外的(更便宜的)GPU,用于除Redshift之外的所有内容。然后,剩余的GPU可以与监视器断开连接,因此可以使整个VRAM可用于使用Redshift进行渲染。断开GPU与监视器的连接称为“headless mode”。
VRAM容量的主题通常是购买更昂贵的11-12GB GPU与更便宜的8GB GPU之间的决定性因素。
最后,应该注意的是,多个GPU的VRAM没有组合在一起!即如果您的系统上安装了4GB GPU和8GB GPU,则这些GPU不会增加到12GB!每个GPU只能使用自己的VRAM。尽管引入了NVLink,但未来可能会发生变化。 NVLink是一个“桥接器”,可以将两个GPU连接在一起,以便它们可以共享彼此的内存。这会带来性能损失,在某些情况下可能会或可能不会很大。 Redshift今天不支持NVLink,但我们正在计划(并已开始工作)实施它。
回顾一下:
- 你是否会使用额外的GPU进行OpenGL / 2D渲染? 如果没有,那么更喜欢具有更多VRAM的GPU
- 更多VRAM也意味着更快的渲染
- 你是否会渲染沉重(1.5亿个场景或大量的OpenVDB或粒子)? 如果是这样,请选择具有更多VRAM的GPU
- VRAM不能跨多个GPU组合
Motherboard
主板
一种经济高效的加速渲染解决方案是为您的计算机添加更多GPU。 这是与CPU渲染解决方案相比,GPU渲染更具成本效益的原因之一。 与购买额外的计算机和软件许可证(包括Redshift许可证)相比,添加额外的GPU(或更多!)更便宜!
如果您今天为Redshift构建计算机并预计将来会添加更多GPU,我们建议您选择具有4个PCIe3.0 x16插槽或更多插槽的主板。 请注意,有些主板会声称有4个PCIe3.0 x16插槽,但它们的规格会说(x16,x16),(x8,x8,x8,x8)。 这意味着“如果你有两个GPU,它们都将以x16速度运行,但如果你有4个GPU,则每个GPU将以x8速度运行”。 换句话说,即使主板有4个插槽,它们也不能同时以全速x16速度运行。
你绝对需要(x16,x16,x16,x16)吗? 没有! Redshift与(x8,x8,x8,x8)运行良好,但在某些情况下x16速度可能会对性能有所帮助。 这包括执行大量核外渲染的DeepEXR渲染或渲染场景,即GPU需要访问CPU内存的情况。 即使在这些情况下,也不要指望x16和x8插槽之间存在巨大的性能差异。 未来的NVidia GPU(Pascal)将能够更有效地使用CPU内存,因此,在这些情况下,额外的x16速度可能会产生更大的差异。 换句话说,PCIe x16的规划目前更像是一个面向未来的选择,而不是现实世界的优势选择。
请注意,即使所选主板声称拥有许多支持PCIe x16的插槽,您也需要一个合适的CPU来实现这一性能! (见下文)
回顾一下:
- 如果您要为每台计算机添加多个GPU,请选择具有多个快速PCIe x16插槽的主板。
CPU
我们建议CPU具有足够的单线程性能。最好是拥有内核少且高GHz的CPU。即与6核3.5 GHz CPU相比,Redshift的8核2.5GHz CPU将更糟糕。我们建议工作频率为3.5GHz或更高的CPU。
并非所有CPU都能以全PCIe x16速度驱动4个GPU。 CPU具有称为“PCIe通道”的功能,该功能描述了CPU和GPU之间的数据通信速度。某些CPU的PCIe通道数少于其他CPU。例如,Core i7-5820K 3.3GHz有28个PCIe通道,而i7-5930K 3.5GHz有40个PCIe通道。这意味着5930K可以以更高的速度驱动更多的GPU。我们建议CPU具有更多PCIe通道。我们不推荐Core i5,Core i3或低端CPU。
如果在同一主板上有多个CPU(如Xeons),则CPU的PCIe通道将合并在一起。双Xeon系统可以全速轻松驱动8个GPU。
回顾一下:
- Redshift更关心GHz而不是内核数量
- 如果您要安装多个GPU,请查看更高端的Core i7
- 如果您要安装4个以上的GPU,可能需要研究双Xeon解决方案
- 避免使用i5,i3和低端CPU
外部GPU机箱
我们曾经测试过Redshift的唯一外壳是Cubix Xpander Elite,性能非常好! 我们一次测试了1,2,3和4个GPU。 我们发现它是稳定的,而且非常重要的是,与直接在计算机主板上安装GPU相比,我们无法衡量性能损失。 如果您的计算机没有足够的PCIe插槽,并且您希望GPU可移植,GPU扩展器也会非常有用。
请注意,并非所有外部机箱都适合Redshift! 有些人可能会引入PCIe通信延迟,这可能会对Redshift的性能产生负面影响! 我们建议您在购买之前使用所选的机箱测试Redshift,即使其他GPU渲染器可能运行良好! 与其他GPU渲染器相比,Redshift的软件架构要求GPU与CPU进行更频繁的通信,因此机箱的性能(延迟)非常重要!
PSU/Cooling (风扇)
请遵守CPU / GPU的功率要求并选择合适的PSU。 在计算机中安装4个GPU可能需要1000W PSU - 或者更强大的PSU! 没有足够功率的低质量PSU或PSU可能会导致GPU不稳定和崩溃,更不用说GPU损坏了!
请注意,在一台计算机上安装4个GPU会产生大量的热量,因此请确保机箱冷却/通风良好。 如果通风不足,GPU可能会进行热节流并自行降频,以免烧坏。 限制/降频意味着渲染速度变慢! 当然,高温意味着电子设备的使用寿命更短。 所以冷却很重要!
Multiple GPU scaling
多GPU扩展
使用Redshift和多个GPU进行渲染时,您有两个选择:可以使用所有GPU渲染单个帧,也可以使用GPU的组合一次渲染多个帧。
在某些情况下,使用所有可用GPU渲染单个帧可以产生非线性性能增益。 例如:与使用1 GPU渲染相比,4 GPU可能无法快速渲染4倍。 他们可能会提高3倍的速度。 这是因为有一定数量的每帧CPU处理涉及到无法通过添加额外的GPU来加速。
为了更好地解释这一点,请考虑以下示例。 让我们假设从Maya中提取场景数据(仅在CPU上发生)需要10秒,渲染需要60秒才能执行1 GPU。 因此总渲染时间为70秒。 现在,如果要添加另外3个GPU(总共4个GPU),则将纯渲染时间的60秒除以4,即15秒。 但是你根本不会将10秒的提取时间分开,因为所有这些都是在CPU上完成的! 因此,总渲染时间将是10秒+ 15秒= 25秒与原始70秒相比。即 快3倍而不是4。
在其他情况下,更多的GPU无法提供帮助,例如从磁盘加载数据。 更糟糕的是,某些CPU处理阶段是单线程的。 这意味着安装具有多个内核的CPU也无济于事!
上述问题的解决方案是一次渲染多个帧。 如果计算机有4个GPU,则可以一次渲染两个帧,每个帧使用2个GPU。 这有助于解决这个问题,因为当你一次渲染多个帧时,你就会强迫你的CPU做更多的工作(例如,一次提取多个帧),这通常会提高CPU-GPU的性能比。
一些渲染管理器(如Deadline)支持打开即用的Redshift功能。 截止日期中,该功能称为“GPU affinity”。 或者,如果您没有使用渲染管理器并且更喜欢使用自己的批渲染脚本,请阅读此论坛帖子以获取有关如何从命令行渲染并使用GPU子集的信息:https://www.redshift3d.com/forums/viewthread/1713/.这基本上是Deadline和其他渲染管理器在幕后选择Redshift中的GPU。
回顾一下:
- 要获得最佳的多GPU缩放性能,请一次渲染多个帧
Memory(内存)
我们建议至少拥有系统上安装的最大GPU的两倍内存。即 如果系统使用一个或多个TitanX 12GB,系统应该至少有24GB的RAM。
如果您要一次渲染多个帧(如上一节所述),则应相应地增加内存。即 如果渲染1帧需要16GB,同时渲染两帧将需要大约32GB。
回顾一下:
- 如果您要在每台计算机上安装多个GPU,请添加大量CPU RAM
磁盘
我们建议使用快速SSD驱动器(固态硬盘)。 Redshift自动将纹理(JPG,EXR,PNG,TIFF等)转换为自己的纹理格式,在渲染过程中加载和使用更快。那些转换后的纹理存储在本地驱动器文件夹中。我们建议在该纹理缓存文件夹中使用固态硬盘,以便在渲染过程中可以快速打开转换后的纹理文件。 Redshift可以选择不执行任何此缓存,只需从原始位置打开纹理(即使这是一个网络文件夹),但我们不建议这样做。有关纹理缓存文件夹的更多信息,请阅读在线文档。
回顾一下:
- 首选SSD固态硬盘
网络和NAS
Redshift的渲染速度比CPU渲染器快几倍。这意味着您的网络负担也可能更高,就像您添加更多渲染节点一样!如上所述,Redshift将纹理缓存到本地磁盘,因此它不会尝试一遍又一遍地通过网络加载纹理(只有在纹理发生变化时才会这样做)。但是,其他文件(如Redshift代理)不会在本地缓存,因此将反复通过网络访问它们。在这种情况下,快速网络和网络附加存储(NAS)通常可以正常工作。
但是,在某些情况下,用户报告某些NAS解决方案的性能极低。由于市场上有许多NAS产品,我们强烈建议您通过网络使用大型Redshift代理对所选NAS进行彻底测试。例如,尝试导出一个包含3000万个三角形的大型Redshift代理(曲面细分的球体可以),将其保存在网络文件夹中,然后尝试通过网络路径和本地文件在场景中使用它 - 测量两者之间的渲染性能差异。
回顾一下:
- 使用Redshift进行渲染就像使用大量机器进行渲染一样。这可能会给您的网络带来压力。
- 彻底测试您的网络存储解决方案!其中一些有性能问题!