瀏覽單個文章
敗家軍曹
Power Member
 

加入日期: Jan 2005
您的住址: 桃園
文章: 655
昂贵的花瓶 Radeon HD 4870显存测试
RV770无疑是ATI自R350以来最成功的产品,这种完全压倒性的优势意味着一个新架构的诞生,绝非类似RV670一样在RV600架构的基础上缝缝补补,RV770架构的效能如此之高,正是回归了目前GPU架构的发展方向:用最少的晶体管扩充规模,优化多执行绪架构以提升执行效率。而NVIDIA的GT200却偏离了GPU发展的方向,在通用计算方面走得太远。它拥有优秀的线程调度器、适合通用计算的MIMD ALU,却限于制程无法容纳更多的晶体管来扩充Shader。笔者很怀疑将近两年的时间里NVIDIA只做出一个毫无新意的GT200,相信年底的一次显卡架构革新会给我们一个答案。

GT200芯片Shader占用的晶体管少得可怜
  RV770还摒弃了一些失败的设计,例如ringbus环形总线。ringbus总线类似城市的环线设计,理论可以缓解数据吞吐量较大时的带宽压力,但现在看来数据延迟方面的缺陷实在太大,RV770恢复使用了crossbar总线。

摒弃ringbus、臃肿低效的TMU,把晶体管转而用于扩充Shader资源、增加片内缓存,这就是为什么RV770可以用最少的晶体管带来巨大的效率提升。

  基于RV770架构的4870扮演了N卡杀手的角色,它最引人瞩目的地方是采用GDDR5显存,存储单元的频率保持一致时,GDDR5可以实现4倍于GDDR3的传输频率。GDDR5被认为是4870如此高性能的重要原因,搭配GDDR5显存的4870在某些测试项目中甚至直接挑战NV的王者GTX 280,业界一直认为4870惊人的性能得益于高达3600MHz的GDDR5显存。但我们发现如果把4870的核心频率降至4850默认的625MHz,4850与4870的综合性能差距在10%以内,甚至某个别游戏中,拥有3600MHz GDDR5显存的4870败给2000MHz DDR3显存频率的4850,难道GDDR5与GDDR4一样仅仅是一个噱头?

奇梦达GDDR5显存颗粒
  笔者推测,RV770核心频率在625MHz的情况下,GPU核心是渲染流水线的瓶颈,GDDR5无法提升效能。而当核心频率达到800MHz以上时,显存将会成为4870的瓶颈,GDDR5显存对性能的影响将会相当明显。而某个别游戏落败的原因是,这款游戏对显存带宽的压力非常小,这时候就凸显出GDDR5巨大的内部延迟。

  因为无法拿到4850做参照,笔者只能把4870的显存频率分别设定为2400MHz、3000MHz、3600MHz、4800MHz进行测试。保持同一显存频率,把核心频率分别设置为600MHz、650MHz、700MHz、750MHz、800MHz、850MHz运行3DMark Vantage的Performance测试。CPU为E8400,超频至4GHz。


从曲线图可以看出三点:
1、核心频率一直是4870的瓶颈,红、黄、绿色折线图证明,当核心频率提升到750MHz左右时,显存才会相对比较明显地影响显卡的整体效能;
2、GDDR5显存并未如想象中的高效,当显存频率降低600MHz时,显卡整体效能随之骤降,这时的显存频率仍旧高达3000MHz;
3、蓝色折线图证实,600MHz的降幅足以造成4870性能劣化,所以3600MHz GDDR5显存的效能比2000MHz GDDR3稍强,两者的效能差距显然不能以绝对频率差距来衡量;

  限于没有4850做对比测试,这里笔者无法给出GDDR3与GDDR5的效能对比公式,但可以肯定的是,GDDR5仍旧处于高频低能的阶段,频率比GDDR3高出2倍,但性能提升不甚明显。如此巨大的频率/效能落差必然有一个原因。我们通常所表述的内存和显存的频率是存储器的数据传输频率,因为DDR可以在一个时钟周期内的上升和下降进行进行两次数据读写,数据传输频率其实是数据时钟频率的两倍。数据时钟频率是由存储器核心频率作为基数得到的,GDDR3/GDDR4/GDDR5的数据时钟频率差异主要由预读取技术来决定。

  GDDR3采用4bit预读,所以数据传输频率是核心频率的四倍。例如说我们所说的2000MHz GDDR3,数据传输频率就是2000MHz,数据时钟频率是1000MHz,而显存核心频率则是500MHz,因为核心频率是非常难提升的,所以这已经接近GDDR3的极限。

  GDDR4使用了8位预取架构,数据传输频率是核心频率的8倍,例如2400MHz的GDDR4显存,数据传输频率就是2400MHz,数据时钟频率是1200MHz,而显存核心频率则是300MHz。GDDR4提升了数据传输频率的同时降低了时钟频率,但是数据传输周期的延迟非常大,所以GDDR4很快被淘汰。

  GDDR5使用了16bit预读,也就是说一次从存储单元读取16bit数据,在一个时钟周期的上升和下降区间各传输一位数据,这样传输16bit需要8个时钟周期,所以数据时钟频率是核心频率的8倍。由于上下沿都在传输数据,所以数据传输频率就是核心频率的16倍!4870默认3600MHz GDDR5显存的时钟频率是225MHz,比GDDR3高达500MHz的核心频率降低了很多,有很大的提升空间,所以大多数购买4870的用户都可以超频到接近5000MHz的频率。GDDR5的优势就是用同样的时钟频率可以达到4倍于GDDR3显存的数据传输频率。但如同所有使用Prefetch技术的DRAM一样,内部传输延迟增加是无可避免的,而这一点在GPU领域是致命的缺陷。

如何隐藏RAM延迟是个问题
  所以大家可以看到,从GDDR3到GDDR4、GDDR5,存储器核心频率在减小,而显卡的核心频率从R600、RV670、RV770一路提升。当GPU频率与存储单元频率相差越来越大时,会放大GPU对显存的存取延迟瓶颈。因为当RV770的GPU频率运作在800MHz时,3600MHz的GDDR5核心频率其实仅仅225MHz,在这种情况下GPU会无限等待显存的回应,流水线处于停滞状态。无论是CPU还是GPU,都与存储器的频率相差过大,如何遮蔽存储器延迟一直是亟待解决的问题。提升存储器的核心频率是最直接的办法,但受限于技术与成本原因,目前的瓶颈无法从这方面突破,现阶段INTEL/AMD/NVIDIA共同选择的方法是:

1、加入高速缓存,例如CPU的L1/L2 Cache与GPU的L1/L2 Texture Cache,不同的地方是CPU的高速缓存可以达到95%或更高的命中,而GPU只能达到90%。较低的命中决定了单纯增加缓存无法有效掩盖延迟。

2、加入Multi-threading架构,这方面CPU与GPU因为流水线工作模式不同,做出的优化方面也不一样。CPU倾向于优化thread效率,GPU偏向于增加thread数量。因为GPU处理的数据量比CPU庞大地多,并行thread数量也非常庞大,所以单个线程效率的重要性降低,庞大更庞大的线程并行度是未来GPU的发展方向。


RV770的高速缓存

R600架构的线程管理调度器
  现在的问题是RV770的片内缓存与Multi-threading架构能否有效隐藏存取GDDR5显存的延迟,这在一定程度上决定了RV770核心搭配GDDR5显存能提升多少效能。目前来看,GDDR5过低的核心频率放大了原本就亟待解决的存储器延迟缺陷,这一点肯定会成为GDDR5高频低能的原因之一。不过目前的频率只是一个起点,未来的主流产品应该超过5000MHz,但如此高频的存储单元能够发挥几分威力,还要看GPU是如何设计。

3600MHz只是一个开始
  在目前阶段,GDDR5的象征意义更大,购买4870的用户没必追求极限显存频率,因为即便超频到5000MHz,也不会带来多少性能提升。相反应该刷新BIOS调整显存时序才会有比较明显的效果,但现在我们只能等待Radeon Bios Editor加入对时序的调整,未来建议大家按照厂商制定的频率/时序比来优化时序,而不是放宽时序提升频率,放宽时序就是放大GDDR5劣势,没有任何意义。
------------------------------------------------------------------------
以上轉自http://game.ali213.net/thread-2259328-1-1.html
期待有廠商出個4870 DDR3版本,這樣對比一下就知道DDR5到底威不威了
舊 2008-09-07, 05:50 PM #29
回應時引用此文章
敗家軍曹離線中