本文来自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)和它们之间通讯的数据、控制及状态的总线。

架构如下图所示:

什么是GPU?

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

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

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

什么是TPU?

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

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

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

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

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

什么是NPU?

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

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

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

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

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

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

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

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

什么是IPU?

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

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

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低级操作里将使用单缓冲区。

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位开源处理器。

参考资料

  • https://www.163.com/dy/article/GOKE5HRG0511A7OG.html

  • https://blog.csdn.net/lu_embedded/article/details/52101494

  • 作者:冷色调的夏天

  • https://blog.csdn.net/qq_40695642/article/details/101602284

  • https://www.sohu.com/a/200698604_160923?spm=smpc.content.share.1.1601107039823dApVwBs#comment_area

APU~ZPU全掌握!相关推荐

  1. APU(美国AMD公司研发的加速处理器)

    APU(Accelerated Processing Unit)中文名字叫加速处理器,是AMD"融聚未来"理念的产品,它第一次将中央处理器和独显核心做在一个晶片上,它同时具有高性能 ...

  2. 计算机R3处理器,【新CPU】入门级真香!全新锐龙APU之R3-4200G/4350G评测

    [新CPU]入门级真香!全新锐龙APU之R3-4200G/4350G评测 2020-07-22 14:39:07 51点赞 63收藏 20评论 [0]前言 当新APU罗列在眼前让我选择,毫不犹豫看上了 ...

  3. 一文读懂APU/BPU/CPU/DPU/VPU/GPU等处理器

    本文转载自EEFOCUS与非网一篇很不错的文章,来开启我们桐烨科技嵌入式AI平台(ARM+VPU)的开发之旅. 特别声明:本文转载EEFOCUS与非网:http://www.eefocus.com/m ...

  4. 盘点2021年全球AI芯片,详解“xPU”,请收下最新最全的知识点

    前言 你一定听说过CPU.GPU,但是TPU.VPU.NPU.XPU-等等其他字母开头的"xPU"呢? AI概念在几年前火爆全球,科技巨头们纷纷投入AI芯片的研发,小公司也致力于提 ...

  5. Zynq7000术语PL,PS,APU,SCU介绍

    Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧   相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑 摘要:本文介绍与XI ...

  6. amd同步多线程_AMD下一代锐龙APU实锤!Zen3、RDNA2绝配

    AMD Renoir锐龙4000U/H APU处理器可以说是近些年来最完美的产品之一,全新的7nm工艺和Zen 2架构,最多8核心16线程,热设计功耗覆盖15-45W,无论性能还是续航表现都近乎无可挑 ...

  7. xilinx apu ,rpu特点 及通信

    Zynq UltraScale+ MPSoC的PS有以下主要特点: 一个四核64位ARM Cortex-A53处理器,带L1和L2级缓存和ECC功能,可单独上电和关电: Cache一致性互联单元为PS ...

  8. 计算机组装硬件要求,组装电脑必懂的硬件知识,全是干货,教你选购硬件不求人...

    随着时代的发展,电脑也不断随着时代的发展进行更新,由于各方面的实际工作需要,很多人对电脑的需求也在增加.为了更好地适应网络的快速发展,有多人会根据自己的工作需要更换和组装新的电脑. 在组装一台新电脑之 ...

  9. java Swing中JTextField自动补全功能例子

    涉及到两个Java类 主类:AutoCompleteComponet.java 数据类:AutoCompleteComponet.java 效果图如下: 代码如下: 主类:AutoCompleteCo ...

  10. FPGA概念理解之:ZYNQ、PS、PL、APU、ARM、SOC、URAT、GPIO...

    ARM ARM(Advanced RISC Machine)处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器. ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价 ...

最新文章

  1. 系统集成项目管理之项目采购管理
  2. IT忍者神龟之Struts2.xml配置全然正确流程能走通可是有红叉解决
  3. JAVA JVM原理详解
  4. c语言指针大全,C语言指针
  5. Oracle安装 - shmmax和shmall设置
  6. java语言中的类可以_java 语言中的类
  7. 商用彩信服务成为企业3G应用新需求
  8. 《动手学深度学习 PyTorch版》学习笔记(三):线性回归
  9. 09. 用两个栈实现队列
  10. [IE编程] IE的Killbit 技术详解
  11. java static 可见性_中级Java应该清楚的概念:原子性、可见性、有序性是什么?...
  12. 结构体,宏,枚举,函数,指针
  13. ELK logstash基本配置
  14. 超全面的JavaWeb笔记day11JSPSessionCookieHttpSession
  15. 【代码优化】考虑使用静态工厂方法代替构造器
  16. HTTP请求过程——Chrome浏览器Network详解
  17. win10+Ubuntu20.04双系统安装
  18. 区块链技术应用在金融领域之大数据风控
  19. 金融产业数据治理实践及方法论
  20. 2018年最新电子科技大学TCP/IP协议原理(杨宁)CSF视频教程42讲

热门文章

  1. 仿微信小程序小空投(头)iApp源码+PHP后端
  2. 智能变电站调试仿真培训系统 61850规约培训系统 免费送
  3. Java函数参数传递方式
  4. m126a linux驱动下载,惠普hp M126a打印机驱动
  5. TortoiseGit(git可视化工具)
  6. VMP学习笔记之壳的重定位修复(五)
  7. 中文文本标注工具调研以及BRAT安装使用
  8. 新stem编程scratch3水果钢琴创意键盘兼容MakeyMakey开源国产盒装使用教程
  9. office visio 替代_10 个 Linux 中最好的 Visio 替代品
  10. 个人财务管理系统mysql_开发个人财务管理系统(一)建数据库