人工智能时代计算机架构的趋势与挑战

1   背景简介

主持人:Chulian Zhang, compute architect@NVIDIA

20世纪70年代以来微处理器的单线程性能一直保持着指数增长。而在2010年后,由于Moore's Law和Dennard scaling几近终结,其增长速度明显放缓。

图片来源:www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/

然而对算力的需求不仅没有减缓,反而越来越大,特别是深度学习的再次爆发更是让这种需求变得愈加紧迫。为了满足这种需求,一个有效的解决方案就是使用专用处理器。专用处理器的一个典型例子就是GPU,一种专门加速图形和并行计算的处理器。下图中可以看到在CPU 加速已经明显减缓的情况下,GPU加速的计算能力却还在快速上升。

图片来源:https://www.nvidia.com/es-la/data-center/hpc/

随着深度学习日渐流行,几乎每家大公司都在打造深度学习处理器,其中Google的Tensor Processing Unit (TPU) 就是一个重要的代表。TPU的主要功能是处理神经网络,而神经网络中的大部分计算最终都归结于矩阵乘法,因此TPU的核心就是矩阵运算单元(MUX,即进行矩阵相乘计算的单元。

图片来源: https://cloud.google.com/tpu/docs/system-architecture

圆桌讨论要点

 1. 机器学习应该什么样的硬件环境下运行?是使用付费的云计算,还是只使用线下已有的专用计算和存储资源

观点1:

TPU的主要作用是提供更多的计算能力。目前只有Google Cloud提供TPU,然而云资源非常昂贵,单是获得TPU的使用权限就要800美元,最终总费用是按小时数计算。所以计算的成本必须足够高才值得尝试在TPU上运行。

 如果个人或者初创公司想要尝试,最划算的方法是购买廉价的GPU安装在自己的计算机上。对于初学者来说,可以尝试NVIDIA GTX 1060或RTX 2070。2070的性能更好一些,而2060或1060则更便宜。训练了一段时间之后,可以再看看其他选择。如果需要更强的计算能力,可以使用AWS或者Google Cloud。比如在我使用云的时候,通常一半的模型训练在本地运行,其余的在云上运行。

 观点2:

我们还可以利用Google Colab(类似Python Jupyter Notebook)进行模型训练,通过浏览器访问免费的TPU资源和NVIDIA T4GPU。Colab的问题在于,如果你用的是自己的数据集,那么每次使用前都需要重新设置。如果把数据从网络硬盘导入Colab,再进行相同的操作,速度也会慢得多。不过对初学者来说,这是一个非常好的选择。

 2. 5G物联网时代,选择哪种设备进行边缘计算更合适:GPU、FPGA还是ASIC?

 观点1

目前市场上有几个解决方案。我认为在物联网设备的特定应用中采纳优化后的ASIC是一个很好的解决方案。但问题是,机器学习算法本身仍在快速发展,而GPU和FPGA可编程性的优势依然会持续。我们固然可以构建一个最优的ASIC设计,但是在流片(tape-out)的1.5年后,算法可能已经过时了。将来也许行业会趋同于使用某个特定的算法,那时候使用ASIC 就是最佳方案了。

 观点2:

随着算法的发展,ASIC也在不断演变。每半年或一年就会有新一代物联网设备出现,能够执行更先进的算法。FPGA和ASIC实际上大同小异,都只是负责执行命令。FPGA可以用来开发程序,方便灵活,但是性能不佳;而ASIC则可以针对特定目的进行优化并不断更新迭代。两者的组合现在已经成了趋势。Intel支持的芯片创业公司SiFive最近收购了一家名为Open-Silicon的公司。他们的专用ASIC具有嵌入式编程功能,如eFPGA,能够重新编译和开发更多算法。

3.深度学习加速器目前主要用于模型训练和推理这两种功能,那么这两类加速器在将来更加分化还是逐渐趋同?

 观点1:

我认为它们不会趋同,因为提高应用能效和目标优化是两个完全不同的方向,最终它们将会拆分成两个市场。但即使是这两个市场的公司,也有不同的要求。以NVIDIA为例,他们在数据中心的训练方面做得很好,甚至还包括一些数据中心推理。但是如果是纯粹推理,市场上就出现了很多竞争对手。所以我认为这两种功能很难趋同,特别是考虑到边缘应用的专用程度。我认为除了NVIDIA或Google之外,很多其他公司都可以通过打开一个非常小众的市场并深入研究来立足。

 观点2:

从架构的角度来看,我认为它们有可能趋同,因为它们仍然能够解决类似的问题。但是对于给定的架构,它们可以通过不同的方法实现。

 观点3:

对于推理,我们通常更关心效率。我们通常在数据中心进行训练,而在边缘设备上进行推理,因此推理的架构的设计倾向于使用更少的bits。正因如此,才会有两种不同的设计方式。

 观点4:

我认为这是两个不同的市场,目标也不尽相同。对于训练,我们希望吞吐量越大越好;对于推理,我们要考虑的则是减少延迟和功耗。因此,在设计架构时,首先要考虑最终目标,然后相应地设计架构。例如,对于在数据中心中进行训练,我们并不关心单个网络的延迟,只关心一小时内可以训练多少个网络。对于在边缘设备上进行推断,我们关心的是运行单个网络的延迟以及功耗。这样一来,我认为趋同的可能性不大。

4. Google近期开发了哪些加速器?

观点

TensorFlow的生态系统中,Google有许多加速器,如TPU和Edge TPU,还有许多非开源的内部开发项目。

除了硬件之外,Google最近发布了一个名为MLIR(multi-level intermediate representation)的开源项目。TensorFlow的图形结构使其并不能非常有效的构建连接不同后端的编译器,所以MLIR被用作中间语言,成为连接SLA (Specialized learning accelerator),TPU和不同后端的桥梁。

 MLIR的快速开发过程得益于Chris Laettner的全力推动,他2017年加盟Google,是LLVM(编译器的框架系统)和Swift编程语言的设计者。(完)

Robinly
Robinly

Robinly团队坐标硅谷,从创业、领导力和人工智能三个角度去剖析成功创业者、高科技领导者、人工智能科学家和知名投资人的职业养成过程和他们对于这些领域的观点,我们力求追本溯源,为广大工程师、研究者提供一手的职业学习内容。

http://www.robin.ly
专栏二维码
入门趋势分析
31
相关数据
AWS机构

亚马逊网络服务系统(英语:Amazon Web Services,缩写为AWS),由亚马逊公司所创建的云计算平台,提供许多远程Web服务。Amazon EC2与Amazon S3都架构在这个平台上。在2002年7月首次公开运作,提供其他网站及客户端(client-side)的服务。截至2007年7月,亚马逊公司宣称已经有330,000名开发者,曾经登录过这项服务。

相关技术
来也机构

「来也」是国内领先的人工智能交互平台,由常春藤盟校(Ivy League)归国博士和MBA团队发起,核心技术涵盖自然语言处理(NLP)、多轮对话控制和个性化推荐系统等。公司已获得数十项专利和国家高新技术企业认证。 来也的愿景是通过AI赋能,让每个人拥有助理。C 端产品小来是智能化的在线助理,通过业内创新的AI+Hi模式,提供日程、打车、咖啡、差旅和个性化查询等三十余项技能(覆盖400w用户和数十万服务者),让用户用自然语言发起需求并得到高效的满足。B端品牌吾来输出知识型的交互机器人和智能客户沟通系统,帮助各领域企业客户打造行业助理。目前已经在母婴,商旅,金融和汽车等行业的标杆企业实现商业化落地。

深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

边缘计算技术

边缘运算(英语:Edge computing),又译为边缘计算,是一种分散式运算的架构,将应用程序、数据资料与服务的运算,由网络中心节点,移往网络逻辑上的边缘节点来处理。边缘运算将原本完全由中心节点处理大型服务加以分解,切割成更小与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于用户终端装置,可以加快资料的处理与传送速度,减少延迟。在这种架构下,资料的分析与知识的产生,更接近于数据资料的来源,因此更适合处理大数据。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

云计算技术

云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

物联网技术技术

物联网(英语:Internet of Things,缩写IoT)是互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。物联网一般为无线网,而由于每个人周围的设备可以达到一千至五千个,所以物联网可能要包含500兆至一千兆个物体。在物联网上,每个人都可以应用电子标签将真实的物体上网联结,在物联网上都可以查出它们的具体位置。通过物联网可以用中心计算机对机器、设备、人员进行集中管理、控制,也可以对家庭设备、汽车进行遥控,以及搜索位置、防止物品被盗等,类似自动化操控系统,同时通过收集这些小事的数据,最后可以聚集成大数据,包含重新设计道路以减少车祸、都市更新、灾害预测与犯罪防治、流行病控制等等社会的重大改变,实现物和物相联。

5G技术

第五代移动通信系统(5th generation mobile networks),简称5G,是4G系统后的延伸。美国时间2018年6月13日,圣地牙哥3GPP会议订下第一个国际5G标准。由于物理波段的限制,5G 的网络也将会与其他通信技术并用,包含长距离的其他传统电信波段。

推荐文章
很喜欢你们的文章,可是能不能不要给文章中的关键字加下划线,然后不小心碰到就会出现相应的名词解释,遮挡大部分手机屏幕,严重影响了阅读体验。这个功能真没必要。