CPU/GPU理论计算极限评估

例1:理论单精度浮点计算峰值

CPU计算能力用Intel的Haswell架构进行分析,Haswell架构上计算单元有2个FMA(fused multiply-add),每个FMA可以对256bit数据在一个时钟周期中做一次乘运算和一次加运算,所以对应32bit单精度浮点计算能力为:

(256bit/32bit)* 2(FMA) * 2(乘和加) = 32 SP FLOPs/cycle,即每个时钟周期可以做32个单精度浮点计算。

CPU峰值浮点计算性能 = CPU核数 * CPU频率 * 每周期执行的浮点操作数。

Intel的CPU型号E5-2620V3来计算峰值计算能力为 =6(CPU核数) * 2.4GHz(CPU频率) * 32 SP FLOPs/cycle = 460.8 GFLOPs/s 即每秒460G峰值浮点计算能力。

例2:理论计算极限

得到了实际操作值,我们需要知道的是我们能优化的极限值是多少,也就是机器的理论计算极限,这个极限我们永远也达不到,但是我们必须明确的知道,比如理论极限是2秒,我们已经从10秒优化到2.01秒了,基本就没有必要再继续花大量时间优化速度了,而应该考虑买更多的机器或者更新的设备。

各个设备的理论极限可以通过其芯片说明计算得到,比如说:

  • Tesla K10 单精度峰值浮点数计算次数:745MHz核心频率 x 2GPU/芯片 x(8个多处理器 x 192个浮点计算单元 x 32 核心/多处理器) x 2 OPS/周期 =4.58 TFLOPS
  • Tesla K10 内存带宽峰值: 2GPU/芯片 x 256 位 x 2500 MHz内存时钟 x 2 DDR/8位/字节 = 320 GB/s
  • 指令比:字节 4.58 TFLOPS/320 GB/s =13.6 个指令: 1个字节
相关推荐
帅气的小峰9 小时前
pybind11与nanobind可以共存吗?如何迁移?
c++·python·cuda·推理引擎
(initial)3 天前
C-05. Kernel Fusion 代价边界:少写回 vs 寄存器压力与 occupancy
c语言·开发语言·cuda
June`6 天前
并发内核执行
c++·人工智能·算法·cuda
Olafur_zbj7 天前
【AI】CUDA的新编程模型:tile编程模型
人工智能·cuda·tile
(initial)9 天前
C-02. Cooperative Groups:安全分组、tile 集体与 coalesced 聚合
cuda
June`12 天前
warp shuffle指令
c++·人工智能·算法·cuda
June`13 天前
常量内存和只读缓存
c++·人工智能·算法·cuda
胖大和尚15 天前
在C++的类中,是否可以把函数声明成__device__
c++·cuda
(initial)17 天前
B-09. 数据布局(AoS/SoA/Transpose):一次布局调整带来的事务变化
cuda
一个小猴子`1 个月前
Triton实现矩阵乘法
矩阵·cuda·triton