什么是算力
随着国家大力发展数字基础设施,算力的提升和普惠变得越来越重要,它注定会在人们的视线中占据很重要的一席。那么算力是什么呢
所谓算力,简而言之就是设备的计算能力(Computing Power)。小至手机、PC,大到超级计算机,没有算力就没有各种软硬件的正常应用。以PC而言,搭载的CPU、显卡、内存配置越高,一般来说算力就越高。
算力的单位
大数据时代,数据和算力都是巨量的,这里先解释一下单位巨大量级的表示方式:K(Kilo)表示103 、M(Mega)表示106 、 G(Giga)表示109 、 T(Tera)表示1012 、 P(Peta) 表示1015、 E(Exa)表示1018、 Z(Zetta)表示1021 、 Y(Yotta) 表示1024。
算力的单位,是衡量算力强弱的指标和基准,当前存在多种不同的衡量方法。常见的包括MIPS(每秒钟执行的百万指令数,Million Instructions Per Second)、DMIPS(Dhrystone每秒钟执行的百万指令数,Dhrystone Million Instructions executed Per Second)、OPS(每秒操作次数,Operations Per Second)、FLOPS(每秒浮点运算次数,Floating-point Operations Per Second)、Hash/s(每秒哈希运算次数,Hash Per Second)等。
其中,FLOPS单位一直被视为衡量计算机运算速度的主要指标之一。从量级来看,PC的算力为GFLOPS级别;中国超级计算机神威“太湖之光”的算力为93.015PFLOPS;鹏程实验室的鹏程云脑II(以华为Atlas 900集群为底座)拥有1000PFLOPS的强大算力,相当于数千万甚至上亿台PC的集合。
如何计算CPU算力
GPU卡通常在发布时候就公布了有单精度或者双精度的算力值,可以直接获取,CPU通用算力则需要我们自己计算.
我们常用用双精度浮点运算能力衡量一个处理器的科学计算的能力,就是处理64bit小数点浮动数据的能力,针对CPU的算力计算如下:
- 支持AVX2的处理器的单指令的长度是256bit,每个intel核心假设包含2个FMA,一个FMA一个时钟周期可以进行2次乘或者加的运算,那么这个处理器在1个核心1个时钟周期可以执行256bit*2FMA*2M/A/64=16次浮点运算,也称为16FLOPs,就是Floating Point Operations Per Second;
- 支持AVX512的处理器的单指令的长度是512Bit,每个intel核心假设包含2个FMA,一个FMA一个时钟周期可以进行2次乘或者加的运算,那么这个处理器在1个核心1个时钟周期可以执行512bit*2FMA*2M/A/64=32次浮点运算,也称为32FLOPs,
这就是说理论上后者的运算能力其实是前者的一倍,但是实际中不可能达到,因为进行更长的指令运算,流水线之间更加密集,但核心频率会降低;导致整个处理器的能力降低;
一个处理器的计算能力和核心的个数,核心的频率,核心单时钟周期的能力三个因素有关系
- 例如:现在intel purley platform的旗舰skylake 8180是28Core@2.5GHZ,支持AVX512,其理论双精度浮点性能是:28Core*2.5GHZ*32FLOPs/Cycle=2240GFLPs=2.24TFLOPs
- 例如:现在intel purley platform的旗舰cascade lake 8280是28Core@2.7GHZ,支持AVX512,其理论双精度浮点性能是:28Core*2.7GHZ*32FLOPs/Cycle=2419.2GFLPs=2.4192TFLOPs