上文我们分别介绍了APU的CPU和GPU两个部分各自的不足之处,或许会有人说CPU和GPU的融合才是APU的精髓。的确,融合理念是AMD多年拼命宣传的口号,但直到最近APU的真正出现,融合之道才露出雏形,因为CPU和GPU能够开始能够共享内存了,传统的内存和显存带宽被整合为一,但真的能做到1+1>2吗?
从上面的示意图中不难看出,为了降低GPU访问内存的延迟和复杂度,APU特意增加了Radeon Memory Bus和Fusion Compute Link两条并行总线,用于缓解GPU对高速带宽的需求。如此设计看似很完美,可事实情况并非如此。
我们知道,传统的集成显卡都被整合到北桥,同样是共享内存设计(访问方式稍有不同)。不过当时的集显规格都十分有限,对带宽的要求并不苛刻,并且许多主板都带有板载显存予以缓解,也可以很大程度上减小对内存带宽的依赖。但如今APU里的GPU规格已经不可同日而语,对带宽的要求迅速飙升,如此以来问题就暴露出来。
GPU可以直接访问内存,高负载下与CPU争抢带宽成为不可避免的矛盾
最突出的矛盾就是在高负载情况下,GPU与CPU争抢内存带宽的问题。在分析问题之前,我们先来看一下目前APU对内存规格的支持。可以看到A8、A6系列都可以上到DDR3 1866MHz,那么1866MHz的DDR3内存能为APU提供多少带宽呢?
前面说到过,APU内部同样集成了双通道128bit内存控制器,所以总得带宽就是1866MHz*128bit/8≈29.8GB/s。也就是说,即便APU搭配最高频率的1866MHz DDR3内存,在双通道模式下最大能够提供约29.8GB/s的理论带宽,而且还是CPU和GPU共享的。(这只是理论值,实际情况要大大低于理论值,参照以往的测试结果大约为17-18GB/s左右。)
相比之下,类似规格的桌面版HD 5570能够享受多少带宽呢?HD 5570可以选择搭配900MHz的DDR3或者900-1000MHz的GDDR5显存,前者带宽为900MHz*2*128bit/8≈28.8GB/s,后者带宽则有900(1000)MHz*4*128bit/8≈57.6GB/s(64GB/s),要远远高于APU中GPU所能享受到的最大带宽。
以目前的情况来看,虽然APU做到了CPU和GPU的初步融合,能够统一共享内存带宽,但恰恰是这个问题成为了几乎不可调和的矛盾。一方面AMD希望APU的GPU性能提高一个层次来CPU性能的弱势,所以将GPU规格提升到了入门独显的水平;而另一方面,随着GPU规格的提高对带宽要求也瞬间飙升,在有限的内存带宽下还要和CPU共享,二者不仅不能充分发挥各自的性能,还互相绊脚。虽然,目前这个问题还没有充分显现出来,但随着APU各方面规格的进一步提升,早晚会成为APU未来道路上的一处瓶颈。