打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
深度学习与计算架构和芯片设计[通识篇]

近一直在卷公司的项目,好久没时间动笔。希望能顺利出好结果。

本文是参考论文[1]的阅读笔记,这篇paper是Jeff Dean在2020 International Solid-State Circuits Conference(ISSCC)上的keynote talk的配套论文。

引入

简而言之,就是深度学习的迅猛发展带来的硬件需求。

比如,众所周知,采用了深度学习以后,ImageNet上的错误率从2010年的28%降到2017年的2.3%。

但这些深度学习的idea,实际上在1960s~1990s上就有很多人尝试,但因为算力的不足没有带来很好的产出。直到21世纪,算力经过这么多年的摩尔定律的加持之后,我们才有能力搞这么大的模型。

硬件现状

但是,摩尔定律开始失效,1985年到2003年,CPU性能每1.5年翻一倍,2003年到2010年,每两年翻一倍。而现在,预期要20年才能翻一倍。

摩尔定律和后摩尔定律时代的算力增长见下图

而模型算力的需求如下:

为什么深度学习需要独特的硬件

深度学习模型有三个特点,让它们和通用计算不同。

  1. 模型可以忍受低精度计算
  2. 大部分模型的计算都是一小部分计算的组合,包括矩阵乘法,向量运算,卷积,全连接层等
  3. 很多之前为通用计算设计的机制在深度模型这里并不需要,包括分支预测、推测执行、缓存内存层次、TLB子系统等。

所以,一方面,它需要支持的计算少,另一方面,深度学习的应用却越来越广。所以,为深度学习设计特有的硬件是必须的。

推理用的硬件

对于Inference来说,8bit整数运算对很多重要的模型来说都足够了。在未来,甚至可以用更低的精度,以及其他的一些偏重稀疏的技术。

TPUv1的核心就是一个65536的8bit 乘-累加单元,它的峰值吞吐量是92 TeraOps/second(TOPS)。TPUv1平均比它那时的CPU和GPU快15-30倍。考虑到能耗的话,TOPS/Watt可以达到30-80倍。它设计出来后,可以支持Google 95%的模型需求。

而TPUv1的设计经验还可以被借鉴去做device上的硬件,从而带来更多的应用。

雨石说: Pixel 6上搭载了第一款TPU,在2021年发布。

现在,市面上有几家专做硬件的大公司,以及有超过两位数的接受过风险投资的芯片研发startup。比如

  • Cerebras
  • GraphCore
  • Nervana (Intel收购)

除此之外,alibaba也在专注于做inference专有芯片。

不同的硬件公司有不同的侧重。比如,一些公司避开了大内存的DRAM或HBM,只专注于fit SRAM的小模型所用的芯片; 另一些则在设计中包括了大内存来支持大尺寸的模型; 一些比如Cerebra在探索晶片级集成;其他的,比如Google Edge TPU,在专注于在edge devices上的低功耗芯片

训练用的硬件

为训练设计硬件比为单芯片推理更难,因为大数据大模型,训练会花费大量的时间,为了缩短这些时间,就需要我们在设计的时候考虑到并行化和分布式系统。所以,设计训练用芯片需要我们设计一个大规模整体的系统,既要考虑到单个芯片的设计,又要兼顾超级电脑上的高性能互联。

上图给大家展示了TPUv2的设计图,双核,每个核可以支持两个128x128的矩阵相乘,芯片有16GB的高带宽内存HBM,(TPUv3是32G)。下图则展示了1024个TPUv3的部署,分为8组,组成了32x32的环形网络结构,提供100Petaflop/s的峰值算力。

低精度数字格式

TPUv2和TPUv3使用自定义的浮点类型格式,bfloat16,跟IEEE定义的半精度16bit float不同,更适合机器学习模型。

bfloat16原先是在DistBelief中为了压缩模型来降低带宽需求而设计的,后来被用在Tensorflow中。

下图展示了不同数字格式的区别:

很多事实表明,深度学习中的计算,更关注数字的动态区间而非精度,而在芯片运算中,数字之间的计算主要是尾数(上图中Mantissa)的计算,所以,bfloat16比fp16要少很多计算。

芯片设计

现在的芯片设计需要18到24个月来完成,再加上半导体制造和安装等,一代芯片需要2到5年的时间。显然,这无法适应现在深度学习的发展需求。

而芯片的设计,比如,在placement和route环节,需要很多人类专家的参与,在高层设计完成以后,一般就不改了。因为改了就会花费很多的时间从头再来。

而Placement和route环节,可以看成是序列决策问题,即放置各种单元,以及它们之间的各种连接,在这些都完成之后,我们才可以知道这个芯片的性能。所以这块就是一个典型的强化学习问题。

所以,可以使用机器学习的方法来进行芯片设计,有两个好处

  • end-to-end,找全局最优,不用担心高层设计推翻后返工时间长。
  • 时间短,加速迭代周期,促进行业的发展。

半导体制造

随着计算机视觉的发展,很多半导体制造流程中的视觉检查问题可以用更自动化的方法来完成。

计算系统

另一个机会则是用机器学习来优化计算系统中的已有的启发式规则,包括编译器,操作系统,文件系统,网络堆栈等。

比如,编译器中就有很多手写的启发式规则:哪些逻辑inline,选择哪些指令序列,内存中如何展开数据结构等。

底层网络则需要决定何时增加或降低TCP的窗口,是否以及怎样压缩数据等。

未来方向

  • Sparsely-activated模型,比如Sparsely-gated mixture of experts模型。
  • AutoML。包括神经网络架构搜索,遗传架构搜索等。
  • 多任务训练,从几个到几十个相关任务一起训练。以及从大数据集上得到的模型往小数据集上的迁移学习。比如Bert。
  • 他们三个的混合

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
AI会给芯片设计带来什么?
EDA|谷歌使用机器学习进行自主布局布线,证实可提高开发效率和降低成本
依图颜水成:AI芯片设计要深度融合算法,才能实现极致性能
AI 可以在 6 小时内设计出计算机芯片?谷歌这项研究厉害了
谷歌内部正在尝试用通过人工智能程序开发新一代计算机芯片
微软打造“小芯片云”架构,欲大幅降低LLM实现成本
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服