零壹与或非分享 http://blog.sciencenet.cn/u/dthome9180 站得更高,才能望得更;远看得更细,才能找到好草

博文

处理器指令系统漫谈(12):能效

已有 4293 次阅读 2019-9-2 13:04 |个人分类:观点评述|系统分类:科普集锦| 处理器, 指令

2007年第四版CAQA和第三版在指令系统方面,去掉了DSP相关的专用指令系统的介绍。可能为了减少篇幅,第三版正文800多页,第四版将指令系统介绍和Cache的基础部分放在了附录里。当然这时指令系统大战已经尘埃落定,除了嵌入式系统(可配置指令系统tensilica等)已经很久没有新的桌面/服务器的指令系统出现了。指令系统设计的重要性在学术和工业领域不像之前那么关键了。

2012年第五版CAQA比第四版又做了重大的调整,将存储系统提前到第二章,然后讲指令级并行、线程级并行,增加了数据并行/SIMD/GPU(之前Vector计算在附录里),新增了数据中心计算一章。附录中指令系统的部分倒是和第四版没有太大区别。

CAQA真是一本与时俱进的好教材,不愧于体系结构领域“圣经”的称号。

从2000年代中期开始,指令级并行的研究遇到了“功耗墙”,以提高频率和指令吞吐量为主要性能提升手段的传统思路不行了。传统的风冷散热使得服务器芯片的峰值功耗顶多140W左右,桌面和笔记本计算机芯片更低几十瓦,而对性能的追求却永不停止,所以能效性(Energy-Efficiency)成为过去10年的计算机体系结构的主要战场。

1995年UC Berkeley的研究者发表了一篇论文,详细的讨论了处理器芯片的能效性,这会议笔者孤陋寡闻没有听说过,文章影响力却不小。【1】

image.png

作者提出每单位能量能执行的操作数量是衡量能效性的指标(后来也有文章提出能量延迟积的),现在一般用GFLOPS/W。论文提出三个原则:高性能就是高能效(功耗不变);降低频率不是高能效(动态调压变频可以);追求操作响应延迟会限制能效性(这个很对,但现在越来越重视延迟了)。

高能效技术有很多方向,这里只讨论指令系统相关的。2008年Stanford大学的大教授William J. Dally在IEEE Computer杂志的第7期发表了《Efficient Embedded Computing》【2】,详细的介绍了简单RISC处理器的能量消耗分布,纯粹数据计算能量只占全部能量的6%,可见当时处理器的能效性非常不好。

image.png

2010年前后对指令级并行、多核、GPU等能效性的研究取得了结论性的成果。主要有几篇文章,ISCA 2010年UC Berkeley的大教授Mark Horowitz,发表了两篇文章,详细的挖掘了当前高性能处理器的能效性和各种处理器微体系结构的能效性对比(实验用的tesilica可配置的处理器生成环境),提出以RISC为代表的指令级并行来提高性能的能效性极差。并提出Magic Instruction,也就是复杂数据运算的专用指令(单指令包含大量数据运算)是未来的解决能效性的重要手段。这两篇文章其实为传统的追求指令级并行方向敲响了警钟。【3】【4】

image.pngimage.pngimage.png

2011年ISCA发表了大牛D. Burger学生的一篇里程碑式的论文Dark Silicon,论文指出增加核数和线程数来提高算力、提高能效性存在极限,并不是长久的方法,从另一个层面印证了复杂的多数据运算指令的重要性。【5】

image.png

可以说2016年出现的TPU就是这样的,可以一条指令执行矩阵运算。这里要提一下中国科学院计算所的陈云霁研究员,2014年在AI加速器领域发表了开先河的论文,扬了中国的眉吐了中国的气。【6】

2014年Mark Horowitz教授在ISSCC上发表了一篇总结文章,提出加速器和ASIC能效性最好。J. Hennessy和D. Patterson在2018年图领奖讲演中提出的领域专用体系结构(Domain-Specific Architecture, DSA)概念,给这类高性能高能效体系结构研究的未来方向定了个名字(不愧为起名字的高手)。

image.pngimage.png

这些研究都从另一个层面说明了为什么传统“极简”RISC处理器会遇到滑铁卢,而x86和ARM这种指令功能复杂(先无论指令格式是否RISC)、单指令字(4字节)操作数量多的指令系统,会成功和长寿的原因了。

反观RISC-V的基本指令集超级简单,从表面上看好像违反了能效性的原则。但是,笔者认为正是将基本指令系统设计的简单,又设计了可扩展指令的机制,才能更好的适应未来领域专用指令系统的需求。

提醒感兴趣的读者,千万不能用RISC-V去重新走一遍SPARC、MIPS、PA-RISC、ALPHA、PowerPC的老路啊,再看看Intel从Pentium 4微结构后退回到之前的微结构然后做多核的教训啊。

终点又回到起点,先说“简单好”,现在又“复杂好”,到底啥好?只能先暂定“基本指令要简单、专用指令要复杂、指令编码要简单、指令功能要复杂”。以后慢慢讨论吧。

到现在为止,我们已经有10条原则了,兼容、微结构无关、代码密度、开放、可扩展、编码格式简单、软硬件协作、权衡、并行、高能效。

还有没有了,还有两条,凑成“十二”吧(现在十二时辰比较火)。以后慢慢讲述吧。

这次参考论文较多,大家多读读有好处,舒心活血、强脑健体。

【1】Burd, T. D. and R. W. Brodersen. 1995. Energy efficient CMOS microprocessor design. HICSS-28'95. Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

【2】Dally, W. J., et al. 2008. "Efficient Embedded Computing." Computer 41(7): 27-32.

【3】Rehan, H., et al. 2010. Understanding sources of inefficiency in general-purpose chips. ISCA-37. Proceedings of the 37th annual international symposium on Computer architecture. Saint-Malo, France, ACM.

【4】Omid, A., et al. 2010. Energy-performance tradeoffs in processor architecture and circuit design: a marginal cost analysis. ISCA-37. Proceedings of the 37th annual international symposium on Computer architecture. Saint-Malo, France, ACM.

【5】Hadi, E., et al. 2011. Dark silicon and the end of multicore scaling. ISCA-38. Proceeding of the 38th annual international symposium on Computer architecture. San Jose, California, USA, ACM.

【6】Horowitz, M. 2014. Computing's energy problem (and what we can do about it). ISSCC'14. 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC).

【7】Chen, T., et al. 2014. DianNao: a small-footprint high-throughput accelerator for ubiquitous machine-learning. ASPLOS-19'14. Proceedings of the 19th international conference on Architectural support for programming languages and operating systems. Salt Lake City, Utah, USA, ACM: 269-284.



https://wap.sciencenet.cn/blog-102148-1196312.html

上一篇:处理器指令系统漫谈(11):功耗
下一篇:处理器指令系统漫谈(13):权能
收藏 IP: 124.205.77.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-8-12 17:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部