陈天奇等人提出AutoTVM:让AI来编译优化AI系统底层算子

简介: 时的深度学习并没有现在那么火热,也没有现有的 GPU 卷积实现,我在实验室的 GTX 470 上面第一次手写 GPU 卷积用以支持卷积 RBM,当时针对 CPU 十多倍的加速比让我兴奋不已。

Alexnet 横空出世的两年之前,我选择了深度学习作为本科毕设方向。当时的深度学习并没有现在那么火热,也没有现有的 GPU 卷积实现,我在实验室的 GTX 470 上面第一次手写 GPU 卷积用以支持卷积 RBM,当时针对 CPU 十多倍的加速比让我兴奋不已。虽然最终那段研究经历并没有结果,但是计算本身对于机器学习的推动作用却深深地印在了我的脑海里。


深度学习系统支是推动进步的引擎,而在引擎的核心,则是像 cuDNN 这样的针对硬件的高效算子实现。每一个高效的算子库的背后都是大量工程的工程努力。虽然我自己已经从事了几年深度学习系统的工作,如何实现高效的硬件代码始终对于我来说是一个头疼的问题。最近的深度学习系统趋势开始进行更多的高层优化:包括探索从不同的数据表示,精度和算子融合等各个方面,而这些优化势必会带来更多的算子版本需要去优化,这无疑是一个非常大的工程问题。我们还需要把这个问题乘上包括移动芯片,移动 GPU 和 AI 加速器等等后端硬件的种类。针对每一个平台都去实现一遍底层的优化代价无疑会非常大。


我们希望利用机器学习本身去解决这个问题,以深度学习编译器 TVM 为基础自动化地优化深度学习算子性能。写到这里,第一个大家会问的问题是为什么机器有可能会比手工做的优化要好。其实具体原因也很简单,一个人的精力是有限的,我们可以针对几个特定的场景去做一些优化。而机器有无限的精力可以针对每一种类型,数据表示,算子融合和实际的输入尺寸做特定的调整。像算子融合,这样的优化必须要利用自动代码生成才可以做到。所以机器在一定程度上可以取巧。


如何可以让机器匹配手写优化性能


思路非常直接:


  1. 建立一个足够大的搜索空间,保证可能的人工手写优化全部包含在这个搜索空间里面
  2. 快速地搜索这个这个空间,获取优化的实现


这两个想法很简单,其实在两年之前我们基本上就有了这一个解决问题的蓝图,但是执行都非常困难。第一个问题是如何建立足够大的搜索空间,使得其可以包含人可能达到的手写优化。这个在之前 TVM 的介绍里面我们提到过,我们通过参考改进 Halide 的 schedule 编程源语,加入了对于 GPU,加速器的抽象支持,通过一年的努力使得搜索空间基本可以匹配手写优化的性能。值得指出的是手工的优化可以非常多样性,并不是所有的优化都可以被简单的一个固定 pattern 总结。这也是之前很多自动代码生成框架无法达到比较好的效果的一个原因。我们也需要不断地总结抽象的优化规律,加入到 TVM 的原语中。另外在必要的时候我们也可以通过 tensorize 这个抽象可以插入一些手工优化的 micro kernel,但是依然使用框架来做外层调度,达到最好的效果。


有个足够好的搜索空间,剩下的问题是如何在几十亿的可能性里面去选择比较好的实现。这里有几种常见的做法。传统的高性能计算库会采用 Auto Tuning,也就是把可能的参数都尝试一遍。这样做的潜在问题是空间太大之后枚举开销过高。另外一种常见的做法是类似于数据库的做法,针对程序建立一个代价估价函数,然后利用估价函数来搜索。这个做法可能碰到的主要问题是估价函数不一定可以估计准确,并且针对每个新的硬件特性必须要重新设计估价函数。


我们的利用机器学习来学习程序空间的代价估价函数。具体地说,探索程序在一开始会随机地选取一些设定,直接到硬件上面去运行生成的代码,再通过得到的反馈数据来更新我们的程序代价估计函数。这里面比较有趣的一点是模型的可迁移性。因为真正的深度学习系统需要优化许多不一样输入类型,输入形状的算子。一个可迁移的模型可以通过学习已经看到过的算子优化记录来预测新的目标的代价,导致最后的搜索时间可以大幅降低。


其实在这个整个优化的过程中机器学习算法只是起到了重要但是只是一部分的作用。在一些如 ARM 我们的先验模版比较强的情况下,随机搜索就可以达到非常不错的效果。但是重要的是我们需要建立集群化,自动化,python 可以对接的框架来做这些实验。这里特别提一下 TVM 最近引入的 RPC tracker,支持了这一个功能,才可以使得我们可以在多种设备上进行实验。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
29天前
|
机器学习/深度学习 人工智能 数据可视化
首个全自动科学发现AI系统,Transformer作者创业公司Sakana AI推出AI Scientist
【9月更文挑战第11天】Sakana AI公司近日推出全球首个全自动科学发现AI系统——AI Scientist,实现了人工智能在科学研究领域的重大突破。AI Scientist不仅能独立完成从假设提出到实验设计、数据分析及论文撰写的全过程,还能通过模拟评审提升研究成果的质量。该系统已成功应用于机器学习的多个子领域,并产出达到顶级会议标准的论文。尽管其高效性备受赞誉,但也引发了关于研究可信度和潜在风险的讨论。Sakana AI强调,系统具备可追溯的决策过程与严格的评审机制,确保了研究的可靠性和透明度。论文详情参见:[链接]。
64 6
|
8天前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
112 65
|
2天前
|
存储 人工智能 供应链
AI与能源系统:优化能源生产和消费
【10月更文挑战第9天】在当前全球能源转型的关键时期,人工智能(AI)正逐渐成为推动能源系统优化与升级的重要力量。本文探讨了AI在能源生产、分配、存储和消费等方面的应用。在能源生产中,AI通过智能预测与调度、故障预警及优化资源配置等方式提升效率;在能源分配与存储方面,AI推动智能电网管理和储能系统优化;在能源消费端,AI实现精细化管理,如智能家庭能源管理和工业节能。未来,AI将进一步融入能源系统的各个环节,促进能源的高效配置与可持续发展。然而,面对数据安全和算法透明度等挑战,需加强监管与伦理审查,确保AI技术健康发展。
|
14天前
|
存储 人工智能 算法
AI伦理学:建立可信的智能系统框架
【9月更文挑战第26天】随着AI技术的迅猛发展,其在各领域的应用日益广泛,但也带来了算法偏见、数据隐私泄露、就业替代等伦理和法律挑战。本文探讨AI伦理学的核心议题,包括数据隐私保护、算法公平性与透明度、机器决策责任归属及对就业市场的影响,并提出建立可信智能系统框架的建议,如强化法律法规、技术创新、建立监督机制、行业自律和公众教育,以确保AI技术的可持续发展和社会接受。
|
2月前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
2月前
|
人工智能 自然语言处理 云计算
iOS迎来AI升级:揭秘Apple全新“智能”系统
iOS迎来AI升级:揭秘Apple全新“智能”系统
iOS迎来AI升级:揭秘Apple全新“智能”系统
|
2月前
|
存储 人工智能 自然语言处理
利用AI技术实现智能客服系统
【8月更文挑战第27天】本文将介绍如何利用人工智能(AI)技术构建一个智能客服系统,以提高客户服务效率和质量。我们将从需求分析、系统设计、功能实现等方面进行详细阐述,并通过实际代码示例展示如何实现一个简单的智能客服系统。
|
2月前
|
分布式计算 搜索推荐 物联网
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
大数据及AI典型场景实践问题之通过KafKa+OTS+MaxCompute完成物联网系统技术重构如何解决
|
2月前
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
2月前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【8月更文挑战第13天】随着网络技术的发展,网络安全问题愈发严峻,传统防御手段已显乏力。本文探讨构建AI驱动的自适应网络安全防御系统,该系统能自动调整策略应对未知威胁。通过数据采集、行为分析、威胁识别及响应决策等环节,利用Python工具如Scapy、scikit-learn和TensorFlow实现网络流量监控、异常检测及自动化响应,从而提升网络安全防护的效率和准确性。随着AI技术的进步,未来的网络安全防御将更加智能和自动化。
44 6

热门文章

最新文章