1.GPU与CPU运算性能对比
在面对并行任务处理时,CPU与GPU的体系结构在设计理念上有着根本的区别。CPU注重通用性来处理各种不同的数据类型,同时支持复杂的控制指令,比如条件转移、分支、循环、逻辑判断及子程序调用等,因此 CPU微架构的复杂性高,是面向指令执行的高效率而设计的。GPU最初是针对图形处理领域而设计的。图形运算的特点是大量同类型数据的密集运算,因此GPU微架构是面向这种特点的计算而设计的。
设计理念的不同导致CPU和GPU在架构上相差甚远。CPU内核数量较少,常见的有4核和8核等,而GPU则由数以千计的更小、更高效的核心组成。这些核心专为同时处理多任务而设计,因此GPU也属于通常所说的众核处理器。多核CPU和众核GPU的架构对比如图1所示。
图1 多核CPU(左)和众核GPU(右)的架构对比
可以看到,CPU中大部分晶体管用于构建控制电路和存储单元,只有少部分的晶体管用来完成实际的运算工作,这使得CPU在大规模并行计算能力上极受限制,但更擅长逻辑控制,能够适应复杂的运算环境。由于CPU一般处理的是低延迟任务所以需要大量如图1所示