一段代码分别用汇编,C、python语言完成,除了运行时间,仅仅使用通用的CPI方式并不能准确的说出谁更优秀,但是如果我们比较他们谁产生的晶体管翻转的次数和在传输的数据量产生的总体功耗作为基准,那么就可以知道消耗功耗最少的语言代码就是此时最好的选择,而不是依靠运行速度作为标准,如果仅仅依靠运行时间,不考虑功耗,这样的系统性能非常脆弱,例如在memcpy中我们曾为了使用数据对齐带来的性能,从而引入跳转表,在多次预热之后看到有理论吞吐,但是此时的性能是通过更多功耗为代价,这里包括指令数的增加和后台跳转预测机制并行对于跳转状态的不断更新,而在实际工作中指令的获取、执行和跳转预测失败成为了性能的瓶颈(此时产生更多功耗),最后在代码中通过冗余操作,减少跳转指令和总体指令最终提升了性能。
因此我们需要一套新的基准(理论代码),这个代码在相同的软硬件环境,理论上需要的功耗最小,从而找到最接近理论值的程序。
整个计算机体系都是基于信息论,而信息论又是香农1948年构建在统计热力学之上,为了真正理解计算机体系结构,也许我们需要将程序或者体系架构的性能、安全、可靠性、机器学习与热力学紧密的联系起来并且从中找到真正的答案。
- 来自 水木社区APP v3.4.2
※ 修改:·MaLing 于 Jun 8 11:50:52 2021 修改本文·[FROM: 117.136.68.*]
※ 来源:·水木社区
http://www.newsmth.net·[FROM: 47.251.4.*]
修改:MaLing FROM 117.136.68.*
FROM 47.251.4.*