根据 FLOPS(浮点运算)的数量估算功耗?

Power consumption estimation from number of FLOPS (floating point operations)?

我已经提取了我的每个算法消耗了多少触发器(浮点运算),

CPU 或 ASIC/FPGA 中的功率估计对我来说都很好。我正在寻找类似公式的东西。我有 this journal paper,用于英特尔 CPUs。它给出了每条指令的功耗(不仅是浮点运算,还有所有那些寻址、控制等指令)所以我需要一些更通用的东西来提供基于 FLOPS 的功耗,而不是特殊处理器中代码的指令数。

回复CPU:现代架构不太可能。假设您的程序是 运行 在裸机上运行(即避免现代操作系统、其他应用程序、中断处理、优化编译器等的复杂性)。未使用的电路,现代处理器将以较低的功率水平运行。还有一些硬件节能状态,例如 P(电源)和 C(睡眠)状态,它们与指令无关,即使指令序列相同也会改变您的功耗。即使我们假设您的应用是 CPU-bound(这意味着没有足够长的时间让处理器进入硬件节能状态),我们也无法预测电源使用情况,除非是在总体统计水平上。指令流是流水线、乱序、融合等。这甚至不包括内存层次结构等。

FPGA:哦,哎呀。我对 FPGA 的经验太老了,我真的不想说是从什么时候开始的。我只能说回到过去,当巨大的怪物在地球上漫游时,你可以估计功耗,因为你知道电路设计,以及开关门的功耗。我无法想象现代 FPGA 中没有内置现代节能技术。即便如此,我浏览的少量文献表明很多 FPGA 电源技术都基于先验分析和优化。参见 Design techniques for FPGA power optimization, and 40-nm FPGA Power Management and Advantages。 (顺便说一句,我只是快速搜索和扫描了论文,所以不要太在意我的结论。)