ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

(转)CPU/GPU/TPU/NPU傻傻分不清楚

2021-07-12 14:04:02  阅读:307  来源: 互联网

标签:Processing TPU 处理器 NPU GPU CPU Unit


刚开始接触深度学习概念时,基本大多数时候也就提到GPU,也基本是用GPU来进行深度学习算法训练或部署人脸识别系统的。

近几年,随着人工智能(尤其是人脸识别)的爆炸式发展,诞生了许多新的东西,其中这芯片,就让很多人都摸不着头脑。

除了CPU,GPU之外,还有TPU,NPU等,真的是CPU/GPU/TPU/NPU傻傻分不清楚啊。

今天,闻西就来帮大家理理这些让人分不清楚的芯片到底都是啥?怎么区别它们?

CPU

CPU是大家听到得最多的。

CPU英文全称是Central Processing Unit,中文全称是中央处理器,是计算机的核心器件,CPU通常由三个部分组成:计算单元、控制单元和存储单元。

架构图如下:
在这里插入图片描述
是不是看不懂?看不懂就对了,下面这张图才是帮助你理解的:
在这里插入图片描述

GPU

GPU全称是Graphics Processing Unit,中文全称叫图形处理器,它也是由三个部分组成:计算单元、控制单元和存储单元。
我们继续沿用上面CPU架构图用来表示各个单元的颜色来表示下GPU架构(黄色用来表示控制单元,绿色用来表示计算单元,橙色用来表示存储单元),如下:
在这里插入图片描述
这妥妥是个CPU变种啊!

我们把CPU和GPU的架构图放在一起比较下,看看有啥区别:
在这里插入图片描述
CPU这边起码30%都是用在了控制单元,各个单元占比还算均衡,而GPU就夸张了,80%以上都用在了计算单元,偏科有点严重啊。

正是由于这种区别,导致CPU精于控制和复杂运算,而GPU精于简单且重复的运算。

另外CPU和GPU还有一个最大的区别:CPU是顺序执行运算,而GPU是可以大量并发的执行运算,通俗的说就是CPU做事情是一件一件来做,而GPU是很多件事情同时做。

但很多件事情同时做,一定是简单的事情,就像一个人一样,我们没法同时做两件复杂的事情。

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

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

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

上面我们提到的CPU和GPU都是通用芯片。

但古语有云:工欲善其事必先利其器。

一块石头,是通用的,但如果我专门打磨打磨,让它变成锋利的,是不是就可以用来切割东西了呢?

有了这个概念后,对于TPU,NPU等等众多的PU们,你把它们当成都是专门打磨过的石头,就很好理解了。

TPU

自从谷歌的AlphaGo打败李世石之后,谷歌在人工智能界的知名度也越来越大了,于是谷歌推出了它们的深度学习框架TensorFlow,这个深度学习框架也就此扬名世界。

有了好的算法框架,就得要有硬件来支持啊,传统的GPU行吗?

当然行,可是它毕竟是块通用的石头,要是打磨打磨就好了。

于是针对谷歌的深度学习框架TensorFlow专门定制的芯片诞生了,英文全称就叫Tensor Processing Unit,翻译为中文就是张量处理单元,它到底有多牛呢?比较下你就知道了:

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

吼吼,这可不是一丁点的效率提升,是大大的提升。

NPU

NPU英文全称是Neural network Processing Unit, 中文叫神经网络处理器。

神经网络是个啥?

在这里插入图片描述
神经网络就是你大脑里面的神经元连接成的网络,错综复杂,据说越复杂越聪明,当然太复杂了,就成神经病了。

而这个NPU,即神经网络处理器,就是要模仿人的大脑神经网络,使之具备智能。

怎么模仿呢?

NPU工作原理是在电路层模拟人类神经元和突触,并且用深度学习指令集直接处理大规模的神经元和突触,一条指令完成一组神经元的处理。相比于CPU和GPU,NPU通过突触权重实现存储和计算一体化,从而提高运行效率。

其他PU们

顺着这个套路,感觉妈妈再也不用担心我的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,深圳大普微的智能固态硬盘处理器。

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

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

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

IPU — Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。

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

这么下去感觉26个字母完全不够用啊,话说以后PU们会不会长的跟车牌一样了呢?
比如:XZAYPU,嗯,我看就差加个粤B在前面了。
以后妈妈可能还是要担心我的PU了!

标签:Processing,TPU,处理器,NPU,GPU,CPU,Unit
来源: https://blog.csdn.net/xuhao0258/article/details/112391065

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有