

从上述两张图可以看到,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没那么大。
- 数据并行: 大任务可以拆解为执行相同指令的小任务,因此对复杂流程控制的需求较低。
而深度学习恰好满足以上两点,更适合使用GPU来运算。
本文探讨了GPU架构的特点,指出由于其大量的ALU和较少的Control,GPU适合执行计算密集且数据并行的任务。GPU的SIMT模式使其能并行处理大量线程,适合深度学习等需要大量数值计算和并行处理的场景。深度学习的计算需求与GPU的特性相匹配,因此GPU成为加速训练的理想选择。
要使用GPU而不是CPU?&spm=1001.2101.3001.5002&articleId=120502541&d=1&t=3&u=527eaceec21d4c49b7c356950fc2da14)
722

被折叠的 条评论
为什么被折叠?



