0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优化用于深度学习工作负载的张量程序

DPVg_AI_era 来源:未知 作者:胡薇 2018-05-23 15:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

华盛顿大学计算机系博士生陈天奇、以及上海交通大学和复旦大学的研究团队提出一个基于学习的框架,以优化用于深度学习工作负载的张量程序。该研究使用基于机器学习的方法来自动优化张量运算核心并编译AI工作负载,从而可以将最优的性能部署到所有硬件。实验结果表明,该框架能够为低功耗CPU,移动GPU和服务器级GPU提供与最先进手工调优库相媲美的性能。

深度学习在我们的日常生活中已经无处不在。深度学习模型现在可以识别图像,理解自然语言,玩游戏,以及自动化系统决策(例如设备放置和索引)。张量算符(tensor operators),如矩阵乘法和高维卷积,是深度学习模型的基本组成部分。

可扩展的学习系统依赖于手动优化的高性能张量操作库,如cuDNN。这些库针对较窄范围的硬件进行了优化。为了优化张量算符,程序员需要从逻辑上等价的许多实现中进行选择,但由于线程,内存重用, pipelining和其他硬件因素的不同,性能上的差别很大。

支持多种硬件后端需要巨大的工程努力。即使在当前支持的硬件上,深度学习框架和模型的开发也从根本上受到库中优化操作符设置的限制,阻止了诸如操作符熔合(operator fusion)之类的优化,从而产生不受支持的操作符。

针对这个问题,华盛顿大学计算机系博士生陈天奇、以及上海交通大学和复旦大学的研究团队提出一个基于学习的框架,以优化用于深度学习工作负载的张量程序( tensor programs)。

摘要

我们提出一个基于学习的框架,以优化用于深度学习工作负载的张量程序( tensor programs)。矩阵乘法和高维卷积等张量算符( tensor operators)的高效实现是有效的深度学习系统的关键。然而,现有的系统依赖于手工优化的库,如cuDNN,这些库只有很少的服务器级GPU能很好地支持。对硬件有要求的操作库的依赖限制了高级图形优化的适用性,并且在部署到新的硬件目标时会产生巨大的工程成本。我们利用学习来消除这种工程负担。我们学习了领域特定的统计成本模型,以指导在数十亿可能的程序变体上搜索张量算符的实现。我们通过跨工作负载的有效模型迁移来进一步加快搜索速度。

实验结果表明,我们的框架能够为低功耗CPU,移动GPU和服务器级GPU提供与最先进手工调优库相媲美的性能。

学习优化张量程序问题的形式化方法

我们提出以下问题:我们是否可以通过学习来减轻这种工程负担,并自动优化给定硬件平台的张量算符程序?本论文为这个问题提供了肯定的答案。我们建立了统计成本模型来预测给定的低级程序的程序运行时间。这些成本模型指导了对可能程序空间的探索。我们的成本模型使用可迁移的表示形式,可以在不同的工作负载之间进行泛化,以加速搜索。这一工作的贡献如下:

我们提供了学习优化张量程序问题的一种形式化方法,并总结了其关键特征。

我们提出了一个基于机器学习的框架来解决这个新问题。

我们使用迁移学习将优化速度进一步提高2倍至10倍。

我们在这个框架中提供了详细的组件设计选择和实证分析。

在实际的深度学习工作负载的实验结果表明,我们的框架提供的端到端性能改进比现有框架好1.2倍至3.8倍。

图1:该问题的一个例子。 对于给定的张量算符规范 ,有多种可能的低级别程序实现,每种实现都有不同的loop顺序, tiling 大小以及其他选项。每个选项都创建一个具有不同性能的逻辑等效程序。我们的问题是探索程序空间并找到一个优化的程序。

图2:学习优化张量程序框架的概览

学习优化张量程序算法

图3:编码低级别循环AST的可能方法的示例

表1:单batch的ResNet-18推理中所有conv2d操作符的配置。H,W表示高度和宽度,IC表示输入通道,OC表示输出通道,K表示 kernel大小,以及S表示stride大小。

讨论和结论

我们提出了一种基于机器学习的框架来自动优化深度学习系统中张量算符的实现。我们的统计成本模型允许在工作负载之间进行有效的模型共享,并通过模型迁移加速优化过程。这个新方法的优秀实验结果显示了对深度学习部署的好处。

在我们的解决方案框架之外,这个新问题的具体特征使它成为相关领域创新的一个理想测试平台,如神经程序建模、贝叶斯优化、迁移学习和强化学习。

在系统方面,学习优化张量程序可以使更多的融合操作符、数据布局和数据类型跨不同的硬件后端。这些改进对于改进深度学习系统至关重要。我们将开放我们的实验框架,以鼓励在这些方向进行更多的研究。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123899

原文标题:陈天奇团队新研究:自动优化深度学习工作负载

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战可(11大系列课程,共5000+分钟)

    领域主流开发环境,LabVIEW与深度学习的集成一直是行业痛点。课程提供独家开发的labview调用框架,实现从模型训练(Python)到部署(LabVIEW)的无缝衔接,已成功应用于DIP、AOI
    发表于 12-03 13:50

    【产品介绍】Altair PBS Professional HPC工作负载管理器和作业调度管理系统

    AltairPBSProfessional行业领先的HPC工作负载管理器和作业调度管理系统PBSProfessional是一款快速、强大的工作负载管理器和作业调度管理系统,旨在提高生产
    的头像 发表于 09-19 17:03 381次阅读
    【产品介绍】Altair PBS Professional HPC<b class='flag-5'>工作</b><b class='flag-5'>负载</b>管理器和作业调度管理系统

    如何在机器视觉中部署深度学习神经网络

    人士而言往往难以理解,人们也常常误以为需要扎实的编程技能才能真正掌握并合理使用这项技术。事实上,这种印象忽视了该技术为机器视觉(乃至生产自动化)带来的潜力,因为深度学习并非只属于计算机科学家或程序员。 从头开始:什么
    的头像 发表于 09-10 17:38 678次阅读
    如何在机器视觉中部署<b class='flag-5'>深度</b><b class='flag-5'>学习</b>神经网络

    TPU处理器的特性和工作原理

    张量处理单元(TPU,Tensor Processing Unit)是一种专门为深度学习应用设计的硬件加速器。它的开发源于对人工智能(AI)和机器学习应用的需求,尤其是
    的头像 发表于 04-22 09:41 3315次阅读
    TPU处理器的特性和<b class='flag-5'>工作</b>原理

    在OpenVINO™工具套件的深度学习工作台中无法导出INT8模型怎么解决?

    无法在 OpenVINO™ 工具套件的深度学习 (DL) 工作台中导出 INT8 模型
    发表于 03-06 07:54

    使用Python API在OpenVINO™中创建了用于异步推理的自定义代码,输出张量的打印结果会重复,为什么?

    使用 Python* API 在 OpenVINO™ 中创建了用于异步推理的自定义代码。 遇到输出张量的打印结果会重复的问题,即使输入图像不同。
    发表于 03-06 07:53

    如何排除深度学习工作台上量化OpenVINO™的特定层?

    无法确定如何排除要在深度学习工作台上量化OpenVINO™特定层
    发表于 03-06 07:31

    无法调用GPU插件推理的远程张量API怎么解决?

    运行了使用 GPU 插件的远程张量 API 的推理。但是,它未能共享 OpenCL* 内存,但结果不正确。
    发表于 03-06 06:13

    为什么无法通过OpenVINO™深度学习 (DL) 工作优化 MYRIAD 导入的模型?

    -ASSETS_DIR /hdd-raid0/openvino_workbench 命令以启动 DL 工作台。 收到以下消息: 由于选定的项目具有只读状态,因此无法使用优化按钮 拔下并插入神经电脑棒 (NCS2) 并重新启动工作
    发表于 03-05 06:20

    军事应用中深度学习的挑战与机遇

    人工智能尤其是深度学习技术的最新进展,加速了不同应用领域的创新与发展。深度学习技术的发展深刻影响了军事发展趋势,导致战争形式和模式发生重大变化。本文将概述
    的头像 发表于 02-14 11:15 818次阅读

    如何优化BP神经网络的学习

    优化BP神经网络的学习率是提高模型训练效率和性能的关键步骤。以下是一些优化BP神经网络学习率的方法: 一、理解学习率的重要性
    的头像 发表于 02-12 15:51 1421次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Backpropagation Neural Network
    的头像 发表于 02-12 15:15 1339次阅读

    HPC工作负载管理的关键要素

    HPC工作负载管理是一个复杂而精细的过程,涉及资源分配、作业调度、性能监控与优化以及故障处理与恢复等多个关键要素。下面,AI部落小编带您了解HPC工作
    的头像 发表于 02-08 09:53 531次阅读

    燃料电池测试负载如何进行负载测试?

    对比不同参数设置下的测试结果,可以找出燃料电池的最佳工作点,为实际应用提供参考。 优化调整:根据负载测试结果,对燃料电池的参数设置、结构设计等进行优化调整,以提高其性能和耐久性。在
    发表于 12-16 15:53

    深度学习工作负载中GPU与LPU的主要差异

    ,一个新的竞争力量——LPU(Language Processing Unit,语言处理单元)已悄然登场,LPU专注于解决自然语言处理(NLP)任务中的顺序性问题,是构建AI应用不可或缺的一环。 本文旨在探讨深度学习工作
    的头像 发表于 12-09 11:01 3908次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>工作</b><b class='flag-5'>负载</b>中GPU与LPU的主要差异