背景
在算网中,对于算力资源的编排,首先是对资源的算力进行多维度量化,量化的结果将作为算力编排调度的重要衡量标准。
简介
目前算力度量的方法多种多样,有基于整体系统的算力度量,也有基于单项规格指标的算力度量。
在这里,以CPU处理器的算力度量方法为例,介绍一下常规的算力估算方法。
CPU处理器的算力通常使用浮点计算能力FLOPS作为度量单位
FLOPS
FLOPS,全称是floating point operations per second,表示每秒浮点运算次数,通过用于衡量硬件性能(基础算力资源)的基本运算能力。
与之相近的是FLOPs,全称是floating point operations,表示浮点运算数,这个通常用来表示算法模型/网络模型的计算复杂度,这两个比
较容易混淆,需要区分。
CPU指令集
CPU的运算能力和其架构支持的CPU指令集相关,以intel cpu为例,通常支持以下几种复杂指令集:
指令集 | 每时钟周期单精度运算次数(FLOPS) | 每时钟周期浮点运算次数(FLOPS) |
AVX(256-bits) | 16 | 8 |
AVX2(256-bits) | 32 | 16 |
AVX512(512-bits) | 64 | 32 |
以AVX512指令集为例,其单指令长度为512-bits,支持32位寄存器。
一个支持AVX512指令集的cpu处理器,每个核心拥有2个FMA(Fused Multiply-accumulate)运算单元,则其在一个时钟周期内可以进行
512(bit) * 2(FMA) * 2(opers) / 64(sp) = 32FLOPS 的浮点运算
计算公式
计算一块cpu的理论算力,可通过如下公式:
其中,CoreNum为cpu核心数,BaseFrequency为cpu主频,OperationsPerCycle为上述的单核心每时钟周期浮点运算次数
以常见的服务器处理器Intel Xeon E5-2670为例,其核心数量为8核心,主频为2.6GHz,支持指令集为AVX,64bit,故