大家知道,不同架构的处理器硬件能力各有不同:

  • CPU是标准的多指令单数据流的处理器,它适合逻辑控制以及任务调度
  • GPU是单指令多数据的处理器,它支持大规模的并行计算,适合图像渲染
  • DSP是专用的数字信号处理处理器
  • FPGA对高并行性,低延时的场合特别适合

异构计算设备是指在同一个电脑系统中有两种以上、架构差异很大的计算设备,例如同时有CPU和GPU。异构计算能够提供更灵活的组合方案。

异构计算概念的产生要从 CPU 的发展历程说起。

现在是一个大数据的时代,随着物联网的广泛应用,每时每刻都会产生海量的数据,这些数据对应着庞大的计算量,这对硬件算力的要求就越来越高了。

人们在最初提高算力的时候主要是去提高 CPU 运行的主频,等到 CPU 的主频提高到极限以后,就开始想办法把 CPU 的内核做成多核,这种多核系统是一种同构(相同结构)多核的并行计算系统。

通过多核是可以明显提高性能,但是有一些计算场景在处理数据的时候,它会需要大量的乘加的计算、而有的只需要去做一些事务性的调度或者传输,完成的任务各不相同,此时采用同构计算的多核CPU不能够满足多种计算的需求,所以人们就想到了异构计算,对于不同的任务,采用不同的架构的处理器去进行计算,做到物尽其用,提高它的算力。

 

这里举个例子:现在人工智能领域非常火的英伟达显卡,它内部的每个计算单元在最开始是去做 3D 的渲染计算用的, 它和 CPU 是不同的架构,但当它们同时存在于一个系统当中,它们可以根据各自的优势处理不同的任务 ,充分发挥各个架构的算力,所以来说异构并行计算的系统是现在在大数据、物联网、人工智能时代的必然产物。

但是不同的硬件处理器平台对软件开发人员来说,开发语言、环境都是不一样的,这为开发带来了难度,所以一个统一的开发标准去桥接不同硬件极为关键,OpenCL 的出现就为异构系统并行计算提供了这样的一个标准。

下一讲 我们介绍OpenCL。