购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 异构计算技术

随着互联网的蓬勃发展,数据信息量呈现爆炸式增长,以及近年来诸如机器学习、深度学习等具有高计算性能需求技术的出现,这使得计算机应用对处理器算力的要求不断提高,传统的CPU处理器甚至多核CPU处理器已无法满足计算需求,异构计算(heterogeneous computing)技术应运而生。异构计算是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元类包括CPU、GPU、DSP、ASIC、FPGA等。该技术产生于20世纪80年代中期,具有高效的计算性能、良好的可扩展性以及较高的计算资源利用率等优势,如今已成为了并行/分布式计算领域中的主要热点之一。

3.1.1 CPU、GPU、FPGA简要介绍

接下来我们将分别介绍三种常用的计算处理单元:CPU、GPU和FPGA。

1.CPU

中央处理器(Central Processing Unit, CPU)是计算机系统的运算和控制核心,主要功能是解释计算机指令以及处理计算机软件中的数据。CPU主要包括运算器和控制器两部分,以及寄存器、高速缓存器和实现它们之间连接的数据、状态及控制总线。

运算器是计算机中进行各种算术运算和逻辑运算的操作部件,主要包括:

❑算术逻辑单元(Arithmetic and Logic Unit, ALU),是CPU中的重要组成部分,用于实现算术运算和逻辑运算。算数运算包括加法、减法、乘法等,逻辑运算包括与、或、非、移位等。

❑累加器(Accumulator, ACC),用于存储计算产生的中间结果,当执行算术运算或逻辑运算时,为ALU提供一个工作区。

❑数据缓冲寄存器(Data Register, DR),用于暂时存放由内存储器读出或存入的一条指令或一个数据字,可分为输入缓存和输出缓存。

❑程序状态字寄存器(Program Status Word, PSW),用于表示当前运算的状态和程序的工作方式,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等。

控制器是计算机系统的指挥中心,控制着整个CPU的工作,主要包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑,其中指令控制逻辑主要包括:

❑指令寄存器(Instruction Register, IR),用于存放当前正在执行的指令,当CPU需要执行相关指令的时候就会从IR中取出相关指令而不需要从缓存或主存中取出指令。

❑程序计数器(Program Counter, PC),用于存放下一条指令在主存储器中的地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,这一过程称为“取指令”。与此同时,PC指向下一条指令的地址。

❑指令译码器(Instruction Decoder, ID),计算机指令由操作码和地址码组成,指令译码器用于翻译操作码对应的操作以及控制传输地址码对应的数据。

2.GPU

图形处理器(Graphics Processing Unit, GPU),又称显卡、显示核心、视觉处理器、显示芯片等,是一种专门在个人计算机、游戏机、工作站等上执行绘图运算工作的微处理器。CPU拥有的内核数量较少且专为通用计算设计,而GPU具有数百或数千的内核,是一种特殊的处理器,能够实现大量的并行计算,主要用于计算机图形图像领域。图3-1源于Nvidia CUDA文档 [1] ,从图中可以直观地看出,相比于CPU中复杂的控制逻辑和优化电路以及大量的高速缓存,GPU的构成相对简单,采用了数量众多的计算单元和超长流水线,因此GPU更适合处理大量的统一类型的数据。同时,GPU硬件高吞吐量、高带宽、高度并行的特点使其非常适用于并行计算加速,已广泛应用于高效能计算、视频流分析、人工智能等领域。

3.FPGA

现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA),它是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)、GPLD(复杂可编程逻辑器件)等可编程逻辑器件的基础上发展而成的。FPGA主要由可编程逻辑单元阵列、嵌入式RAM、布线资源和可编程I/O单元阵列等组成,结构灵活,能够通过用户编程实现各种逻辑功能以满足不同的设计需求。FPGA还具有速度快、功耗低、通信强的特点,适用于复杂系统的设计。作为特殊应用集成电路中的一种半定制电路,它既解决了定制电路的不足,又克服了原有可编程器件门电路数量有限的缺陷。

图3-1 GPU具有更多的计算单元用于数据处理 [1]

3.1.2 面向CPU、GPU、FPGA的异构计算技术

随着越来越多的智能设备接入物联网,以及更加多元化的边缘计算应用场景,这使得计算所面临的硬件结构和网络结构更加多样,也导致计算机体系结构日趋异构化。基于各类专用硬件平台的应用不断增加,且这些异构硬件在处理特定任务时往往能够提供比CPU更高的性能,因此,边缘计算应用场景下的计算模式已逐渐由CPU主导转向CPU与其他硬件结构相配合的方式。

❑CPU+GPU:虽然CPU已经能够很好地处理通用计算任务,但其核心数量的限制使得在大量数据处理、并行计算和图像处理等方面的表现远不如GPU,因此将CPU和GPU相组合能够更加高效地完成计算任务。由于CPU的核心相对较少且每个核心的控制能力较强,因此通常作为主机。而GPU的核心较多,当出现大量数据需要处理时CPU会将处理任务交给GPU执行,从而提高整体效率。

❑CPU+FPGA:由于FPGA具有灵活可编程、速度快、功耗低等特点,目前已出现了许多CPU与FPGA结合的应用方式。例如将处理器高度嵌入FPGA可编程器件中,从而实现CPU与FPGA的紧耦合;将FPGA作为外部独立的计算模块,通过网络、数据总线、I/O接口等机制与处理器连接等。 o9uj1kEY5iLuYEV5Ch66VuF/SaoIgfN27s8sBJXXEDw1C/sPo8NQBsHVM7Cus3sb

点击中间区域
呼出菜单
上一章
目录
下一章
×