admin管理员组文章数量:1655344
学了IT那么久,只知道CPU主频不断的提升,核数也越来越多,但是如何理论上计算出不同代CPU性能的提升,还真没有认真思考过,我估计大多数人也不会关注,这次由于要进行高性能集群项目遇到,刚好认真的研究了一下CPU的浮点计算理论值。记录一下过程。
首先,FLOAS=核数*单核主频*CPU单个周期浮点计算值。
上述三个参数中,核数,单核主频在CPU型号都会标明,只有CPU单个周期浮点计算值这个要深入思考一下。
首先要了解CPU指令集的概念。
现在服务器的CPU都是AVX-512指令集了,
对应CPU能处理什么样的指令集,可以查intel官方的Specifications.比如我想查Intel® Xeon® Gold 6142 Processor这款CPU的支持哪种指令,可以查如下链结https://ark.intel/products/120487/Intel-Xeon-Gold-6142-Processor-22M-Cache-2-60-GHz-
同时还能查到此款CPU的AVX-512 FMA Units是2,这个意思是可以单个CPU周期可以同时执行2条512bit 加法和2条512bit 乘法。
其次是理解单精度和双精度浮点运算概念,简单的理解单精度就是指32bit的指令长度的运算,对应操作系统就是32位操作系统;双精度就是指64bit指令长度的运算,对应操作系统就是64位操作系统。
理解上述二个概念,我们就可以算出CPU单周期浮点计算能力了,
CPU单周期双精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/64
CPU单周期双精度浮点计算能力=2(FMA数量)*2(同时加法和乘法)*512/32
可以理解为单个CPU周期能够同时执行加法和乘法的指令的条数。
例如上述的Intel 6142 CPU的浮点能力可以计算出,6142是16核,每核2.6GHz
FLOAS(双精度)=16*2.6*(2*2*512/64)=1331.2GFLOAs
FLOAS(单精度)=16*2.6*(2*2*512/32)=2662.4GFLOAs
可以理解此款CPU的双精度浮点运算峰值为1.3TFLOAs,单精度为2.6TFLOAs.
对一个计算节点,有可能有多个CPU,那么对于计算节点,单个CPU浮点运算峰值要乘以CPU个数才是一个计算节点的浮点运算峰值。
常用的CPU情况:
Intel Core 2 and Nehalem:
4 DP FLOPs/cycle: 2-wide SSE2 addition + 2-wide SSE2 multiplication
8 SP FLOPs/cycle: 4-wide SSE addition + 4-wide SSE multiplication
Intel Sandy Bridge/Ivy Bridge:
8 DP FLOPs/cycle: 4-wide AVX addition + 4-wide AVX multiplication
16 SP FLOPs/cycle: 8-wide AVX addition + 8-wide AVX multiplication
Intel Haswell/Broadwell/Skylake/Kaby Lake:
16 DP FLOPs/cycle: two 4-wide FMA (fused multiply-add) instructions
32 SP FLOPs/cycle: two 8-wide FMA (fused multiply-ad
版权声明:本文标题:gpu浮点计算能力floaps_关于CPU的浮点运算能力计算 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729692161a1210225.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论