深度学习|为什么深度学习(Deep Learning)要使用GPU而不是CPU()

深度学习|为什么深度学习(Deep Learning)要使用GPU而不是CPU()
文章图片

深度学习|为什么深度学习(Deep Learning)要使用GPU而不是CPU()
文章图片

从上述两张图可以看到,GPU的ALU(运算单元)数量远多于CPU,但是GPU的Control要远远少于CPU,这使得GPU的单Core的自由度要远远低于CPU。
在设计目标上,CPU目标是是并行执行几十个线程,而GPU的目标是要并行执行几千个线程。因此,GPU将更多的晶体管用于数值计算,而不是缓存和流控(Flow Control)。
GPU每一行有多个ALU,却只有一个Control,这代表着多个Core同一时刻只能执行同样的指令,这种模式也称为 SIMT (Single Instruction Multiple Threads)。
从GPU的架构出发,我们会发现,因为Cache和Control的缺失,只有计算密集与数据并行的程序适合使用GPU。

  • 计算密集:数值计算的比例要远大于内存操作,因此内存访问的延时可以被计算掩盖,从而对Cache的需求相对CPU没那么大。
  • 数据并行: 大任务可以拆解为执行相同指令的小任务,因此对复杂流程控制的需求较低。
【深度学习|为什么深度学习(Deep Learning)要使用GPU而不是CPU()】而深度学习恰好满足以上两点,更适合使用GPU来运算。

    推荐阅读