Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

一统所有AI芯片:Facebook揭秘深度学习编译器Glow

一名 Facebook 高管在最近的一次活动中证实,这家社交网络巨头正在招募芯片工程师,并已在设计至少一种 ASIC。在本周的 Facebook @Scale 2018 大会上,Facebook 宣布五家芯片公司将支持 Glow(这是一个开源的深度学习编译器),其中包括英特尔、Marvell、高通、Esperanto 和 Cadence。

「Facebook 确实正在组建芯片团队,不仅与芯片供应商合作,我们也在构建自己的芯片。当然,这不是我们的首要目标,」Facebook 基础设施副总裁 Jason Taylor 表示。这位高管称 Facebook 的目标并不等同于谷歌的深度学习加速器 TPU,但他拒绝透露发布时间节点等更多具体细节。


与多达 50 家 AI 加速器设计公司进行合作是 Facebook 新设芯片部门的工作重点。「目前市面上已有很多种加速芯片,」Taylor 表示,「最大的问题是,它们针对的工作负载是否是当前最重要的。」

在 Keynote 中,Taylor 将 Glow 描述为一种通用编译器,可让开发人员针对所有新兴的深度学习加速器进行推理——在云端或者边缘网络。它不面向手机等客户端系统。

「我们预计深度学习加速器硬件也会出现碎片化的情况,我们在 Glow 上的工作是为了帮助机器学习专家设计神经网络,并让他们从对每种特定芯片的适配工作中解脱出来。」Taylor 表示。「我们知道碎片化即将到来,现在没有人知道哪种硬件资源的组合(如片上存储模块和乘法累加阵列)会最终取胜。所以我们让开发者聚焦于更高层级的计算图中,而无需动手动编码针对硬件的细节。」

Jason Taylor 将 Glow 描述为在云端和边缘网络上进行推断的编译器。(图源:Facebook)

Glow 采用 TensorFlow 或 Caffe2 等框架生成的 AI 图像,然后将它渲染成用于硬件加速器的字节代码,Taylor 解释道。该编译器包括多个工具,如用来生成用于芯片特定内存配置的指令排程器、线性代数优化器、内存分配器,以及用来测试硬件准确率的基于 CPU 的推断实现。

益华(Cadence)、Esperanto Technologies、英特尔、Marvell 和高通称它们未来的芯片将支持 Glow。Taylor 期待将其他芯片厂商也添加到支持 Glow 的厂商名单上。「这是开源 Glow 的好处之一。」

一名高级芯片专家将 Glow 描述为在生产系统中部署神经网络的框架。其输入是 TensorFlow 或 Caffe2 等框架创建的图。

一些著名的芯片厂商已经开始支持类似的软件。例如,英伟达的 Tensor RT 将来自框架的图作为输入,然后为 GPU 输出 Cuda 代码。

传统上,编译器是针对特定芯片进行严格优化的。但是 Taylor 表示,「当前编译器的编译范围要比过去大得多——Glow 中的优化类型要识别可以渲染给硬件加速器的图像中的很大一部分。」

在快速发展的深度学习领域,Glow 是努力弥补软硬件差距的最新例子。例如,英伟达的 Tensor RT 现在已经发展到第五代,尽管其第一代仅在一年前发布。一些加速器初创公司对支持各种软件框架及其变化所需的工作水平有些无能为力。

Facebook、微软等公司正在支持 ONNX,这是一种用权重表示图形的标准方法。去年 12 月份,Khronos 的团队发布了深度学习加速器的一个硬件抽象层——NNEF。

Glow 是 Pytorch 1.0 的一个组成部分,后者是一个开源项目集,包括合并的 Caffe2 和 Pytorch 框架。Pytorch 1.0 的第一次开发者大会将于 10 月在旧金山举行。

在另一个演讲中,Facebook 工程经理 Kim Hazelwood 展示了 Facebook 使用的十多个不同深度学习工作负载,它们部署在至少四个不同类型的神经网络上。每天 Facebook 生成超过 200 万亿次推断,翻译 50 多亿文本,并自动删除超过一百万虚假账号。

她说,Facebook 的一些推断任务需要的计算量是其它任务的 100 倍。如今,Facebook 在其设计的一小部分 CPU 和 GPU 服务器上运行这些任务。

Hazelwood 告诉 EE Times,从通用硬件转向定制硬件将需要针对那些仍在变化的工作负载定制芯片。她拒绝透露 Facebook 关于使用任何定制 AI 加速器的想法。

仅 Facebook 就在十几个深度学习应用中使用了至少五种神经网络

一位观察者推测,Glow 将是一个理想的工具,使公司能够采用一些适合其各种工作负载的加速器。其半导体团队可以帮助公司精选芯片,也许还可以为其中一些公司提供定制芯片的建议。

另外,Facebook 发布了一篇博客,描述了它创建的一个新软件工具,该工具使用深度学习来调试代码。它说,SapFix 可以自动生成特定错误的补丁,然后将其提交给工程师审批并部署到生产中。

迄今为止,Facebook 已经使用 SapFix 加快了向装有 Facebook Android 应用程序的数百万台设备发送代码更新的进程。Facebook 表示将发布该工具的一个版本,但没有说明发布时间。

原文链接:https://www.eetimes.com/document.asp?from=groupmessage&isappinstalled=0&doc_id=1333716&page_number=1

工程FacebookGlow编译器AI 芯片
1
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
深度学习技术

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

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

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

TensorFlow技术

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

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

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

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~