● 别让寄存器成为阿克琉斯之踵
GPU十年时代中存在着各式各样的对决,每一场胜负看似都有各不相同的独特缘由,但实际上这些胜负经常会与一个影子重叠,那就是寄存器。
作为最重要的缓冲单元,寄存器需要面对来自执行单元对线程(Thread)和数据的缓冲需求,它位于整个临时存储体系的最顶端,可以为预算单元提供“距离”最近、延迟最低且带宽最大的临时缓冲资源。无论CPU还是GPU架构,其寄存器体系的设计都是重要的架构效率的重要制衡要素。
寄存器在处理器中的地位
寄存器的充沛程度对于运算单元而言是极端重要的,它是提升单元运作效率和复用率的最直接手段,如果运算单元在单位时间内没有获得足够数量的寄存器,它将不得不访问速度更慢的其他存储机制,这所产生的延迟将会激增并直接影响该单元正在执行的运算/操作的速度,NV30便是寄存器资源贫瘠的最大恶例。在导致NV30失败的诸多原因当中,寄存器的不充沛以及操作方式问题所产生的负面影响是最直接的,它直接限制了NV30架构最核心的单元动作效率,让NVIDIA不得不采用提升频率等其他手段来对其进行弥补,进而导致了功耗过高等一连串连锁反应。由此可见,提供充沛的寄存器资源对于GPU而言是绝对必须的。
那么寄存器是否应该越多越好呢?显然也不是,Tahiti就是因为过量,或者说不得不启用的总量过于巨大的寄存器所带来的晶体管负担绊住了手脚。如果Tahiti没有因为DP运算的需求以及自身寄存器使用经验的欠缺而集成当前数量的寄存器,其所节约的晶体管数量不仅可以转化成可观的功耗下降空间,而且还可以被用来强化GPU架构的任何一个部分。正所谓一时之制,可反而用也;一时之吉,可反而凶也。过量的寄存器不仅不能带来优势,相反还会成为整个架构的吊车尾并影响架构的整体强化过程。
饱受寄存器晶体管负担困扰的HD7970
这就是GPU十年时代给予我们的第二个重要启示——适度。贫瘠会带来饿殍,过盈可导致硕拙,只有适度才是恰当的存续之道。
寄存器的水准反映了设计者对逻辑运算结构的认知程度,同时也反映了GPU内在的两面性。尽管技术水平差异一直不被我们看做是决定A/N命运的唯一要素,但寄存器水平的差异确实重要而且左右着core和uncore孰轻孰重。如果设计者缺乏寄存器的使用和管理经验,寄存器对于每个线程的复用率较低,或者说每个线程在特定时间片段内可以占用的寄存器数量不足,要满足大并行度Thread的性能需求就必须通过增大寄存器总量的手段来完成。在此基础上,双精度数据通常需要组合单精度寄存器来完成缓冲需求,因此双精度数据对寄存器的需求量要来的更大,如果此时寄存器复用状况不佳,要保证线程充分并行和DP运算的性能需求,唯一的做法就只有进一步加大寄存器总量一途而已了,而这无疑会增大core的比重并挤压 uncore部分的可用晶体管资源。由此可见,寄存器设计能否适度,具备必要的经验是相当重要的要素。
相关报道:
- 传三星打造自主品牌GPU 令其产业链锦上添花2014-09-17
- 视觉时代的回响 GPU十年历史追忆拾遗篇2013-09-18
- GPU炼金试验室 GK110核心/显存关系解密2013-07-11
- GPU霸气十足 APU平板演示视频曝光2013-04-10
- 骁龙600架构全解析 CPU/GPU详细测试2013-04-09
本类最新
本类最热
科技视界
要闻推荐
今日视点
热点专题
新闻图片
- 新闻排行
- 评测排行