location: Beijing
1. why is GPU
CPU的存储单元和计算单元的互通过慢直接促进了GPU的发展
先介绍一个概念:FLOPS(Floating Point Operations Per Second,浮点运算每秒)是一个衡量其执行浮点运算的能力,可以作为计算机性能的指标。所以人们买计算机是往往关心一下计算机有多少FLOPS
然而,计算机性能可能是过剩的?下图是CPU与DRAM的关系
DRAM每秒把200GB的数据,也就是把25,000,000,000个FP64类型的浮点数传输给CPU;CPU每秒可以计算2,000,000,000,000个FP64类型的浮点数。可以看出,CPU可处理数据的能力是DRAM传输能力的80倍(这种比值有个专业术语:计算强度),除非我们的程序对每个数据都做80次运算,否则CPU的算力总是过剩的
所以从这里可以看出,大部分时间,计算机运行程序的速度并不取决于CPU的计算能力,而是DRAM与CPU传输数据的时间延迟(latency)
以一段测试程序daxpy函数为例:
这里我们默认alpha存在CPU的缓存中,数组x和y存在DRAM中。当程序执行时,我们用甘特图看看程序的执行: