如何评估cpu的理论FLOPS能力

如何评估cpu的理论FLOPS能力

已知一些硬件的参数,知道怎么计算硬件的性能对自己研究的硬件选取乃至程序开发都有重要的借荐意义。

GPU和NPU之类的硬件因为其专门计算用途,因此一般规格书都会提供相应的理论处理能力,但是CPU主要用于处理逻辑而非大规模并行计算,一般不会提供对应的数据。但是我们可以通过定义来计算CPU硬件的理论FLOPS能力。

FLOPS定义

FLOPS,即每秒浮点运算次数, 是每秒所执行的浮点运算次数(Floating-point operations per second;缩写:FLOPS)的简称。

当然浮点精度不同,单精度,双精度,对应的FLOPS能力也不一样,这里我们以单精度浮点FP32为例。

公式

FLOPS = cores × cycles second × FLOPs cycle {\displaystyle {\text{FLOPS}}={\text{cores}}\times {\frac {\text{cycles}}{\text{second}}}\times {\frac {\text{FLOPs}}{\text{cycle}}}} FLOPS=cores×secondcycles×cycleFLOPs

简单来说

FLOPS=核心数x单核主频xCPU单个周期浮点计算次数

核心数和主频没什么好说的,规格书都会有提,但是CPU单个周期浮点计算值这个需要好好说道说道

指令集

cpu单处理浮点运算的能力需要看cpu支持的执行集,

例如x86架构下的 AVX512指令集

在例如ARM架构下的NEON指令集(ASIMD)

两个具体的计算例子

Intel® Xeon Phi 7250F

规格书

  • core :68
  • 主频:1.4 ghz
  • 指令集:AVX512 + 2 FMA(浮点乘加融合计算单元)

AVX512 提供16个单浮点数运算,并且浮点乘加融合相当于两次运算,提供了两个FMA单元

因此单周期可运算的FP32运算数为16x2x2;

因此他的单精度FLOPS为 68x1.4x16x2x2 = 6092.8 GFLOPS;

intel 官方flops数据为3046双精度GFLOPS,和我们的计算数据是匹配的。

RK3588

大小核:四核ARM Cortex-A76@2.4GHz + 四核ARM Cortex-A55@1.8GHz

参照该文档,可知a76存在两个ASIMD单元,128位带宽

The Cortex-A76 processor includes two load/store pipelines, which allow it to execute two 128 bit load uops and one 128 bit store
uop every cycle

a55 一个mac单元,128带宽

因此理论峰值性能为,

大核 4X2.4X4X2X2 = 153.6

小核 4x1.8x4x2 = 57.6

最后

当然理论性能只是理论,以上数据都是无依赖情况下的运算,一次FMA可以看作两次浮点运算,但是不是所有的两次浮点元算可以替代成FMA,两者并不等价,另外还要看编写软件能不能充分发挥软件性能,实际场景中,仍被业务逻辑依赖,内存吞图带宽,发热降频,大小核数据交互损耗等种种原因所影响。
理论值只能给予初步参考,实际场景仍需实测评估。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值