手机浏览器扫描二维码访问
一秒记住【xiaoyanwenxue.com】精彩无弹窗免费!“罗辑思维荐书集锦(套装共24册)(.shg.tw)”!
附录3:CPU、GPU和TPU
GPU是神经网络计算的引擎。图附3.1是一个典型的神经网络,用输出误差来调节各层的权重系数,输入阵列X通过参数矩阵运算进入下一层运算,每一层运算都是一次这样的矩阵运算。所谓矩阵运算,就是先把数字相乘再相加。
图附3.1典型的深度神经网络
为了帮助那些没有学过矩阵的读者加深理解,现在我们只看图附3.2中左边输入和第一层中一个神经元的关系:每一个输入数字和圆圈里的权重系数相乘,然后把所有的乘积加起来就得到一个值。例如,输入有三个单元,分别是(2,5,8),对应的权重系数分别是(2,-1,0.5),它们相乘后再相加是2×2+5×(-1)+8×0.5=4-5+4=3。这个值再经过一个“非线性”处理:这个值如果大于0就取原值,小于0就取值为0。注意这里所有的相乘运算都可以同时进行,这就是所谓的可“并行运算”。我们刚才描述的仅仅是一个单元的计算方法,其他单元的计算方法也都一样,也就是说不仅一个单元的计算是可以并行的,所有单元的计算都是可以同时进行的。
图附3.2神经网络的一个单元内的计算
而GPU与CPU相比的优点正是在这里。当年设计CPU时主要为了执行计算机程序,绝大部分计算机程序都是“串行”的,也就是后一个命令或计算要等前一个命令或计算的结果出来后才能执行。而GPU最初是为图形处理用的,图形处理的一个特点就是可以并行。例如,从一张图中把所有的黑点找出来,就可以把一张图分割成许多小图同时来找黑点。图附3.3是CPU和GPU的结构对比,图中左边的CPU通常由一个控制器(Control)来给少数几个功能强大的算术逻辑运算器(ALU)分配任务,而右边的GPU通常由许多简单的控制器(右图最左边一列方块)来控制更多的算术运算单元组成(那些小格子)。在图形和图像处理中大量的运算都是矩阵运算,所以GPU从第一天起就是为矩阵运算设计的,没想到几十年后的深度学习也主要是矩阵运算,这就是“天上的馅饼”。
图附3.3CPU结构和GPU结构对比
图片来源:https:.quora.Does-CPU-vendors-feel-the-petition-from-GPUs-putational-power。
那么在神经网络深度学习计算中GPU比CPU能好多少呢?一个极端的例子是在深度学习使用GPU之前,谷歌使用16000个CPU建造了一个超级深度学习网络,如图附3.4所示,成本为数百万美元。
几年后,斯坦福大学只用几个GPU就可以达到同样的性能,成本只有3万美元!即使考虑到芯片本身在几年内的发展,这个比较也是惊人的。当然这个比较仅仅是比较深度学习的矩阵运算,谷歌大脑还可以做很多其他的运算,例如强化学习等。总的来说,CPU适合串行运算,可以胜任从航天到手机的各种不同复杂运算和处理,而GPU主要用于简单的并行运算,并不会取代CPU。但是在图形处理和深度神经网络计算中,GPU可以比CPU快10倍甚至百倍。英伟达2017年推出的用于自动驾驶的芯片Xavier已经达到每秒20万亿次浮点计算。
图附3.4谷歌用16000个CPU搭建的深度学习“谷歌大脑”
图片来源:https:amp.businessinsider.images507ebdd2ecad045603000001-480-360.jpg。
2006—2017年,单片CPU的处理能力提高了50倍。50倍的增长不是来自时钟速度的提高(即单次运算变快),而是来自在芯片中塞进更多的处理器。它的内核数量从4个变到28个,是原来的7倍。另外一个性能的提升来源于指令的宽度,2006年一条指令只能处理2个单精度的浮点运算,今天512位的指令集中,一条指令可以同时处理16个单精度的浮点运算,这就相当于8倍的性能提升。7×8=56,约50倍的运算速度提升就是靠更多的处理器得来的。
图附3.52006—2017年CPU运算速度的进展
图片来源:香港浸会大学褚晓文教授“深度学习框架大PK”中的五大深度学习框架三类神经网络全面测评。
再看GPU在近十年的发展,图附3.6是GPU和CPU的性能对比。2006年英伟达第一次发布通用计算的GPU8800GTX,当时它的性能已经达到0.5万亿次浮点运算(500GFlops),接下来的十年,大家可以看到GPU相对CPU的计算能力一直维持在10~15倍的比例。GPU从过去的128个核心变成5376个核心,这个增长速度与CPU相同,所以GPU运算速度与CPU运算速度的比值一直保持不变。
图附3.62006—2017年CPU和GPU计算能力对比
图片来源:香港浸会大学褚晓文教授“深度学习框架大PK”中的五大深度学习框架三类神经网络全面测评。
其他几家互联网巨头也不能眼睁睁地看着英伟达控制着深度学习的命脉。谷歌就撸起袖子做了一款自用的TPU,设计思路是这样的:既然GPU通过牺牲通用性换取了在图形处理方面比CPU快15倍的性能,为什么不能进一步专注于只把神经网络需要的矩阵运算做好,进一步提高速度呢?TPU设计的核心诀窍有以下四点。
第一,图形与图像处理需要很高的精度(通常用32比特浮点精度),而用于识别的神经网络的参数并不需要很高的精度。所以谷歌的第一款TPU就专门为识别设计,在运算上放弃32比特的浮点运算精度,全部采用8比特的整数精度。
第二,由于8比特的乘法器比32比特简单4×4=16倍,所以在同等芯片面积上可以多放许多运算单元。谷歌的第一款TPU就有65000个乘加运算单元,相比最快的GPU只有5300个单元,多了不止10倍。
第三,不论在多核的CPU还是GPU中,目前的运算速度瓶颈都是内存的读和写。因为要被运算的数据都存在中央存储器里,而这些数字在运算时要分配到几百上千个运算单元中,从存储器到运算单元可谓“千里迢迢”,往返很费时间。在TPU里为了解决这个问题,干脆把运算单元摆成矩阵一样,让被运算的数据(例如神经网络的输入数据)流淌过这些运算单元,从内存中提取一个数据就让它和所有的权重系数都做完乘法,而不是像传统CPU或GPU那样提取一个数据只做一次运算就放回到存储器,做下一次运算再千里迢迢从存储器去取。这样数据像波浪一样一波一波涌来,所以叫脉动式计算。
第四,一个专注于矩阵运算的芯片不用考虑图形处理时要考虑的许多其他事情,例如多线程、分叉预测、跳序执行等,这是由于脉动式计算省掉了许多暂存、缓存等。整个运算的指令只有矩阵运算和取非线性那么几个,例如读数据、读参数、相乘、累加、非线性、写数据等。整个芯片和软件都变得非常简单,这样可以做到每个时钟周期执行一次指令。
图附3.7向量(一维)计算、矩阵(二维)计算和张量(三维)计算
图片来源:https:mp.weixin.qq.se333KjLavEvvpNIL3u1Y4Q。
现在我们可以算一下TPU到底比GPU快多少了。谷歌第一代的TPU有256×256=65536个8比特乘加器,时钟是700MHz,每秒能做的8比特乘加运算=65536×700×10=46×10次乘加运算,即92万亿次整数运算(92TOPS,一次乘加运算是两次运算)。所以当谷歌宣称比GPU快时,是用整数运算次数OPS和浮点运算次数FLOPS比。而GPU是以浮点运算为测量单位的,前面说过最新的英伟达Xavier运算速度可达20TFLOPS,这两个不可直接相比,但如果在神经网络用于识别时(而不是用于训练),浮点和整数运算造成的识别准确率差别不大,就可以说这款TPU比GPU快了9220=4.6倍。对于谷歌这样需要大量矩阵运算的公司可以节省许多买GPU的钱,并且加快了识别速度(例如谷歌翻译、图片识别等的几亿用户非常在意处理速度),更重要的是把核心能力控制在了自己手里。谷歌在云服务方面没有亚马逊做得好,正在奋起直追,有了TPU则可以给用户提供更快、更便宜的深度学习云服务,所以谷歌的TPU目前只给自己用,不卖给别人。谷歌的第二代TPU已经能够进行32比特的单精度浮点运算,这样从训练到识别都不需要买别人的GPU了。用浮点运算做识别还有一个好处就是通过浮点运算训练出来的模型可以直接用于识别,而不是像第一代TPU那样先要把那些32比特的参数集都量化为8比特。但是通过刚才的讨论,我们知道TPU更快的一个重要原因是放弃浮点运算,当TPU也需要浮点运算时,相比GPU的性能提高就不会那么大了。谷歌的第二代(TPU2.0)可以达到每秒45万亿次单精度浮点运算,和英伟达Xavier芯片比只快了一倍(TPU2.0在Xavier之后出来,快一倍就不算什么)。在2018年谷歌开发者大会上,谷歌又宣布了第三代(TPU3.0),宣称比TPU2.0快8倍。由于功耗的提高,所以第三代芯片已经需要液体制冷。一个第三代的TPU集群(一个机柜)有64块板卡,每块板卡上有4个TPU,总运算速度可以达到每秒8×45×4×64=92160万亿次浮点计算。
小农女种田忙 凰谋天下 天才萌宝:爹地超宠妻 市场·情场·官场 面对秋阳 婚心动魄:我的神秘大boss 夫人,总裁他罪不至死 她切回满级大号了 守城使 前妻别跑:偏执慕总放肆宠 人在航海,开局艾尔沃特海战 世家三代录 沈再云夏顾雪重生鉴宝 神王殿 重生:影后夫妇疯狂撒狗粮 盗墓笔记之尘封的记忆 蜜宠霸爱:厉少,你失宠了 重生年代:胖厨娘的红火小日子 重生九零之神医商女 穿越梦境
乖,摸摸他。不要,太丑了!将孩子塞给其他人,沈墨笙温柔的诱哄闹脾气的小娇妻我这就把他丢去训练,叫他长这么丑惹你生气。刚出生就惨遭嫌弃的孩子失恋买醉,不小心惹上隔壁男神沈墨笙,还怀了他的孩子。从此高冷男神化身无脑宠妻狂魔,每天狂撒狗粮。老婆乖,饭我来做,油烟伤皮肤。老婆乖,衣服我洗,别伤着玉手。老婆乖,孩子我喂,别累着自己。众人狂呼太甜了,牙要保不住了!(交流群...
意外穿越侠客行世界,向死而生,获得闯荡世界的力量资本。主角赵旋于数码宝贝世界,获得数据世界构造的基础于平妖传世界,获得传统法术修炼之路,见闻累劫转世之道于权力的游戏世界,开启了征服位面之旅,掌控魔法的力量。随着故事的发展,赵旋逐渐迷上了投胎这门工作,带上无数位面的强者,走上位面侵略的道路。(穿越的世界,不限电影电视剧小说题材,没有系统,一切只靠自己争取)征御诸天缘洛生征御诸天最新章节征御诸天全文阅读征御诸天章节列表征御诸天txt征御诸天全文免费阅读征御诸天在线阅读征御诸天目录征御诸天无弹窗ZHENGYUZHUTIANZHENG御诸天...
一位穿越至宠物小精灵世界的男人,带着他对小精灵的资料记忆,在真新镇开始了他的神奇宝贝之旅,收服所有的宝贝是他的目标,当然,强大的实力是必不可少的这是一部不受很多热爱小精灵的读者待见的小说,但它无疑更真实更有血有肉,所以,不想心中小精灵世界美好形象被破坏的读者勿入作品每天1更,偶尔多更一章,少更会向大家通知,希望大家能够支持并提出建议,绝不进宫。...
我的人生特别狗血。在别人看来,我是一个妥妥的白富美,生来就含着金汤匙出生的大小姐。我还嫁了一个颜值和智商都较高的凤凰男。别人都说我的人生是开挂了的。可是,只有我自己知道,我的人生是怎样的杯具!我一心一意非他不嫁的凤凰男夏剑,与我小妈刘露那个凤凰女狼狈为奸,勾搭在一起。大二时,刘露去我们家玩,结果,却和我爸爸睡在了一起,被我妈发现后,她受不了这个打击,当场突发脑溢血而身亡。而...
作者猪八戒骑梨花的经典小说嫡女狂妻,督主夫人是大佬最新章节全文阅读服务本站更新及时无弹窗广告小说前世特工一朝穿越成候府废柴嫡女,还是一个两百斤的胖子?爹爹不亲,后母恶毒,白莲花妹妹抢她男人?从天而降九千岁护着她人挡杀人佛挡杀佛。他黑眸眯着杀意,娇娇金尊玉贵,你碰了她一只手,那就赔上一百双吧。小太监掐着手指算,嘿嘿笑督主,一百双手正好灭门!当夜李府血流成河,想置她于死地的未婚夫就这么被九千岁灭了满门。她一句话我要减肥!九千岁放话了,慕容小姐瘦十斤送北镇抚司!二十斤送东厂!...
作者陌上有秋痕的经典小说我的梦境能成真最新章节全文阅读服务本站更新及时无弹窗广告小说比清明梦还真实的梦境,是我的梦境世界。我太弱小,想要强大做梦当梦中的知识能够带到现实世界,会带来怎样的变化?本书讲述的就是自幼贫寒主角,凭借梦的能力,逆袭整个世界的故事。...