Amiya · 2022年01月24日

APU~ZPU全掌握!

本文来自IP与SOC设计

最近各种PU(processing unit)的概念层出不穷,比较火热。今天我们来大致看看,这些XPU都是些什么?

什么是CPU?

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

电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据,也就是机器的“大脑”。在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。

CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。

架构如下图所示:

f4490cb3f9ee1bf63c2193f33a7dbd9a.png

什么是GPU?

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

GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。但GPU无法单独工作,必须由CPU进行控制调用才能工作。

图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,也就成了GPU的天然温床。GPU就是用很多简单的计算单元去完成大量的计算任务,也就是并行计算。

88432a56607f32cea059b872a5908490.png

a9dec991ba24aa1e3bf5d10351765bbb.png

什么是TPU?

TPU(Tensor Processing Unit),也就是张量处理单元,是一款为机器学习而定制的芯片,经过了专门深度机器学习方面的训练,它有更高效能。

如果说CPU,GPU是比较万能的工具,那么TPU就是专用工具。TPU就是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,其实也是一款ASIC。

财大气粗的谷歌就是针对机器学习算法而专门制作了TPU,那么它的性能想来也是没得说。毕竟专业人做专业事,效率更高。

据说,TPU与同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。

每一个操作需要更少的晶体管,用更多精密且大功率的机器学习模型,并快速应用这些模型,因此用户便能得到更正确的结果。这就是TPU。

8cfb2f5e1e67711cff8e8bc25e940484.png

什么是NPU?

NPU(Neural network Processing Unit), 也就是神经网络处理器。顾名思义,设计人员试图用电路模拟人类的神经元和突触结构。

在电路层模拟神经元,通过突触权重实现存储和计算一体化,一条指令完成一组神经元的处理,提高运行效率。主要应用于通信领域、大数据、图像处理。

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

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

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

神经网络中存储和处理是一体化的,都是通过突触权重来体现。而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。因此专门针对人工智能的专业芯片在具体的应用领域比传统芯片更有性能等方面的优势。

以CNN为例,CNN计算由大量的乘加计算(乘法累加计算)组成。传统的CPU架构进行类似的累加计算,效率是非常低的。

为什么NPU的效率会比CPU/GPU高很多呢?主要就是由于乘法累加计算导致的。这个乘法累加计算不是简单的乘法累加计算,而是有数据相关性的乘法累加计算。

4f4f186da3a1583948ed31951b501bd6.png

什么是IPU?

加拿大公司CogniVue开发的用于视觉处理和图像认知的IP,IPU(Image Processing Unit),图像处理单元,是图像识别SoC的重要组成部分。

ef70cce774894d40046a2bcba8e1fe13.png

图像处理单元的目标是提供从图像输入(摄像头传感器 / 电视信号输入等)到显示设备(LCD显示屏 / TV输出 / 外部图像处理单元等)端到端的数据流信号处理的全面支持。

13729e28b19903bd20389898506ba1c1.png

IPU库(IPU Library)是基于IPU硬件的,它能实现以下功能:

1、调整大小。
2、旋转。
3、色彩空间 / 格式转换。
4、以同样大小的窗口,支持色键和α混合叠加组合。
5、在IPU处理后,直接输出显示到帧缓冲区。
6、两个输出处理来自一个输入。
7、窗口切割。
8、局部 α 混合。

在IPU处理内,IPU库采取三种操作缓冲区的方式:

1、输入缓冲区,包含需要处理的数据,用户可以自己分配或者由IPU库分配。
2、输出缓冲区,包含来自输入缓冲区已经处理完成的数据,用户可以自己分配或者由IPU库分配;如果用户想将输出显示指向帧缓冲区,然后用户就不需要分配它们,帧缓冲区现在已经是输出缓冲区了。
3、覆盖缓冲区,包含要处理和组合的数据。

(注意:这三个缓冲区是连续的。)

对于IPU缓冲区有两种操作模式:

1、流模式,在IPU低级操作里将使用双缓冲区。
2、正常模式,在IPU低级操作里将使用单缓冲区。

814718370093ebc71f41a35fc14c4191.png

Tip:
以上提到的IPU是加拿大公司CogniVue开发的用于视觉处理和图像认知的IP,2021年8月英特尔发布了两款新的IPU(Infrustracture Processing Unit),架构处理器,让各类网络服务运作过程可降低CPU资源占用比重。在定位上与英伟达提出的DPU(Data Processing Unit)相类似。
Graphcore 此前也开发了一款IPU,智能处理单元(intelligence processing unit),用于改善AI性能,实现AI技术。
目前看来,或许X PU的前缀字母已经不够用了。当然,这也是各大厂商希望自己与其他家产品区分开的结果。我们真的需要这么多X PU吗?大浪淘沙,时间自然会给我们答案。

X PU大致一览

APU -- Accelerated Processing Unit, 加速处理器,AMD公司推出加速图像处理芯片产品。

BPU -- Brain Processing Unit, 地平线公司主导的嵌入式处理器架构。

CPU -- Central Processing Unit 中央处理器, 目前PC core的主流产品。

DPU -- Deep learning Processing Unit, 深度学习处理器,最早由国内深鉴科技提出;另说有Dataflow Processing Unit 数据流处理器, Wave Computing 公司提出的AI架构;Data storage Processing Unit,深圳大普微的智能固态硬盘处理器。

EPU -- Emotion Processing Unit。Emoshape 并不是这两年才推出EPU的,号称是全球首款情绪合成(emotion synthesis)引擎,可以让机器人具有情绪。

FPU -- Floating Processing Unit 浮点计算单元,通用处理器中的浮点运算模块。

GPU -- Graphics Processing Unit, 图形处理器,采用多线程SIMD架构,为图形处理而生。

HPU -- Holographics Processing Unit 全息图像处理器, 微软出品的全息计算芯片与设备。

IPU -- 上面提到了,Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。当然也包括英特尔的Infrustracture Processing Unit和CogniVue的Image Processing Unit。

MPU/MCU -- Microprocessor/Micro controller Unit, 微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。

NPU -- Neural Network Processing Unit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。

RPU -- Radio Processing Unit, 无线电处理器, Imagination Technologies 公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。

TPU -- Tensor Processing Unit 张量处理器, Google 公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。

VPU -- Vector Processing Unit 矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。

WPU -- Wearable Processing Unit, 可穿戴处理器,Ineda Systems公司推出的可穿戴片上系统产品,包含GPU/MIPS CPU等IP。

XPU -- 百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。

ZPU -- Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位开源处理器。

参考资料

END

作者:比特波特
原文链接: https://mp.weixin.qq.com/s/nPT-gXAcf-ESW51UYpwdnA
微信公众号:
hack电子.jpg
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
10944
内容数
1211
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息