您的位置: 硬件 > CPU > 新闻详情

实测告诉你为APU分配64MB和2GB显存性能差距多大

时间: 2018-03-08 09:33 来源:3dmgame.com 编辑:夕阳月下

[page]APU介绍[/page]  今年2月12日,AMD的Raven Ridge系列桌面APU处理器正式解禁,首批上市的两款产品分别为Ryzen 5 2400G和Ryzen 3 2200G。从CPU的性能来看,新APU相比之前同级别的Ryzen 5 1400和Ryzen 3 1200略有提升,与对手英特尔的i5-8400和i3-8100相差不大。而GPU性能部分,凭借AMD自家Radeon Vega核心的优势,这两个新款APU大幅领先Intel八代Core产品中自带的UHD 630核显。

  在Ryzen 52400g和Ryzen 3 2200G的基准测试出来之后,这两个APU的性能都令人印象深刻,但是玩家们讨论最多的问题是关于Vega GPU的内存分配。

  与典型的独立显卡不同,大多数集成解决方案都没有自己的显存。例如,Vega 64这个高端显卡,具有8GB的显存,可以存储数据,并在需要时快速访问它。并且用来访问这个内存的总线也非常快,HBM2提供了一个2048位宽的总线,内存频率为1.25GHz,带宽为483GB/s。

  而诸如RX 550这类较为低端的显卡,它的计算性能要低9倍左右,因此不需要如此巨大的带宽和8GB显存,这张卡使用的是2GB的显存。而且在游戏中,RX 550只能利用一半的容量,它的内存频率是1.75GHz,而128位宽的总线可以以112GB / s的速度传输数据。

[page]内存缓冲区、系统内存介绍[/page]  在系统内存中进出的数据要比VRAM慢得多

  如果一款游戏需要3GB的VRAM,但显卡只有2GB,那么就会溢出到系统内存(RAM)。

  将数据移入和移出系统内存比VRAM慢得多。例如Raven Ridge APU在使用DDR4-3200时,系统内存的带宽限制在35GB / s左右。因此,在使用RX 550的情况下,在VRAM访问数据时,其带宽为112GB / s,但从系统内存访问数据时,其限制为16GB / s(PCIe 3.0 x16限制),也就是说处理相同的数据需要至少七倍的时间。

  如果计算机用完系统内存,游戏数据将被移动到本地存储设备,也就是硬盘中,或者是SSD当中,这时的传输速度将取决于硬盘,此时在游戏表现上就会出现明显的帧速下降,因为使用SATA SSD的带宽将降至500MB / s左右。

  AMD Raven Ridge APU只能依赖于系统内存

  值得注意的是,Raven Ridge APU内部的集成图形芯片没有本地内存。强调这一点,是因为在即将到来的Intel Kaby Lake-G处理器中的一些集成GPU(如Vega M显卡)确实有他们自己的显存,这大大提高了性能,但成本也更高。

  由于AMD的Raven Ridge APUs是预算解决方案,包含HBM2内存是不实际的。因此,没有专用的VRAM,它只能依赖于系统内存,在使用DDR4-3200时,它的带宽限制在35GB/s左右。

  当然,带宽只是问题的一部分,内存容量也起着关键作用。一个具有Radeon RX 550和8GB的DDR4内存的系统拥有10 GB的内存。但是当在Raven Ridge APUs内部使用集成的Vega 8或11图形时,需要在CPU和GPU之间共享8GB的内存。

  分配完毕后,用作图形内存的部分,不再供操作系统或应用程序使用

  一般来说,Windows在管理内存和确定应用程序优先级方面做得很好,以获得最佳效果,但至少有一部分系统内存将分配给集成图形。Raven Ridge APU使用称为统一内存架构或UMA的方法。目前大多数AM4主板可让用户将内存大小设置在64MB到2GB之间。根据用户选择的尺寸大小,这将决定专门分配给Vega图形的系统内存的最大数量。一旦分配完毕,它只能用作图形内存,不再可供操作系统或应用程序访问。

[page]缓冲区分配情况[/page]

  现在出现了很多错误的说法。有人说,为了获得最佳效果,应该将帧缓冲区设置为最大尺寸。然而,这并不一定是正确的。你可以更好地选择系统内存的绝对最小值,因为正如我所说,一旦将系统内存的一部分分配给图形处理器,就可以使用它了。

  如果在这里过度使用,那么在Windows中运行不需要大量视频内存的任务时,你将会有大量的空闲内存无法使用。如果你在一个拥有8GB DDR4内存的系统上选择2GB的缓冲区,这意味着只有6GB的系统内存可以使用。

  我不会建议你选择2GB的缓冲区,即使你想在游戏中发挥最大的性能。正如前面所讨论的,当游戏时,一旦图形内存或VRAM被占满,游戏数据就会被加载到系统内存中,而Raven Ridge APUs只使用系统内存,所以不管你分配的是64MB还是2GB,结果都一样。

[page]游戏实测[/page]

  如果一个游戏需要2GB的视频内存,但是你只分配了64MB,那么使用仍然会溢出到共享内存中,因为所有的内存都一样,带宽保持不变,性能也一样。Windows很好地管理了这一点,所以如果分配了2GB,你就是在限制操作系统优化系统内存的能力。

  在试图理解AMD为什么提供1GB和2GB帧缓冲区时,我最初认为可能通过预留一定数量的内存,以确保最高的游戏性能。然而,在测试了各种各样的配置后,发现这对游戏的性能没有任何影响,当然在游戏时你不会注意到。使用8GB和16GB的双通道DDR4-3200内存和相同的时间,发现在保留64MB或2GB的系统内存之间没有真正的性能差异。测试了几个游戏,都是在1080p分辨率下运行,用低到中等质量的设置来调用大约2-3GB的VRAM。

  正如你在BF1中看到的,所有的结果都在误差范围内,我们不仅讨论平均帧率,还包括帧时间性能。在比较1%的低结果时,2GB的配置速度提高了9%,但是如果我们接受在这里有一个+/- 1fps的误差范围,那么差异可能只有3%。在任何情况下,当真正玩游戏时,都不可能发现这一差别。

[page]AIDA64、内存复制测试[/page]

  使用AIDA64 GPGPU基准测试工具,我们可以测量CPU和GPU之间的读写性能,从而有效衡量GPU可以将数据移入和移出自己的设备内存到系统内存的性能。这也称为设备到主机带宽。

  更重要的是,对于我想要展示的属性,我们也可以看看内存复制性能。该测试通过将数据从自己的设备内存复制到相同设备内存中的另一个位置来度量GPU内存的性能。在RX 550的情况下,是GDDR5内存,但在Raven Ridge APU的情况下,它是系统内存。

  在这里我们可以看到,在分配64MB内存的情况下,Ryzen3 2200G的Vega 8 GPU从系统内存中复制数据时的吞吐量为33.4GB/s,这与访问DDR4-3200内存时的35GB/s相当。

  如果我们将分配大小增加到2GB,这对带宽没有影响。基于平均三次运行,我们看到略有下降,但这在误差范围内。假设我们传输的数据超过2GB是安全的,所以它不仅仅是在已分配的缓冲区中进行基准测试。如果我们看RX 550,它的理论峰值带宽是112GB/s,我们在这个测试中看到的是88GB/s。我们还选择了Vega 56来进行比较,它达到了321GB/s,理论峰值带宽为410GB/s

[page]总结[/page]

  因此,所有结果都表明,将iGPU分配的内存缓冲区设置为超过64MB是毫无意义的,而且对于内存有限的系统,甚至有点愚蠢。

  但是读者们要注意一点,64MB是一个极端的例子,可能在安全方面出错,正常情况下会将其设置为512MB。

  而AMD为何要提供2GB帧缓冲区?原因很简单,市场营销。AMD在玩数字游戏,说2GB或高达2GB的图形内存听起来要远远好于64MB。

  测试多个游戏后我们发现,在大多数情况下,我们只看到了很少的差异。在某些情况下,平均值最多可达5%,但大部分为3%或更低。在最佳效果时,可能会获得额外的2-3个fps,虽然最佳效果是使用2GB而不是64MB。但是,如果在Windows中使用应用程序时,使用64MB的显存可以让系统内存几乎具有全部8GB,而不只是6GB,那么Raven Ridge的吸引力就更大了。

  所以对于8GB或更少内存的用户,最好使用64 - 512MB的选项。只需要一点点超频就可以在需要的时候获得额外的帧数。
 

玩家点评 0人参与,0条评论)

收藏
违法和不良信息举报
分享:

热门评论

全部评论