[科普] CPU, GPU, TPU的区别

Google Cloud 原文链接:https://cloud.google.com/blog/products/ai-machine-learning/what-makes-tpus-fine-tuned-for-deep-learning

机器之心翻译链接:https://baijiahao.baidu.com/s?id=1610560990129941099&wfr=spider&for=pc

张量处理单元(TPU)是一种定制化的 ASIC 芯片,它由谷歌从头设计,并专门用于机器学习工作负载。TPU 为谷歌的主要产品提供了计算支持,包括翻译、照片、搜索助理和 Gmail 等。Cloud TPU 将 TPU 作为可扩展的云计算资源,并为所有在 Google Cloud 上运行尖端 ML 模型的开发者与数据科学家提供计算资源。在 Google Next’18 中,我们宣布 TPU v2 现在已经得到用户的广泛使用,包括那些免费试用用户,而 TPU v3 目前已经发布了内部测试版。

tpudemo.com该网站 PPT 解释了 TPU 的特性与定义。在本文中,我们将关注 TPU 某些特定的属性。

神经网络如何运算

如果图像为 28×28 像素的灰度图,那么它可以转化为包含 784 个元素的向量。神经元会接收所有 784 个值,并将它们与参数值(上图红线)相乘,因此才能识别为「8」。其中参数值的作用类似于用「滤波器」从数据中抽取特征,因而能计算输入图像与「8」之间的相似性:这是对神经网络做数据分类最基础的解释,即将数据与对应的参数相乘并将它们加在一起。如果我们能得到最高的预测值,那么我们会发现输入数据与对应参数非常匹配,这也就最可能是正确的答案。 简单而言,神经网络在数据和参数之间需要执行大量的乘法和加法。我们通常会将这些乘法与加法组合为矩阵运算,这在我们大学的线性代数中会提到。所以关键点是我们该如何快速执行大型矩阵运算,同时还需要更小的能耗

CPU 如何运行

CPU 最大的优势是灵活性。通过冯诺依曼架构,我们可以为数百万的不同应用加载任何软件。我们可以使用 CPU 处理文字、控制火箭引擎、执行银行交易或者使用神经网络分类图像。

但是,由于 CPU 非常灵活,硬件无法一直了解下一个计算是什么,直到它读取了软件的下一个指令CPU 必须在内部将每次计算的结果保存到内存中(也被称为寄存器或 L1 缓存)。内存访问成为 CPU 架构的不足,被称为冯诺依曼瓶颈。虽然神经网络的大规模运算中的每一步都是完全可预测的,每一个 CPU 的算术逻辑单元(ALU,控制乘法器和加法器的组件)都只能一个接一个地执行它们,每一次都需要访问内存,限制了总体吞吐量,并需要大量的能耗

GPU 如何工作

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

这种 GPU 架构在有大量并行化的应用中工作得很好,例如在神经网络中的矩阵乘法。实际上,相比 CPU,GPU 在深度学习的典型训练工作负载中能实现高几个数量级的吞吐量。这正是为什么 GPU 是深度学习中最受欢迎的处理器架构。

但是,GPU 仍然是一种通用的处理器,必须支持几百万种不同的应用和软件。这又把我们带回到了基础的问题,冯诺依曼瓶颈在每次几千个 ALU 的计算中,GPU 都需要访问寄存器或共享内存来读取和保存中间计算结果。因为 GPU 在其 ALU 上执行更多的并行计算,它也会成比例地耗费更多的能量来访问内存,同时也因为复杂的线路而增加 GPU 的物理空间占用

TPU 如何工作

当谷歌设计 TPU 的时候,我们构建了一种领域特定的架构。这意味着,我们没有设计一种通用的处理器,而是专用于神经网络工作负载的矩阵处理器。TPU 不能运行文本处理软件、控制火箭引擎或执行银行业务,但它们可以为神经网络处理大量的乘法和加法运算,同时 TPU 的速度非常快、能耗非常小且物理空间占用也更小。

其主要助因是对冯诺依曼瓶颈的大幅度简化。因为该处理器的主要任务是矩阵处理,TPU 的硬件设计者知道该运算过程的每个步骤。因此他们放置了成千上万的乘法器和加法器并将它们直接连接起来,以构建那些运算符的物理矩阵。这被称作脉动阵列(Systolic Array)架构。在 Cloud TPU v2 的例子中,有两个 128X128 的脉动阵列,在单个处理器中集成了 32768 个 ALU 的 16 位浮点值

一个脉动阵列如何执行神经网络计算。

首先,TPU 从内存加载参数到乘法器和加法器的矩阵中。

然后,TPU 从内存加载数据当每个乘法被执行后,其结果将被传递到下一个乘法器,同时执行加法。因此结果将是所有数据和参数乘积的和。在大量计算和数据传递的整个过程中,不需要执行任何的内存访问

这就是为什么 TPU 可以在神经网络运算上达到高计算吞吐量,同时能耗和物理空间都很小。

好处:成本降低至 1/5

因此使用 TPU 架构的好处就是:降低成本。以下是截至 2018 年 8 月(写这篇文章的时候)Cloud TPU v2 的使用价格。

Cloud TPU v2 的价格,截至 2018 年 8 月。

斯坦福大学发布了深度学习和推理的基准套装 DAWNBench。你可以在上面找到不同的任务、模型、计算平台以及各自的基准结果的组合。

DAWNBench:https://dawn.cs.stanford.edu/benchmark/

在 DAWNBench 比赛于 2018 年 4 月结束的时候,非 TPU 处理器的最低训练成本是 72.40 美元(使用现场实例训练 ResNet-50 达到 93% 准确率)。而使用 Cloud TPU v2 抢占式计价,你可以在 12.87 美元的价格完成相同的训练结果。这仅相当于非 TPU 的不到 1/5 的成本。这正是神经网络领域特定架构的威力之所在。

原文地址:https://www.cnblogs.com/shiyublog/p/10987755.html

时间: 2024-09-30 00:17:08

[科普] CPU, GPU, TPU的区别的相关文章

[转] CPU GPU TPU

Google I/O是由Google举行的网络开发者年会,讨论的焦点是用Google和开放网络技术开发网络应用.这个年会自2008年开始举办,到今年已经是举办的第9届了. 在今年的年会上,Google主要发布了以下8种产品:智能助手Google Assistant,与Amazon Echo竞争的无线扬声器和语音命令设备Google Home,消息应用Allo,视频呼叫应用Duo,VR平台Daydream,独立应用程序的支持Android Wear 2.0,允许不安装而使用应用的Android I

浅谈CPU,GPU,TPU,DPU,NPU,BPU

https://www.sohu.com/a/191538165_777155 A12宣传的每秒5万亿次运算,用计算机语言描述就是5Tops. 麒麟970 NPU,根据资料是 1.92Tops. 麒麟980 NPU,提升是970的120%,也就是1.92TopsX2.2=4.23Tops. A11大约0.6Tops,官方宣称8核也就是0.6X8=4.8约等于5Tops,没有虚假宣传. 其他soc没有NPU都是利用其他gpu进行神经网络计算,就不统计了. GTX1080是FP32的计算能力,也就是

1.2CPU和GPU的设计区别

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理.这些都使得CPU的内部结构异常复杂.而GPU面对的则是类型高度统一的.相互无依赖的大规模数据和不需要被打断的纯净的计算环境. 于是CPU和GPU就呈现出非常不同的架构(示意图): 图片来自nVidia CUDA文档.其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元. GPU采用了数量众多的计算单元和

Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度

 Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度 硬件平台: Raspberry Pi B+ 软件平台: 1  安装 requests 库 首先我们要先解决requests库,当我们向YEELINK POST 消息的时候会用到  : r = requests.post(apiurl, headers=apiheaders, data=json.dumps(payload)) 安装easy_install: <span style="line-heigh

舌尖上的硬件:CPU/GPU芯片制造解析(高清)(组图)

一沙一世界,一树一菩提,我们这个世界的深邃全部蕴藏于一个个普通的平凡当中.小小的厨房所容纳的不仅仅是人们对味道的情感,更有推动整个世界前进的动力.要想理解我们的世界,有的时候只需要细细品味一下我们所喜爱的美食即可.正因为此,我们才规划了<舌尖上的硬件>这样一个系列栏目.通过对美食的品味和体会,我们可以更好地理解许多硬件相关的原理.内涵甚至是趣闻,我们所需要为此准备的,其实仅仅是一颗平和的心而已. 在上一期的<舌尖上的硬件>栏目中,我们第一次接触到了隐藏在食物背后的其与半导体业界的神

7个示例科普CPU Cache

7个示例科普CPU Cache 出处信息 (感谢网友 @我的上铺叫路遥 翻译投稿) CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门.正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文<漫游处理器缓存效应>,文章不仅仅用7个最简单的源码示例就将CPU cache的原理娓娓道来,还附加图表量化分析做数学上的佐证,个人感觉这种案例教学的切入方式绝对是俺的菜,故而忍不住贸

CPU+GPU异构计算编程简介

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 异构计算(CPU + GPU)编程简介 1. 概念 所谓异构计算,是指CPU+ GPU或者CPU+ 其它设备(如FPGA等)协同计算.一般我们的程序,是在CPU上计算.但是,当大量的数据需要计算时,CPU显得力不从心.那么,是否可以找寻其它的方法来解决计算速度呢?那就是异构计算.例如可利用CPU(Central Processing

cpu个数、核数、线程数、Java多线程关系的理解+物理cpu数和cpu核数和逻辑cpu数和vcpu区别

1.cpu个数.核数.线程数.Java多线程关系的理解 URL地址:https://blog.csdn.net/helloworld0906/article/details/905471592.物理cpu数和cpu核数和逻辑cpu数和vcpu区别 URL地址:https://blog.csdn.net/budonglaoshi123/article/details/84325720 原文地址:https://www.cnblogs.com/curedfisher/p/12204102.html

CPU GPU设计工作原理《转》

我知道这很长,但是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们到底是怎么"私下勾搭"的.会有利于我们用程序来指挥它们....(这是我加上去的) 原文从这里开始: 要说到设计的复杂程度,那还是CPU了!这个不用讨论,很简单的道理你看看显卡芯片的更新速度和CPU的更新速度就可见一斑了.还是简单说说他们的设计原理吧. CPU: 但是,现在我要问一句:"什么是CPU?"我相信大多数人并不知道什么是CPU.当然,你可以回