美文网首页
CPU TFLOPS 计算

CPU TFLOPS 计算

作者: MatrixOnEarth | 来源:发表于2020-03-09 12:59 被阅读0次

深度学习任务是一个计算密集型任务,所以很关注计算设备的算力指标,因为目前深度学习还是以float32为主流,所以落实到具体指标,就变成了大家都很关心TFLOPS(Tera FLoat point OPerations per Second),这里,浮点操作指的就是浮点乘法和加法操作。这个在GPU上是明码写在spec里可以查的,但CPU目前并不会在spec中暴露TFLOPS指标。一种方法可以通过跑BLAS的benchmark来测量的,但这个一是需要一定的操作成本,二是受软件优化的影响(所以,如果出了问题就容易不知道这是硬件能力不行还是软件优化没到位)。需要一个对硬件能力的直接估计。
在深度学习任务中,计算量的绝大部分是由协处理器(co-processor)来完成的(如SSE,AVX2,AVX-512),更具体地,是由FMA(Fused Multiply-Add)单元完成的。所以对CPU的TFLOPS估计一般可以通过以下公式来达成:
FLOPS = frequency * fma\_number * operators\_per\_clk

FMA做了啥?
FMA指令里做了以下操作。这里这些向量的长度由AVX寄存器长度决定,比如AVX-512就是16个float。 FMA每个clock可以做完一个以下操作,这里\vec{o}\vec{a}\vec{b}\vec{c}都是长度为16的向量。
\vec{o} = \vec{a}*\vec{b} + \vec{c}

举个栗子
Xeon Skylake 8180,一个socket有28个core,每个core有一个AVX-512协处理器,每个AVX-512协处理器配有2个FMA,每个FMA每clock可以处理512 bit / 8 / 4 = 16个单精度浮点乘加操作。所以:

frequency可以通过查spec得到,如下:


频率表

所以单socket的峰值TFLOPS为:



所以一个dual-socket Skylake 8180的node的峰值TFLOPS应为:

相关文章

  • CPU TFLOPS 计算

    深度学习任务是一个计算密集型任务,所以很关注计算设备的算力指标,因为目前深度学习还是以float32为主流,所以落...

  • volatile关键字

    变量的线程可见性。 在CPU计算过程中,会将计算过程需要的数据加载到CPU计算缓存中,当CPU计算中断时,有可能刷...

  • 浏览器与进程

    线程与进程 CPU: CPU是计算机的核心,其负责承担计算机的计算任务进程:进程是cpu资源分配的最小单位(系统会...

  • UIView 视图显示原理和卡顿掉帧原因

    CPU - GPU CPU 视图展示cpu操作: Layou: UI布局 文本计算Display: 绘...

  • CPU与GPU

    一、CPU CPU 计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等 CPU 资源消耗原因和解决方案 ...

  • (十八)IO密集型和CPU密集型

    一、计算密集型 需非常多CPU计算资源,让每个CPU核心都参与计算,CPU性能充分利用,避免过多线程上下文切换...

  • iOS底层day11 - 性能优化

    CPU & GPU 屏幕成像原理: 卡贞 CPU 计算和GPU渲染是具有周期性的,当 CPU 计算和GPU渲染的时...

  • JAVA入门笔记-01(常见dos命令)

    计算机 = 硬件+ 软件 硬件: cpu : cpu是计算机中的运算核心与控制核心。负责了解析计算机的指令、与计算...

  • 微机原理第一章总结

    微型计算机系统导论 1.计算机系统计算机系统 cpu:微处理器称为cpu,是计算机的核心。cpu结构 内存储器:1...

  • 计算机概述 & 常见的dos命令 & 标识符 计

    计算机概述 ( 计算机 = 硬件 + 软件 ) 硬件 : cpu : cpu是计算机中的运算核心与控制核心。负责了...

网友评论

      本文标题:CPU TFLOPS 计算

      本文链接:https://www.haomeiwen.com/subject/pmxpdhtx.html