BPU, CPU, DPU, GPU, IPU, MCU, MPU, NPU, SoC,TPU 区别

注:机翻,未校。


Difference between CPU, MPU, MCU, SOC and SOPC

August 25, 2023

What is CPU? 什么是 CPU?

The CPU (Central Processing Unit) is the computational and control core of a computer.
CPU(中央处理器)是计算机的计算和控制核心。

The CPU is composed of an arithmetic logic unit, a control unit, registers, and buses that facilitate communication between them. Its primary functions include interpreting computer instructions and processing data in computer software.
CPU 由一个算术逻辑单元、一个控制单元、寄存器和促进它们之间通信的总线组成。其主要功能包括解释计算机指令和在计算机软件中处理数据。

CPU (Central Processing Unit)

Before the 1970s, central processors consisted of multiple independent units. Later, integrated circuit-manufactured central processors, known as microprocessors, emerged. These highly compact components are what we refer to as microprocessors, and the most complex circuits within them are designed as powerful individual units, commonly known as cores.
在 1970 年代之前,中央处理器由多个独立的单元组成。后来,出现了集成电路制造的中央处理器,称为微处理器。这些高度紧凑的组件就是我们所说的微处理器,其中最复杂的电路被设计成强大的单个单元,通常称为内核。

The operation of almost all CPUs can be divided into four stages: Fetch, Decode, Execute, and Writeback. The CPU retrieves instructions from memory or high-speed cache, places them in an instruction register, decodes them, and then executes the instructions. The concept of a computer’s programmability primarily pertains to programming the CPU.
几乎所有 CPU 的操作都可以分为四个阶段:Fetch、Decode、Execute 和 Writeback。CPU 从内存或高速缓存中检索指令,将它们放入指令寄存器中,对其进行解码,然后执行指令。计算机可编程性的概念主要与对 CPU 进行编程有关。

What is MPU? 什么是 MPU?

An MPU (Micro Processor Unit), also known as a microprocessor, is a programmable special integrated circuit.
MPU(微处理器单元),也称为微处理器,是一种可编程的特殊集成电路。

An MPU is just a processor that needs to be paired with numerous other peripherals like memory to constitute a system.
MPU 只是一个处理器,需要与许多其他外围设备(如内存)配对才能构成一个系统。

Microprocessors typically represent powerful CPUs (akin to enhanced CPUs). These chips often serve as the core CPU in computers and high-end systems.
微处理器通常代表强大的 CPU(类似于增强型 CPU)。这些芯片通常用作计算机和高端系统中的核心 CPU。

61R62AY8N9L. SL1010
They gained significant popularity in the 1980s when microcomputers and gaming consoles utilized MPUs. Over time, MPUs have become smaller in size. Nowadays, only Intel and AMD’s x86 series CPUs are considered as MPUs. These CPUs have also become increasingly complex, and labeling them as “microprocessors” might be somewhat inadequate.
它们在 1980 年代微型计算机和游戏机使用 MPU 时获得了极大的普及。随着时间的推移,MPU 的尺寸变得越来越小。目前,只有 Intel 和 AMD 的 x86 系列 CPU 被视为 MPU。这些 CPU 也变得越来越复杂,将它们标记为“微处理器”可能有些不足。

In the realm of personal computers, you can observe motherboards similar to the diagram above. By attaching components like the CPU, memory modules, sound cards, etc., a complete computer system is formed. The entire motherboard is large in size and intricate in manufacturing.
在个人电脑领域,您可以观察到类似于上图的主板。通过连接 CPU、内存模块、声卡等组件,形成一个完整的计算机系统。整个主板体积大,制造复杂。

What is MCU? 什么是 MCU?

An MCU (Micro Control Unit), also known as a microcontroller, refers to a microcomputer where, with the emergence and development of large-scale integrated circuits, the central processor, memory, timers/counters, various input/output interfaces, etc., are all integrated onto a single chip. It can operate with minimal components (such as resistors, capacitors) to form a minimal system capable of running code.
MCU(Micro Control Unit),也称为微控制器,是指随着大规模集成电路的出现和发展,将中央处理器、存储器、定时器/计数器、各种输入/输出接口等全部集成在单个芯片上的微型计算机。它可以使用最少的组件(例如电阻器、电容器)来构建能够运行代码的最小系统。

Micro Processor Unit (MPU)

Compared to the general-purpose microprocessors used in personal computers, an MCU emphasizes self-sufficiency (not relying on external hardware) and cost-effectiveness.
与个人计算机中使用的通用微处理器相比,MCU 强调自给自足(不依赖外部硬件)和成本效益。

Its greatest advantage is its compact size, allowing it to be placed within devices, but it has limited storage capacity, simple input/output interfaces, and lower functionality.
它最大的优点是体积小巧,可以放置在设备内,但它的存储容量有限,输入/输出接口简单,功能较低。

The development of MCUs has gone through phases including 8-bit 8051 microcontrollers, 16-bit AVR microcontrollers, and 32-bit STM microcontrollers.
MCU 的开发经历了 8 位 8051 微控制器、16 位 AVR 微控制器和 32 位 STM 微控制器等多个阶段。

MCUs integrate processors and various modules such as USB controllers, UART controllers, memory, Flash, etc. With only a few external components, an electronic system can be built.
MCU 集成了处理器和各种模块,如 USB 控制器、UART 控制器、存储器、闪存等。只需几个外部元件,就可以构建一个电子系统。

What is SOC and SOPC? 什么是 SOC 和 SOPC?

A System on a Chip (SOC) is an integrated circuit that integrates a computer or other electronic systems onto a single chip.
片上系统 (SOC) 是将计算机或其他电子系统集成到单个芯片上的集成电路。

Embedded Wi-Fi SoC Chip W600Embedded Wi-Fi SoC Chip W600

To provide a comparison: an MCU is chip-level, while an SOC is system-level. It combines the advantages of MCUs and MPUs, having built-in RAM and ROM while also being powerful like an MPU. It can store and execute system-level code, meaning it can run operating systems (primarily Linux OS).
做个比较:MCU 是芯片级的,而 SOC 是系统级的。它结合了 MCU 和 MPU 的优点,具有内置 RAM 和 ROM,同时也像 MPU 一样强大。它可以存储和执行系统级代码,这意味着它可以运行操作系统(主要是 Linux 操作系统)。

Additionally, SOPC is a concept worth understanding. Compared to the aforementioned concepts, SOPC is not as frequently encountered, but its significance remains undiminished.
此外,SOPC 是一个值得理解的概念。与上述概念相比,SOPC 并不经常遇到,但其重要性仍然没有减弱。

SOPC (System On a Programmable Chip) allows hardware configurations to be changed, meaning you can construct your own chip.
SOPC (System On a Programmable Chip) 允许更改硬件配置,这意味着您可以构建自己的芯片。

MCU Vs. MPU MCU 与 MPU

The MCU integrates on-chip peripheral devices, and you can directly add simple peripheral devices (resistors, capacitors) to run the code. In essence, it is still a complete single-chip microcomputer with a processor and various interfaces. All development is based on the existing system architecture. What the user needs to do is to develop software programs and add external devices.
MCU 集成了片上外设,您可以直接添加简单的外设(电阻、电容)来运行代码。从本质上讲,它仍然是一台完整的单片机,带有处理器和各种接口。所有开发都基于现有的系统架构。用户需要做的是开发软件程序并添加外部设备。

The MPU does not have peripheral devices (such as memory arrays), it is a highly integrated general-purpose processor, and it is an MCU that removes integrated peripherals. MCU, such as ARM’s Cortex-A series, cannot run the code directly, because it is essentially an enhanced version of the CPU, and corresponding RAM and ROM must be added.
MPU 没有外围设备(如内存阵列),它是一个高度集成的通用处理器,它是一个去除集成外设的 MCU。MCU 比如 ARM 的 Cortex-A 系列,不能直接运行代码,因为它本质上是 CPU 的增强版,必须增加相应的 RAM 和 ROM。

FeatureMicrocontroller (MCU)Microprocessor (MPU)
Bit WidthMainstream: 8-32 bits, Some 64-bitMinimum: 32 bits, Mainstream: 64-bit
Operating FrequencySeveral MHz to several hundreds of MHzMainstream: From hundreds of MHz to several GHz
ArchitecturePipeline or random logic systems are mainstream, with some being superscalarSuperscalar architecture is mainstream
Memory ManagementCan have some external memory, but main memory is built-in, with some having built-in cache and MMC unitsMainstream to have external memory, with some having built-in cache and MMC units
Instruction SetBasic arithmetic and logic operations, limited DSP and floating-point operation support in high-end versionsSupports a wider range of instructions, including DSP and floating-point operations
PriceLowHigh
ExamplesARM Cortex-M (Designed for small-footprint/low-power controller applications)ARM Cortex-A (Developed with a focus on high-performance application processors)

via:


CPU、MPU、MCU、SOC 概念与区别

1. 概念

CPU (Central Processing Unit)

CPU 是一台计算机的运算核心和控制核心。CPU 由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。众所周知的三级流水线:取址、译码、执行的对象就是 CPU,差不多所有的 CPU 的运作原理可分为四个阶段:提取 (Fetch)、解码 (Decode)、执行 (Execute) 和写回 (Writeback)。 CPU 从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对 CPU 的编程。

MPU (Micro Processor Unit)

MPU 微处理器 (不是微控制器 MCU,很多人会把微处理器和微控制器混淆),通常代表一个功能强大的 CPU (暂且理解为增强版的 CPU 吧), 但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心 CPU。例如 Intel 的 X86,ARM 的一些 Cortex-A 芯片如飞思卡尔 i.MX6、全志 A20、TI AM335X 等都属于 MPU。

**MCU (Micro Control Unit)**MCU (Micro Control Unit):叫微控制器,其实就是我们平常说的单片机。是指随着大规模集成电路的出现及其发展,将计算机的 CPU、RAM、ROM、定时计数器和多种 I/O 接口集成在一片芯片上,形成芯片级的芯片,比如 51、STC、AVR、Cortex-M 这些芯片,内部除了 CPU 外还有 RAM、ROM,也就是在一块芯片中集成了整个计算机系统,可以直接加简单的外围器件 (电阻,电容) 就可以运行代码了。它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。而像 ARM(Cortex-A 系列)直接放代码是运行不了的,因为它本质上只是增强版的 CPU,必须添加相应的 RAM 和 ROM。

SoC (System on Chip)

SoC 片上系统,一个能够实现一定功能的电路系统由多个模块构成, 如处理器、接口、存储器、模数转换器等等。这些功能模块可以由分立的器件来实现,然后在印刷电路板(PCB)上组合起来, 最终形成片上系统。MCU 只是芯片级的芯片,而 SoC 是系统级的芯片,它既 MCU 那样有内置 RAM、ROM 同时又像 MPU 那样强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(以 Linux OS 为主)(将就认为是 MCU 集成化与 MPU 强处理力各优点二合一)。Soc 集成了很多个 MCU 的功能,以前的由多个 MCU 协同干的事情被集成了,MCU 没有了,取而代之的是对外的 IO 引脚,连接 IO 引脚就可以实现交互,完成以前 MCU 的功能。因此,使用 Soc 集成化程度更高、体积更小、压缩成本。

在这里插入图片描述

SoPC (System On a Programmable Chip)
SOPC 是一种 SOC(System 0n Chip)的解决方案。是由 Altera 公司提出的,使用可编程逻辑器件(FPGA) 构造片上系统。SOPC 是 SOC 的一种解决方案,也属于 SOC 的一种,这种解决方案的优点是:灵活性高,可扩展性强,开发周期短,不需要掩膜和流片。缺点是:单片成本高。SoPC 与 MCU、MPU、SoC 最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。

2. 区别

2.1 MCU 和 MPU 的区别

MCU 和 MPU 都是 CPU 发展出来的分枝之一。MCU 集成了片上外围器件,可以直接加简单的外围器件 (电阻,电容) 就可以运行代码了。它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。MPU 不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的 MCU。MCU 如 ARM 的 Cortex-A 系列,直接放代码是运行不了的,因为它本质上只是增强版的 CPU,必须添加相应的 RAM 和 ROM。
pYYBAGJL1vqAei1kAAMgPIryNmc986.png
在这里插入图片描述

2.2 CPU 与 SoC 的区别

SoC 可以认为是将 MCU 集成化与 MPU 强处理力各优点二合一,其中 MCU 是 CPU 集成了各类外设,MPU 是增强版的 CPU。

在这里插入图片描述

可以从下图中直观地看出 CPU 与 SoC 的区别。

在这里插入图片描述
目前芯片的发展方向是从 CPU 到 SoC,现在已经没有纯粹的 CPU 了,都是 SoC。ARM 出卖的内核其实就是 CPU (当然还需要总线),各种外设是半导体厂商自己添加的。

2.3 SoPC 与 MCU、MPU、SoC 的区别

SoPC 与 MCU、MPU、SoC 最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。举个例子说明便于理解,单片机的硬件配置是固化好了的, 我们能够编程修改的就是软件配置,本来是串口通信功能,通过修改代码变成 AD 采样功能,也就是说硬件配置是固定了的,我们只能通过修改软件来选择其中的一项或多项功能;而 SoPC 可以修改硬件配置信息使其成为相应的芯片,可以是 MCU,也可以是 SoC。


via:


什么是 CPU、GPU、TPU、DPU、NPU、BPU?有什么区别?

技术日新月异,物联网、人工智能、深度学习等遍地开花,各类芯片名词 GPU, TPU, NPU,DPU 层出不穷… 它们都是什么鬼?又有什么不一样?

01 CPU

CPU,作为机器的 “大脑”,它是布局谋略、发号施令、控制行动的 “总司令官”,担负着整个计算机系统的核心任务。

CPU 由多个结构组成,其中包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache),它们之间通过数据、控制及状态总线进行通讯。这些结构和通讯方式是 CPU 完成各种任务的必要基础,也是提高计算机运算效率的关键因素。

简单来说:CPU 架构由计算单元、控制单元和存储单元三部分组成,如下图所示:

图片

图片

从字面上我们也很好理解,计算单元主要执行算术运算、移位等操作以及地址运算和转换;存储单元主要用于保存运算中产生的数据以及指令等;控制单元则对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

所以一条指令在 CPU 中执行的过程是这样的:读取到指令后,通过指令总线送到控制器(黄色区域)中进行译码,并发出相应的操作控制信号;然后运算器(绿色区域)按照操作指令对数据进行计算,并通过数据总线将得到的数据存入数据缓存器(大块橙色区域)。过程如下图所示:

图片

图:CPU 执行指令图

CPU 遵循的是冯诺依曼架构,其核心就是:存储程序,顺序执行。在这个结构图中,负责计算的绿色区域占的面积似乎太小了,而橙色区域的缓存 Cache 和黄色区域的控制单元占据了大量空间。

因为 CPU 的架构中需要大量的空间去放置存储单元(橙色部分)和控制单元(黄色部分),相比之下计算单元(绿色部分)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。

另外,因为遵循冯诺依曼架构(存储程序,顺序执行),CPU 就像是个一板一眼的管家,人们吩咐的事情它总是一步一步来做。但是随着人们对更大规模与更快处理速度的需求的增加,这位管家渐渐变得有些力不从心。

于是,能不能把多个处理器放在同一块芯片上,让它们一起来做事,这样效率不就提高了吗?GPU 便由此诞生了。

02 GPU

GPU 全称为 Graphics Processing Unit,中文为图形处理器,就如它的名字一样,GPU 最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。

图片

为什么 GPU 特别擅长处理图像数据呢?这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,也就成了 GPU 的天然温床。

GPU 简单架构如下图所示:

图片

图:GPU 微架构示意图

从架构图我们就能很明显的看出,GPU 的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。

但 GPU 无法单独工作,必须由 CPU 进行控制调用才能工作。CPU 可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用 GPU 进行并行计算。

注:GPU 中有很多的运算器 ALU 和很少的缓存 cache,缓存的目的不是保存后面需要访问的数据的,这点和 CPU 不同,而是为线程 thread 提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问 dram。

再把 CPU 和 GPU 两者放在一张图上看下对比,就非常一目了然了。

图片

GPU 的工作大部分都计算量大,但没什么技术含量,而且要重复很多很多次。

借用知乎上某大神的说法,就像你有个工作需要计算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已;而 CPU 就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?

GPU 就是用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生 A 和小学生 B 的工作没有什么依赖性,是互相独立的。

有一点需要强调,虽然 GPU 是为了图像处理而生的,但是我们通过前面的介绍可以发现,它在结构上并没有专门为图像服务的部件,只是对 CPU 的结构进行了优化与调整,所以现在 GPU 不仅可以在图像处理领域大显身手,它还被用来科学计算、密码**、数值分析,海量数据处理(排序,Map-Reduce 等),金融分析等需要大规模并行计算的领域。

所以 GPU 也可以认为是一种较通用的芯片。

03 TPU

按照上文所述,CPU 和 GPU 都是较为通用的芯片,但是有句老话说得好:万能工具的效率永远比不上专用工具。

图片

随着人们的计算需求越来越专业化,人们希望有芯片可以更加符合自己的专业需求,这时,便产生了 ASIC(专用集成电路)的概念。

ASIC 是指依产品需求不同而定制化的特殊规格集成电路,由特定使用者要求和特定电子系统的需要而设计、制造。当然这概念不用记,简单来说就是定制化芯片。

因为 ASIC 很 “专一”,只做一件事,所以它就会比 CPU、GPU 等能做很多件事的芯片在某件事上做的更好,实现更高的处理速度和更低的能耗。但相应的,ASIC 的生产成本也非常高。

TPU(Tensor Processing Unit, 张量处理器)就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款 ASIC。

原来很多的机器学习以及图像处理算法大部分都跑在 GPU 与 FPGA(半定制化芯片)上面,但这两种芯片都还是一种通用性芯片,所以在效能与功耗上还是不能更紧密的适配机器学习算法,而且 Google 一直坚信伟大的软件将在伟大的硬件的帮助下更加大放异彩,所以 Google 便想,我们可不可以做出一款专用机机器学习算法的专用芯片,TPU 便诞生了。

据称,**TPU 与同期的 CPU 和 GPU 相比,可以提供 15-30 倍的性能提升,以及 30-80 倍的效率(性能 / 瓦特)提升。**初代的 TPU 只能做推理,要依靠 Google 云来实时收集数据并产生结果,而训练过程还需要额外的资源;而第二代 TPU 既可以用于训练神经网络,又可以用于推理。

看到这里你可能会问了,为什么 TPU 会在性能上这么牛逼呢?

嗯,谷歌写了好几篇论文和博文来说明这一原因,所以仅在这里抛砖引玉一下。

图片

图片

如上图所示,TPU 在芯片上使用了高达 24MB 的局部内存,6MB 的累加器内存以及用于与主控处理器进行对接的内存,总共占芯片面积的 37%(图中蓝色部分)。

**这表示谷歌充分意识到了片外内存访问是 GPU 能效比低的罪魁祸首,因此不惜成本的在芯片上放了巨大的内存。**相比之下,英伟达同时期的 K80 只有 8MB 的片上内存,因此需要不断地去访问片外 DRAM。

另外,**TPU 的高性能还来源于对于低运算精度的容忍。**研究结果表明,低精度运算带来的算法准确率损失很小,但是在硬件实现上却可以带来巨大的便利,包括功耗更低、速度更快、占芯片面积更小的运算单元、更小的内存带宽需求等…TPU 采用了 8 比特的低精度运算。

到目前为止,TPU 其实已经干了很多事情了,例如机器学习人工智能系统 RankBrain,它是用来帮助 Google 处理搜索结果并为用户提供更加相关搜索结果的;还有街景 Street View,用来提高地图与导航的准确性的;当然还有下围棋的计算机程序 AlphaGo!

04 NPU

讲到这里,相信大家对这些所谓的 “XPU” 的套路已经有了一定了解,我们接着来。

所谓NPU(Neural network Processing Unit), 即神经网络处理器。顾名思义,这家伙是想用电路模拟人类的神经元和突触结构啊!

图片

怎么模仿?那就得先来看看人类的神经结构 —— 生物的神经网络由若干人工神经元结点互联而成,神经元之间通过突触两两连接,突触记录了神经元之间的联系。

如果想用电路模仿人类的神经元,就得把每个神经元抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。

为了表达特定的知识,使用者通常需要(通过某些特定的算法)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为 “学习”。

在学习之后,人工神经网络可通过习得的知识来解决特定的问题。

这时不知道大家有没有发现问题 —— 原来,由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括 x86 和 ARM 等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。

这时就必须另辟蹊径 —— 突破经典的冯・诺伊曼结构!

神经网络中存储和处理是一体化的,都是通过突触权重来体现。而冯・诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯・诺伊曼结构的经典计算机(如 X86 处理器和英伟达 GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。

05 ASIC

ASIC(Application Specific Integrated Circuit)是一种为专门目的而设计的集成电路。无法重新编程,效能高功耗低,但价格昂贵。近年来涌现出的类似 TPU、NPU、VPU、BPU 等令人眼花缭乱的各种芯片,本质上都属于 ASIC。ASIC 不同于 GPU 和 FPGA 的灵活性,定制化的 ASIC 一旦制造完成将不能更改,所以初期成本高、开发周期长的使得进入门槛高。目前,大多是具备 AI 算法又擅长芯片研发的巨头参与,如 Google 的 TPU。由于完美适用于神经网络相关算法,ASIC 在性能和功耗上都要优于 GPU 和 FPGA,TPU1 是传统 GPU 性能的 14-16 倍,NPU 是 GPU 的 118 倍。寒武纪已发布对外应用指令集,预计 ASIC 将是未来 AI 芯片的核心。

06 BPU

Brain Processing Unit,大脑处理器

图片

是由地平线科技提出的嵌入式人工智能处理器架构。第一代是高斯架构,第二代是伯努利架构,第三代是贝叶斯架构。目前地平线已经设计出了第一代高斯架构,并与英特尔在 2017 年 CES 展会上联合推出了 ADAS 系统(高级驾驶辅助系统)。

07 DPU

Deep learning Processing Unit, 即深度学习处理器

图片

最早由国内深鉴科技提出,基于 Xilinx 可重构特性的 FPGA 芯片,设计专用的深度学习处理单元(可基于已有的逻辑单元,设计并行高效的乘法器及逻辑电路,属于 IP 范畴),且抽象出定制化的指令集和编译器(而非使用 OpenCL),从而实现快速的开发与产品迭代。事实上,深鉴提出的 DPU 属于半定制化的 FPGA。

嵌入式神经网络处理器(NPU)采用 “数据驱动并行计算” 的架构,特别擅长处理视频、图像类的海量多媒体数据。

NPU 处理器专门为物联网人工智能而设计,用于加速神经网络的运算,解决传统芯片在神经网络运算时效率低下的问题。

在 GX8010 中,CPU 和 MCU 各有一个 NPU,MCU 中的 NPU 相对较小,习惯上称为 SNPU。

NPU 处理器包括了乘加、激活函数、二维数据运算、解压缩等模块。

乘加模块用于计算矩阵乘加、卷积、点乘等功能,NPU 内部有 64 个 MAC,SNPU 有 32 个。

激活函数模块采用最高 12 阶参数拟合的方式实现神经网络中的激活函数,NPU 内部有 6 个 MAC,SNPU 有 3 个。

二维数据运算模块用于实现对一个平面的运算,如降采样、平面数据拷贝等,NPU 内部有 1 个 MAC,SNPU 有 1 个。

解压缩模块用于对权重数据的解压。为了解决物联网设备中内存带宽小的特点,在 NPU 编译器中会对神经网络中的权重进行压缩,在几乎不影响精度的情况下,可以实现 6-10 倍的压缩效果。

不,据说每过 18 天,集成电路领域就会多出一个 XPU,直到 26 个字母被用完。

这被戏称为AI 时代的 XPU 版摩尔定律。

据不完全统计,已经被用掉的有:

▍APU

Accelerated Processing Unit。目前还没有 AI 公司将自己的处理器命名为 APU,因为 AMD 早就用过 APU 这个名字了。APU 是 AMD 的一个处理器品牌。AMD 在一颗芯片上集成传统 CPU 和图形处理器 GPU,这样主板上将不再需要北桥,任务可以灵活地在 CPU 和 GPU 间分配。AMD 将这种异构结构称为加速处理单元,即 APU。

Audio Processing Unit。声音处理器,顾名思义,处理声音数据的专用处理器。不多说,生产 APU 的芯片商有好多家。声卡里都有。

▍BPU

Brain Processing Unit。地平线机器人(Horizon Robotics)以 BPU 来命名自家的 AI 芯片。相比于国内外其他 AI 芯片 start-up 公司,地平线的第一代 BPU 走的相对保守的 TSMC 的 40nm 工艺。BPU 已经被地平线申请了注册商标,其他公司就别打 BPU 的主意了。

▍CPU

上文也进行了详细的介绍。也不会有 AI 公司将自己的处理器命名为 CPU 的。不过,CPU 与 AI 处理器并不冲突。

▍DPU

Deep-Learning Processing Unit。深度学习处理器。创立于 2010 年的 wave computing 公司将其开发的深度学习加速处理器称为 Dataflow Processing Unit (DPU),应用于数据中心。

▍EPU

Emotion Processing Unit 伴随机情绪机器人而生,可以让机器人具有情绪。从官方渠道消息看,EPU 本身并不复杂,也不需要做任务量巨大的神经网络计算,是基于 MCU 的芯片。

▍FPU

Floating Point Unit。浮点单元,不多做解释了。现在高性能的 CPU、DSP、GPU 内都集成了 FPU 做浮点运算。

▍GPU

Graphics Processing Unit。图形处理器。GPU 原来最大的需求来自 PC 市场上各类游戏对图形处理的需求。但是随着移动设备的升级,在移动端也逐渐发展起来。

▍HPU

Holographic Processing Unit。全息处理器。Microsoft 专为自家 Hololens 应用开发的。

▍IPU

Intelligence Processing Unit。智能处理器。以 IPU 命名芯片的有两家公司 ——Graphcore 和 Mythic。

Image Cognition Processor。图像认知处理器 ICP,加拿大公司 CogniVue 开发的用于视觉处理和图像认知的 IP。

Image Processing Unit。图像处理器。一些 SOC 芯片中将处理静态图像的模块称为 IPU。但是,IPU 不是一个常用的缩写,更常见的处理图像信号的处理器的缩写为下面的 ISP。

Image Signal Processor。图像信号处理器。这个话题也不是一个小话题。ISP 的功能,简单的来说就是处理 camera 等摄像设备的输出信号,实现降噪、Demosaicing、HDR、色彩管理等功能。

▍KPU

Knowledge Processing Unit。嘉楠耘智(canaan)号称 2017 年将发布自己的 AI 芯片 KPU。嘉楠耘智要在 KPU 单一芯片中集成人工神经网络和高性能处理器,主要提供异构、实时、离线的人工智能应用服务。这又是一家向 AI 领域扩张的不差钱的矿机公司。作为一家做矿机芯片(自称是区块链专用芯片)和矿机的公司,嘉楠耘智累计获得近 3 亿元融资,估值近 33 亿人民币。据说嘉楠耘智近期将启动股改并推进 IPO。

另:Knowledge Processing Unit 这个词并不是嘉楠耘智第一个提出来的,早在 10 年前就已经有论文和书籍讲到这个词汇了。只是,现在嘉楠耘智将 KPU 申请了注册商标。

▍MPU

Micro Processing Unit。微处理器。MPU,CPU,MCU,这三个概念差不多,知道就行了。

Mind Processing Unit。意念处理器,听起来不错。「解读脑电波」,「意念交流」,永恒的科幻话题。如果采集大量人类「思考」的脑电波数据,通过深度学习,再加上强大的意念处理器 MPU,不知道能否成为 mind-reader。如果道德伦理上无法接受,先了解一下家里宠物猫宠物狗的「想法」也是可以的吗。再进一步,从 mind-reader 发展为 mind-writer,持续升级之后,是不是就可以成为冰与火中的 Skinchanger?

▍NPU

Neural-Network Processing Unit。与 GPU 类似,神经网络处理器 NPU 已经成为了一个通用名词,而非某家公司的专用缩写。由于神经网络计算的类型和计算量与传统计算的区别,导致在进行 NN 计算的时候,传统 CPU、DSP 甚至 GPU 都有算力、性能、能效等方面的不足,所以激发了专为 NN 计算而设计 NPU 的需求。这里罗列几个以 NPU 名义发布过产品的公司,以及几个学术圈的神经网络加速器。

▍OPU

Optical-Flow Processing Unit。光流处理器。有需要用专门的芯片来实现光流算法吗?不知道,但是,用 ASIC IP 来做加速应该是要的。

▍PPU

Physical Processing Unit。物理处理器。要先解释一下物理运算,就知道物理处理器是做什么的了。物理计算,就是模拟一个物体在真实世界中应该符合的物理定律。具体的说,可以使虚拟世界中的物体运动符合真实世界的物理定律,可以使游戏中的物体行为更加真实,例如布料模拟、毛发模拟、碰撞侦测、流体力学模拟等。开发物理计算引擎的公司有那么几家,使用 CPU 来完成物理计算,支持多种平台。但是,Ageia 应该是唯一一个使用专用芯片来加速物理计算的公司。Ageia 于 2006 年发布了 PPU 芯片 PhysX,还发布了基于 PPU 的物理加速卡,同时提供 SDK 给游戏开发者。2008 年被 NVIDIA 收购后,PhysX 加速卡产品被逐渐取消,现在物理计算的加速功能由 NVIDIA 的 GPU 实现,PhysX SDK 被 NVIDIA 重新打造。

▍QPU

Quantum Processing Unit。量子处理器。量子计算机也是近几年比较火的研究方向。作者承认在这方面所知甚少。可以关注这家成立于 1999 年的公司 D-Wave System。DWave 大概每两年可以将其 QPU 上的量子位个数翻倍一次。

▍RPU

Resistive Processing Unit。阻抗处理单元 RPU。这是 IBM Watson Research Center 的研究人员提出的概念,真的是个处理单元,而不是处理器。RPU 可以同时实现存储和计算。利用 RPU 阵列,IBM 研究人员可以实现 80TOPS/s/W 的性能。

Ray-tracing Processing Unit。光线追踪处理器。Ray tracing 是计算机图形学中的一种渲染算法,RPU 是为加速其中的数据计算而开发的加速器。现在这些计算都是 GPU 的事情了。

▍SPU

Streaming Processing Unit。流处理器。流处理器的概念比较早了,是用于处理视频数据流的单元,一开始出现在显卡芯片的结构里。可以说,GPU 就是一种流处理器。甚至,还曾经存在过一家名字为「Streaming Processor Inc」的公司,2004 年创立,2009 年,随着创始人兼董事长被挖去 NVIDIA 当首席科学家,SPI 关闭。

Speech-Recognition Processing Unit。语音识别处理器,SPU 或 SRPU。这个缩写还没有公司拿来使用。现在的语音识别和语义理解主要是在云端实现的,比如科大讯飞。科大讯飞最近推出了一个翻译机,可以将语音传回云端,做实时翻译,内部硬件没有去专门了解。和语音识别相关的芯片如下。

Space Processing Unit。空间处理器。全景摄像,全息成像,这些还都是处理我们的生活空间。当面对广阔的太阳系、银河系这些宇宙空间,是不是需要新的更强大的专用处理器呢?飞向 M31 仙女座星系,对抗黑暗武士,只靠 x86 估计是不行的。

▍TPU

Tensor Processing Unit。Google 的张量处理器。2016 年 AlphaGo 打败李世石,2017 年 AlphaGo 打败柯洁,两次人工智能催化事件给芯片行业带来的冲击无疑就是 TPU 的出现和解密。Google 在 2017 年 5 月的开发者 I/O 大会上正式公布了 TPU2,又称 Cloud TPU。

▍UPU

Universe Processing Unit。宇宙处理器。和 Space Processing Unit 相比,你更喜欢哪个?

▍VPU

Vision Processing Unit。视觉处理器 VPU 也有希望成为通用名词。作为现今最火热的 AI 应用领域,计算机视觉的发展的确能给用户带来前所未有的体验。为了处理计算机视觉应用中遇到的超大计算量,多家公司正在为此设计专门的 VPU。

Visual Processing Unit。

Video Processing Unit。视频处理器。处理动态视频而不是图像,例如进行实时编解码。

Vector Processing Unit。向量处理器。标量处理器、向量处理器、张量处理器,这是以处理器处理的数据类型进行的划分。

▍WPU

Wearable Processing Unit。一家印度公司 Ineda Systems 在 2014 年大肆宣传了一下他们针对 IOT 市场推出的 WPU 概念,获得了高通和三星的注资。Ineda Systems 研发的这款「Dhanush WPU」分为四个级别,可适应普通级别到高端级别的可穿戴设备的运算需求,可以让可穿戴设备的电池达到 30 天的持续续航、减少 10x 倍的能耗。但是,一切似乎在 2015 年戛然而止,没有了任何消息。只在主页的最下端有文字显示,Ineda 将 WPU 申请了注册商标。

Wisdom Processing Unit。智慧处理器。

▍ZPU

Zylin CPU。挪威公司 Zylin 的 CPU 的名字。为了在资源有限的 FPGA 上能拥有一个灵活的微处理器,Zylin 开发了 ZPU。ZPU 是一种 stack machine(堆栈结构机器),指令没有操作数,代码量很小,并有 GCC 工具链支持,被称为「The worlds smallest 32 bit CPU with GCC toolchain」。Zylin 在 2008 年将 ZPU 在 opencores 上开源。有组织还将 Arduino 的开发环境进行了修改给 ZPU 用。

▍其他非 xPU 的 AI 芯片

寒武纪科技(Cambricon) 中科院背景的寒武纪并没有用 xPU 的方式命名自家的处理器。媒体的文章既有称之为深度学习处理器 DPU 的,也有称之为神经网络处理器 NPU 的。陈氏兄弟的 DianNao 系列芯片架构连续几年在各大顶级会议上刷了好几篇 best paper,为其公司的成立奠定了技术基础。寒武纪 Cambricon-X 指令集是其一大特色。目前其芯片 IP 已扩大范围授权集成到手机、安防、可穿戴设备等终端芯片中。据流传,2016 年就已拿到一亿元订单。在一些特殊领域,寒武纪的芯片将在国内具有绝对的占有率。最新报道显示,寒武纪又融了 1 亿美元。

Intel Intel 在智能手机芯片市场的失利,让其痛定思痛,一改当年的犹豫,在 AI 领域的几个应用方向上接连发了狠招。什么狠招呢,就是三个字:买,买,买。在数据中心 / 云计算方面,167 亿美金收购的 Altera,4 亿美金收购 Nervana;在移动端的无人机、安防监控等方面,收购 Movidius(未公布收购金额);在 ADAS 方面,153 亿美金收购 Mobileye。Movidius 在前面 VPU 部分进行了介绍,这里补充一下 Nervana 和 Mobileye(基于视觉技术做 ADAS 方案,不是单纯的视觉处理器,所以没写在 VPU 部分)。

Nervana Nervana 成立于 2014 年,总部在 SanDiego,以提供 AI 全栈软件平台 Nervana Cloud 为主要业务。和硬件扯上关系的是,Nervana Cloud 除了支持 CPU、GPU 甚至 Xeon Phi 等后台硬件外,还提供有自家定制的 Nervana Engine 硬件架构。根据 The Next Platform 的报道「Deep Learning Chip Upstart Takes GPUs to Task」,Nervana Engine 使用 TSMC 28nm 工艺,算力 55 TOPS。报道发布不到 24 小时,就被 Intel 收购了,全部 48 位员工并入 Intel。Intel 以 Nervana Engine 为核心打造了 Crest Family 系列芯片。项目代码为「Lake Crest」的芯片是第一代 Nervana Engine,「Knights Crest」为第二代。哦,对了,Nervana 的 CEO 在创立 Nervana 之前,在高通负责一个神经形态计算的研究项目,就是上面提到的 Zeroth。

Mobileye 一家基于计算机视觉做 ADAS 的以色列公司,成立于 1999 年,总部在耶路撒冷。Mobileye 为自家的 ADAS 系统开发了专用的芯片 ——EyeQ 系列。2015 年,Tesla 宣布正在使用 Mobileye 的芯片(EyeQ3)和方案。但是,2016 年 7 月,Tesla 和 Mobileye 宣布将终止合作。随后,Mobile 于 2017 年被 Intel 以 $153 亿收入囊中,现在是 Intel 的子公司。Mobileye 的 EyeQ4 使用了 28nm SOI 工艺,其中用了 4 个 MIPS 的大 CPU core 做主控和算法调度以及一个 MIPS 的小 CPU core 做外设控制,集成了 10 个向量处理器(称为 VMP,Vector Microcode Processor)来做数据运算(有点眼熟,回去看看 Movidius 部分)。Mobileye 的下一代 EyeQ5 将使用 7nm FinFET 工艺,集成 18 个视觉处理器,并且为了达到自动驾驶的 level 5 增加了硬件安全模块。

比特大陆 Bitmain 比特大陆设计的全定制矿机芯片性能优越,让其大赚特赚。在卖矿机芯片之余,比特大陆自己也挖挖矿。总之,芯片设计能力非凡、土豪有钱的比特大陆对标 NVIDIA 的高端 GPU 芯片,任性地用 16nm 的工艺开启了自家的 AI 芯片之路。芯片测试已有月余,据传功耗 60W 左右,同步在招揽产品、市场人员。最近的推文爆出了这款 AI 芯片的名字:「智子(Sophon)」,来自著名的《三体》,可见野心不小,相信不就即将正式发布。

华为 & 海思 市场期待华为的麒麟 970 已经很长时间了,内置 AI 加速器已成公开的秘密,据传用了寒武纪的 IP,就等秋季发布会了。还是据传,海思的 HI3559 中用了自己研发的深度学习加速器。

苹果 苹果正在研发一款 AI 芯片,内部称为「苹果神经引擎」(Apple Neural Engine)。这个消息大家并不惊讶,大家想知道的就是,这个 ANE 会在哪款 iphone 中用上。

高通 高通除了维护其基于 Zeroth 的软件平台,在硬件上也动作不断。收购 NXP 的同时,据传高通也一直在和 Yann LeCun 以及 Facebook 的 AI 团队保持合作,共同开发用于实时推理的新型芯片。

还有一些诸如 Leapmind、REM 这样的 start-up,就不一一列举。

来源:整合自 CSDN\ 程序员 \ 互盟数据中心等网站!

–END–


via:


CPU、GPU、NPU,TPU,DPU,IPU 概念与区别

引言:某国对我们又是禁止半导体设备维修,又是禁止高端芯片对我们销售等一系列的打压与限制,无疑是在阻止我们 AI 与人工智能高端产业的创新发展,因为只要人工智能贯穿到制造装备以及人文生活中,我们创造的人工智能产品与品牌就会走向世界,更新世界新观念;在此环境下小编解析一下这方面的知识,希望能为我们有志之士或者从事的同仁带来创新启发;话不多说上菜:

1. CPU(中央处理器,Central Processing Unit)

中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU 是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。

图片

图片

冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU 的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。CPU 的结构:

图片

图片

2.GPU(图形处理器,Graphics Processing Unit)

图形处理器(英语:graphics processing unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。

图片

工作机制:主机总线接口模块收到来自 PCI 总线的读写操作,包括对寄存器的读写操作和对显示存储的读写操作,完成对寄存器的初始化后,基本图形模式能够正常输出显示。打开视频采集寄存器后能够实时采集显示视屏图像窗口。

图片

图片

3.NPU(神经网络处理器,Neural Network Processing Unit)

NPU 是一种专门用于进行神经网络计算的处理器。它主要用于加速人工智能和机器学习任务,包括图像识别、语音识别、自然语言处理等。NPU 通常具有高度并行、低延迟和高能效的特点,特别适合在边缘计算、自动驾驶、机器人、智能手机等设备中进行实时的人工智能计算任务。

图片

图片

4.TPU(tensor processing unit,张量处理器英语)

与图形处理器(GPU)相比,TPU 采用低精度(8 位)计算,以降低每步操作使用的晶体管数量。降低精度对于深度学习的准确度影响很小,但却可以大幅降低功耗、加快运算速度。同时,TPU 使用了脉动阵列的设计,用来优化矩阵乘法与卷积运算,减少 I/O 操作。此外,TPU 还采用了更大的片上内存,以此减少对 DRAM 的访问,从而更大程度地提升性能。TPU 也是一种专门用于进行人工智能计算的处理器。它专注于进行大规模张量计算,特别适用于深度学习任务。TPU 采用了定制的硬件架构和优化的指令集,以提供高度并行化和高效能的计算能力。TPU 通常用于加速训练和推断过程,可以大幅缩短深度学习模型的计算时间。

图片

5.DPU(Data Processing Unit,数据处理器也称深度学习处理器)

DPU 是一个新型可编程多核处理器,是一块 SoC(System On Chip)芯片。它符合行业标准,具有很高的算力,还具备高性能的网络接口,能高速解析、处理数据,并高效地将数据传输到 CPU 和 GPU 。DPU 和 CPU 的最大不同,是 CPU 擅长通用性计算任务(什么任务都能接,比较 “杂”),而 DPU 更擅长基础层应用任务(做特定的任务,比较 “专注”),例如网络协议处理,交换路由计算,加密解密,数据压缩等 “脏活累活”。

图片

大系统。DPU+CPU+GPU。例如 AI 训练类的场景,例如一些应用需要加速的场景,并且需要业务和基础设施分离。这样的时候,DPU+CPU+DPU 的最大就成为必须的选择。

图片

6.IPU(Inter-Processor Unit,基础设施处理器也称智能处理器)

它是一种用于连接多个处理器的硬件设备。它的作用是实现多处理器中不同处理器之间的通信和协调,从而提高性能。基础设施处理器 (IPU) 可加速网络基础设施,释放 CPU 内核,实现应用程序性能的提升。IPU 使云服务提供商能够按照软件的速度,定制基础设施功能部署,同时通过允许灵活安排工作负载,提高数据中心的利用率。IPU 通常被用于高性能计算领域,如超级计算机、服务器等。它可以连接不同类型的处理器,如 CPU、GPU 等,并提供高速数据传输和协调功能。在现代计算机中,IPU 已成为必不可少的组成部分。

图片

IPU 也是一种专门用于进行人工智能计算的处理器,也被称为 AI 处理器。它集成了高度优化的硬件和软件,以实现高效的人工智能计算。IPU 在深度学习、机器学习和自然语言处理等领域具有出色的性能,可以加速各种 AI 相关的任务。

图片

有了以上了解我们基本就可以总结功能特点:

  • CPU(Central Processing Unit):中央处理器,是计算机的运算和控制核心,负责执行程序、处理数据和协调计算机系统的其他部件。

  • GPU(Graphics Processing Unit):图像处理器,擅长并行计算,特别适用于处理大规模的数据集和图形渲染任务。

  • NPU(Neural Processing Unit):神经网络处理器,专门用于进行神经网络计算和推理,对于深度学习等人工智能任务具有高效性能。

  • TPU(Tensor Processing Unit):张量处理器,针对机器学习任务进行了优化,能高效处理大规模张量计算。

  • DPU(Deep Learning Processing Unit):深度学习处理器,专注于深度学习任务的计算加速。

  • IPU(Intelligent Processing Unit):智能处理器,集成高度优化的硬件和软件,以实现高效的人工智能计算。

结合上述介绍我们应该考虑以下创新技术方向:

协同计算形成闭环:通过高效的通信协议和接口,实现 CPU、GPU、NPU、TPU、DPU 和 IPU 之间的协同计算。这种协同可以充分利用各种处理器的优势,例如,CPU 可以负责复杂的逻辑运算和调度任务,GPU 和 NPU 可以共同承担大规模的并行计算任务,而 TPU 和 DPU 则专注于机器学习和深度学习任务的加速以及完善完成闭环。

统一编程模型:开发一种统一的编程模型,使得开发者能够更便捷地利用这些处理器的计算能力。这种编程模型应该能够自动将计算任务分配到最合适的处理器上,并实现处理器之间的数据共享和通信。

智能调度:设计一个智能调度器,能够根据任务的特性和处理器的状态动态地调整计算资源的分配。这样可以确保在任何时候都能最大限度地发挥各种处理器的性能。

内存和存储优化:考虑如何优化这些处理器之间的内存和存储访问。例如,通过设计高效的缓存策略或实现统一的内存池,可以减少数据在不同处理器之间的传输开销。

通过这些创新方向的探索,我们可以有望开发出一种全新的计算架构,它结合了 CPU、GPU、NPU、TPU、DPU 和 IPU 的优点,能够在各种计算任务中提供卓越的性能和效率。然而,这种技术的实现将涉及大量的研究和开发工作,并且需要解决一系列的技术挑战。

写在最后小编期望从事这方面的同仁,无论是软件还是硬件跨思路统筹组合的研究出属于我们的一套创新技术与统筹逻辑,然后革新应用到我们是实际生活中,让我们的创新与技术更上一层楼。如果没有思路要学会运用人工智能进行推演,验证,完善,总结应用;文章结尾引用钱学森前辈的名言送给大家:“正确的结果,是从大量错误中得出来的;没有大量错误作台阶,也就登不上最后正确结果的高座。”


via:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值