CPU、GPU、TPU的原理简述及其区别

整理了一下CPU、GPU、TPU的简单原理区别,内容整理自Google Cloud、CSDN、知乎等。



一、CPU

CPU 是一种基于冯·诺依曼结构的通用处理器,与软件内存协同工作。
在这里插入图片描述
(Google Cloud官网的示意图,仅用于概念演示目的,并不反映真实处理器的实际行为。)

CPU 最大的优点是它的灵活性。CPU采用冯·诺依曼结构,可以为数以百万计的不同应用加载任何类型的软件。我们可以使用 CPU 在 PC 中进行文字处理、控制火箭引擎、执行银行交易,或者通过神经网络对图片进行分类。

但由于 CPU 非常灵活,因此在从软件中读取下一条指令前,硬件通常不知道下一个计算是什么。CPU 必须在 CPU 寄存器或 L1 缓存中为每一次计算存储结果。这种内存访问机制成了 CPU 架构的缺点,被称为冯·诺依曼瓶颈。神经网络规模庞大,意味着这些未来的步骤是完全可以预测的。每个 CPU 的算术逻辑单元 (ALU) 是存放和控制乘法器和加法器的组件,一次只能执行一次计算。CPU 每次都必须访问内存,这样就限制了总的吞吐量,并且会消耗大量能源。

二、GPU

为了获得比 CPU 更高的吞吐量,GPU 使用了一种简单的策略:在单个处理器中使用数以千计的 ALU。事实上,现代 GPU 通常在单个处理器中集成了 2500 - 5000 个 ALU。如此大量的处理器意味着您可以同时执行数千次乘法和加法运算。

在这里插入图片描述

这种 GPU 架构非常适合并行处理大量运算(例如神经网络中的矩阵乘法)的应用。实际上,在用于深度学习的典型训练工作负载上,GPU 的吞吐量可比 CPU 高出一个数量级。这就是 GPU 成为深度学习领域中最受欢迎的处理器架构的原因。

不过,GPU 仍然是一种通用处理器,必须支持数以百万计的不同应用和软件。也就是说,GPU 与 CPU 存在同样的问题:冯·诺依曼瓶颈。对于数千个 ALU 中的每一次计算,GPU 都必须访问寄存器或共享内存,以读取和存储中间计算结果。由于 GPU 在它的数千个 ALU 上执行更多并行计算,因此它也会相应耗费更多能源来访问内存,这会由于复杂布线而增加 GPU 占用的空间。

适合运算的程序类型

(1)计算密集型的程序。
所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。

(2)易于并行的程序。
GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。
(链接:https://www.zhihu.com/question/19903344/answer/96081382 来源:知乎)

三、TPU

Google 设计了 Cloud TPU,它们是专门用于神经网络工作负载的矩阵处理器。TPU 不能运行文字处理程序、控制火箭引擎或执行银行交易,但它们可以极快地为神经网络处理大量的乘法和加法运算,并且耗电量显著降低,占用的物理空间更小。

与其他设备相比,TPU 的一个优点是大幅度缓解了冯·诺依曼瓶颈。由于此处理器的主要任务是矩阵处理,因此 TPU 的硬件设计人员知道执行该操作的每个计算步骤。于是,他们能够布置数以千计的乘法器和加法器,并将它们直接连接形成这些运算符的大型物理矩阵。这称为脉动阵列架构。对于 Cloud TPU v2,总共有两个 128 x 128 的脉动阵列,它们在单个处理器中集成了 32768 个 ALU 以处理 16 位浮点值。

我们来看一下脉动阵列是如何执行神经网络计算的。首先,TPU 将参数从内存加载到乘法器和加法器矩阵中。

在这里插入图片描述

然后,TPU 从内存加载数据。每次执行乘法运算时,系统都会将结果传递给后面的乘法器,同时进行求和。因此,输出将是数据和参数之间所有乘法结果的总和。在大规模计算和数据传递的整个过程中,根本不需要访问内存。
在这里插入图片描述
因此,TPU 可以在神经网络计算中实现高计算吞吐量,并且耗电量显著降低、占用空间更小。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值