是不是可以有理论上的最少翻转次数,作为指标的评价基准
【 在 MaLing 的大作中提到: 】
: 一段代码分别用汇编,C、python语言完成,除了运行时间,仅仅使用通用的CPI方式并不能准确的说出谁更优秀,但是如果我们比较他们谁产生的晶体管翻转的次数和在传输的数据量产生的总体功耗作为基准,那么就可以知道消耗功耗最少的语言代码就是此时最好的选择,而不是依靠运行速度作为标准,如果仅仅依靠运行时间,不考虑功耗,这样的系统性能非常脆弱,例如在memcpy中我们曾为了使用数据对齐带来的性能,从而引入跳转表,在多次预热之后看到有理论吞吐,但是此时的性能是通过更多功耗为代价,这里包括指令数的增加和后台跳转预测机制并行对于跳转状态的不断更新,而在实际工作中指令的获取、执行和跳转预测失败成为了性能的瓶颈(此时产生更多功耗),最后在代码中通过冗余操作,减少跳转指令和总体指令最终提升了性能。
: 因此我们需要一套新的基准(理论代码),这个代码在相同的软硬件环境,理论上需要的功耗最小,从而找到最接近理论值的程序。
--
FROM 101.241.69.*