典型计算元素特性
现有的计算元素(或处理器)具有不同的特性,这影响它们处理效率。下图显示了不同计算元素的处理效率与应用程序的处理特性(例如顺序与并行)的关系图。每个计算元素都有不同的特征来提高其效率和性能。这些特性从更通用到更特定的解决方案有所不同,由这些不同/可选的特征集定义。
现有处理器的计算特性
中央处理器(CPU)中央处理器是最流行的存储程序架构的处理器(计算元素)。程序被描述为一系列指令,所以通常每个指令会逐步执行操作。由于这种逐步执行,CPU通常适用于任何顺序操作的组合。另一方面,基本CPU不适合并行操作。为了解决这个问题,今天的CPU具有几个附加的可选功能。
•
单指令多数据(SIMD)/向量类型数据纯CPU不适合数据并行,因为内部数据路径带宽限制。为了解决这个限制,一些CPU具有SIMD或向量扩展,可以在一个指令或操作中处理多个(通常是4到16)数据流。此外,随着长数据字交易和更大的寄存器文件,与外部资源(如内存)的通信也将得到改善,但在处理大量内容时,仍会出现瓶颈。
• 多核
由于工艺技术趋势,在合理的功耗下提高单个CPU的性能是困难的。多核是解决这个问题的一种方法。如果应用程序具有多个(分离的)任务,多核将发挥很好的作用,但是如果它具有紧密耦合的内部通信,有时处理器间通信(IPC)将瓶颈操作。
数字信号处理器(DSP)
DSP旨在加速算术操作(加法、减法、乘法、除法),例如乘积累加操作。
数据压缩/解压缩、数字滤波、控制、识别等都包括在内,这些算法大量使用乘积累加计算(MAC),这使得DSP能够高速管理这些过程。
图形处理单元通用计算(GPGPU)
GPGPU是一种将GPU的计算资源应用于图像处理之外目的的技术。图形处理单元(GPU)具有成千上万的算术核心(着色器单元),并通过并行重复简单的数值计算来实现图像处理的高速执行。利用这一特性,可以以高速执行类似图像处理的处理,其中包括人工智能(AI),如机器学习和神经网络、虚拟货币挖矿、科技研究中的数值计算和模拟以及流体计算。
要利用GPGPU,需要不同于通用处理器的编程开发环境。为了充分利用它,需要适合该架构的编程技术,编程开发环境例如NVIDIA的“CUDA”(统一设备架构)、Microsoft的“Direct Compute”和Khronos Group的“OpenCL”等。
专用加速器(例如ISP, xNN)
专用加速器基于为特定应用定制的体系结构。例如,数据流和存储器遵循专用方案。加速器甚至可以提供定制逻辑,形成高度专业化的计算元素。这种专门化极大地增加了计算效率和性能,但以牺牲通用性为代价。使用专用加速器可能需要专用和/或专有编程,甚至需要专用工具和框架。