Ansor:为深度学习生成高性能的张量程序
通过将 AutoTVM 算法 Droplet Search 整合到 Ansor 的探索阶段中,我们展示了在减少搜索时间的同时提高内核质量的潜力。应用该方法于 Ansor 生成的前 300 个内核时,通常比允许 Ansor 分析 10,000 个内核时更快地获得更好的内核。
Jun, 2024
该论文介绍了一个基于深度学习工作负载的张量程序优化学习框架,其通过学习领域特定的统计成本模型来引导张量操作实现的搜索,进而加速搜索,实现性能与手动调整的图书馆竞争力相当。
May, 2018
该论文介绍了 TensorIR 编译器抽象,用于优化具有张量计算原语的程序,通过 TensorIR 编译可以自动化优化深度学习模型,实验结果表明 TensorIR 编译使用特定的硬件后端的张量计算原语,并在各平台上提供了与手动优化系统相当的性能竞争力。
Jul, 2022
本文介绍了一种名为 TF-Coder 的工具,可以使用 TensorFlow 进行编程示例。TF-Coder 使用自底向上的加权枚举搜索,通过基于值的修剪等方法,确保表达式符合 TensorFlow 库所施加的各种要求。在实现 63 个真实世界的任务时,TF-Coder 在 5 分钟内解决了其中 63 个,有时比经验丰富的人类程序员更快地找到了更简单的解决方案。
Mar, 2020
基于硬件和软件的深度学习加速器张量程序优化方法 Pruner,通过参数化静态分析器(PSA)和模式感知成本模型(PaCM)实现硬件感知性能分析和关键数据流模式的预测,再结合 Siamese 网络的动量迁移学习(MTL)策略以提高预训练成本模型的鲁棒性。丰富的实验结果表明,Pruner 在在线和离线场景的各种张量程序调整任务中具有高效性、先进性和低资源开销。
Feb, 2024
提出一种称为 “任务映射编程范式” 的新方法,用于嵌入调度过程并使用专用映射来定义计算分配和排序,从而在深度学习编译器 Hidet 中实现了更丰富的表达能力和自动化的优化,优于 ONNX Runtime 和 TVM 等其他工具
Oct, 2022
Korch 是一个张量程序优化器,通过将操作符进行分解,然后利用二进制线性规划求解器优化内核编排,生成可在现代 GPU 平台直接部署的可执行文件,从而在 V100 和 A100 GPU 上比现有的张量程序优化器提高了最多 1.7 倍和 1.6 倍的性能。
Jun, 2024
本文追求解决自动优化张量程序生成的挑战,特别是在异构目标硬件的情况下,我们采用学习联合的神经网络和硬件特征以及基于注意力的方法来剪枝现有数据集,并将其应用于张量程序的调整中。我们的方法可以在不影响配对比较准确性 (PCA) 的情况下,将数据集缩减高达 45%的基线。此外,与不同网络和目标硬件的基线调整时间相比,所提出的方法可以实现与基线相当或更好的平均推断时间,且时间只需要基线调整时间的 25%-40%。
Apr, 2023
本研究提出了一种新颖的神经程序模型(Neural Programmer),该模型扩展了具有少量基本算术和逻辑运算的不可区分神经网络,此模型可以在多个步骤中调用这些扩展操作,因此产生的组成程序比内置操作更复杂。该模型采用相对较弱的监督信号进行训练,不需要昂贵的编写正确程序的注释,经过训练在很复杂的综合表理解数据集中取得了几乎完美的准确度。
Nov, 2015
LOOPer 是第一个使用基于深度学习的代价模型的多面体自动调度器,覆盖了大量的仿射变换和程序。它支持探索大量的仿射变换序列,并且支持具有多个循环嵌套和矩形 / 非矩形迭代域的程序的优化。我们实现和评估了 LOOPer,并展示其比现有技术获得了加速。在 Polybench 基准测试中,LOOPer 相对于 Tiramisu 获得了 1.59 倍的几何平均加速度,以及相对于 Pluto 获得了 1.34 倍的几何平均加速度,Pluto 是一个不使用基于机器学习的代价模型的多面体编译器。
Mar, 2024