本次博客通过类比人工智能场景中比较热门的处理器类型,来简单介绍关于处理器系统的相关内容。
由于对计算性能要求的提升,处理器在经过单核、多核时代之后,开始慢慢进入异构计算,来大幅度的提升处理器的计算性能,异构计算就是通过使用不同的计算单元来分担CPU的工作,以便让CPU去处理更多的其他的数据,来达到计算性能提升的目的。
在人工智能的一些场景中,用的比较多的处理单元有CPU、GPU、FPGA、ASIC。
CPU作为通用处理器,兼顾计算和控制,通用性好、
通用型,适用复杂计算、
灵活、易用、通用
性能较低
其处理器系统是SISD(Single Instruction Single Data )型;
其处理器系统是SISD(Single Instruction Single Data )型;
SISD:单指令流单数据流,每个指令部件每次仅译码一条指令,而且在执行时仅为操作部件提供一份数据。如下图所示,
GPU
主要擅长做类似图像处理的并行计算,我们的智能手机上一般都有GPU,其处理器系统是
SIMD(Single Instruction Multiple Data)型,适用于规则单一,大数量的并行计算场景,比如智能医疗,这次的疫情中,通过输入大量的肺部感染的病人的相似的图片,去分类肺部感染的病例,可以帮助医生处理更多的病例,减轻医院的压力。
SIMD:单指令流多数据流是一种采用一个控制器来控制多个处理器,同时对一组数据中的每一个分别执行相同的操作从而实现空间上的并行性的技术,如下图所示,---------------------------------------------------------------摘自百度百科
ASIC(专用集成电路)
与
FPGA均为MIMD(Multiple Instruction Multiple Data)
型处理器。
ASIC
是一种专用芯片,其具有体积小、功耗低、计算性能高、计算效率高但其算法固定,一旦算法变化就可能无法使用,是为了某种特定的需求而专门定制的芯片。ASIC芯片的计算能力和计算效率都可以根据算法需要进行定制。
优点是体积小、功耗低、计算性能高、计算效率高、芯片出货量越大成本越低。缺点是算法是固定的,一旦算法变化就可能无法使用。
FPGA(现场可编程门阵列)
作为一种高性能、低功耗的可编程芯片,可以根据客户定制来做针对性的算法设计,可以通过客户的意愿通过编程来改变其功能性,可以看作是一个万能的专用芯片,适用于不规则批量计算场景,如视频处理等场景。
相比较而言,
FPGA
的优点包括:
高性能:并行能力强,实时性好。
可编程能力强:定制化能力强,适合深度定制,快速上线。
高能效比:相对于CPU/GPU
功耗较低。
多指令流多数据流MIMD是用于实现并行性的技术。MIMD具有多个异步和独立工作的处理器。在任何时钟周期内,不同的处理器可以在不同的数据片段上执行不同的指令,也即是同时执行多个指令流,而这些指令流分别对不同数据流进行操作。MIMD架构可以用于诸如计算机辅助设计、计算机辅助制造、仿真、建模、通信交换机的多个应用领域。------------------------------------------------------------------------来自百度百科
下表是不同类型处理器系统的处理动作列表,可以参考对比。
处理器系统 | 处理动作 |
SISD | 一次执行一个动作 |
SIMD | 一次执行多个相同的动作 |
MIMD | 一次执行多个不同的动作 |