人工智能(AI)对计算的巨大需求正在推动对AI的硬件和软件系统的无与伦比的投资。这导致了专用硬件设备数量的爆炸,现在由主要的云供应商提供。通过通过基于张量的界面隐藏低级复杂性,张量计算运行时间(TCR)(例如Pytorch)允许数据科学家有效利用新硬件提供的令人兴奋的功能。在本文中,我们探讨了数据库管理系统如何在AI空间中乘坐创新浪潮。我们设计,构建和评估张量查询处理器(TQP):TQP将SQL查询转换为张量程序,并在TCR上执行它们。 TQP能够通过在张量例程中实现与关系运算符的新颖算法来运行完整的TPC-H基准。同时,TQP可以支持各种硬件,而仅需要通常的开发工作。实验表明,与专用CPU和仅GPU的系统相比,TQP可以将查询执行时间提高到10美元$ \ times $。最后,TQP可以加速查询ML预测和SQL端到端,并在CPU基线上输送高达9 $ \ times $速度。
translated by 谷歌翻译
在过去十年中,已经开发出新的深度学习(DL)算法,工作负载和硬件来解决各种问题。尽管工作量和硬件生态系统的进步,DL系统的编程方法是停滞不前的。 DL工作负载从DL库中的高度优化,特定于平台和不灵活的内核,或者在新颖的操作员的情况下,通过具有强大性能的DL框架基元建立参考实现。这项工作介绍了Tensor加工基元(TPP),一个编程抽象,用于高效的DL工作负载的高效,便携式实现。 TPPS定义了一组紧凑而多才多艺的2D张镜操作员(或虚拟张量ISA),随后可以用作构建块,以在高维张量上构建复杂的运算符。 TPP规范是平台 - 不可行的,因此通过TPPS表示的代码是便携式的,而TPP实现是高度优化的,并且特定于平台。我们展示了我们使用独立内核和端到端DL&HPC工作负载完全通过TPPS表达的方法的效力和生存性,这在多个平台上优于最先进的实现。
translated by 谷歌翻译
一般矩阵乘法或GEMM内核在高性能计算和机器学习中占据中心位置。最近的NVIDIA GPU包括Gemm加速器,如Nvidia的张量核心。他们的剥削受到双语言问题的阻碍:它需要低级编程,这意味着低程序员的工作效率或使用只提供有限组件集的库。由于建立的组件方面的REPRASING算法经常引入开销,因此图书馆缺乏灵活性限制了探索新算法的自由。因此,使用GEMMS的研究人员无法立即享受编程生产力,高性能和研究灵活性。在本文中,我们解决了这个问题。我们在科学朱莉娅编程语言中展示了三组抽象和接口来编程宝石。界面和抽象共同设计用于研究人员的需求和朱莉娅的特征,以实现足够的担忧和灵活性的充分分离,以便在不支付性能价格的情况下轻松地扩展基本宝石。将我们的Gemms与最先进的图书馆Cublas和Cutlass进行比较,我们证明我们的性能在图书馆的相同球场中,并且在某些情况下甚至超过它,而无需在CUDA C ++中编写单行代码或者组装,而不面临灵活限制。
translated by 谷歌翻译
我们介绍了一个自动选择数据结构的框架,以支持分析工作负载的有效计算。我们的贡献是双重的。首先,我们介绍了一种新颖的低级中间语言,可以表达各种查询处理范例背后的算法,例如经典加入,GroupJoin和数据库内机器学习引擎。此语言围绕词典的概念设计,并允许更精细地选择其低级实现。其次,通过组合机器学习和程序推理,自动推断出替代实施的成本模型。使用在给定硬件架构上的字典操作的分析数据集上培训的回归模型来学习字典成本模型。使用静态程序分析推断出计划成本模型。我们的实验结果表明,训练有素的成本模型在微基准上的有效性。此外,我们表明,我们的框架生成的代码的性能要么擅长,要么与最先进的分析查询引擎和最近的数据库内机器学习框架相同。
translated by 谷歌翻译
There is an increasing need to bring machine learning to a wide diversity of hardware devices. Current frameworks rely on vendor-specific operator libraries and optimize for a narrow range of server-class GPUs. Deploying workloads to new platforms -such as mobile phones, embedded devices, and accelerators (e.g., FPGAs, ASICs) -requires significant manual effort. We propose TVM, a compiler that exposes graph-level and operator-level optimizations to provide performance portability to deep learning workloads across diverse hardware back-ends. TVM solves optimization challenges specific to deep learning, such as high-level operator fusion, mapping to arbitrary hardware primitives, and memory latency hiding. It also automates optimization of low-level programs to hardware characteristics by employing a novel, learning-based cost modeling method for rapid exploration of code optimizations. Experimental results show that TVM delivers performance across hardware back-ends that are competitive with state-ofthe-art, hand-tuned libraries for low-power CPU, mobile GPU, and server-class GPUs. We also demonstrate TVM's ability to target new accelerator back-ends, such as the FPGA-based generic deep learning accelerator.The system is open sourced and in production use inside several major companies.
translated by 谷歌翻译
我们提出了TOD,这是一个在分布式多GPU机器上进行有效且可扩展的离群检测(OD)的系统。 TOD背后的一个关键思想是将OD应用程序分解为基本张量代数操作。这种分解使TOD能够通过利用硬件和软件中深度学习基础架构的最新进展来加速OD计算。此外,要在有限内存的现代GPU上部署昂贵的OD算法,我们引入了两种关键技术。首先,可证明的量化可以加快OD计算的速度,并通过以较低的精度执行特定的浮点操作来减少其内存足迹,同时证明没有准确的损失。其次,为了利用多个GPU的汇总计算资源和内存能力,我们引入了自动批处理,该批次将OD计算分解为小批次,以便在多个GPU上并行执行。 TOD支持一套全面且多样化的OD算法,例如LOF,PCA和HBOS以及实用程序功能。对真实和合成OD数据集的广泛评估表明,TOD平均比领先的基于CPU的OD系统PYOD快11.6倍(最大加速度为38.9倍),并且比各种GPU底线要处理的数据集更大。值得注意的是,TOD可以直接整合其他OD算法,并提供了将经典OD算法与深度学习方法相结合的统一框架。这些组合产生了无限数量的OD方法,其中许多方法是新颖的,可以很容易地在TOD中进行原型。
translated by 谷歌翻译
稀疏的张量正在迅速成为现代深度学习工作负载的关键组成部分。但是,开发高性能的稀疏运营商可能很困难和乏味,现有的供应商库无法满足新运营商的不断升级要求。稀疏张量编译器简化了操作员的开发,但是对深度学习的有效稀疏编译仍然具有挑战性,因为单个稀疏格式无法最大程度地提高硬件效率,并且单次弹出编译器无法跟上最新的硬件和系统进步。我们表明,解决这两个挑战的关键是两种合成性。在本文中,我们提出了SparSetir,这是一种稀疏的张张汇编抽象,可为深度学习工作负载提供可合理的格式和可组合的转换。 Sparsetir在这些可组合组件上构建一个搜索空间,以进行性能调整。通过这些改进,SparSetir获得了单个操作员的GPU上的一致性能加速与供应商库:GNN操作员的1.1-3.3倍,稀疏变压器操作员的1.1-4.4x。 Sparsetir还以1.1-2.2倍的速度加速了端到端GNN,用于图形训练,而RGCN推断为0.9-26x。
translated by 谷歌翻译
现代深度学习框架提供嵌入在Python中的必要的急切执行编程接口,以提供生产的开发体验。但是,深度学习从业者有时需要捕获和转换程序结构以进行性能优化,可视化,分析和硬件集成。我们研究了深度学习中使用的程序捕获和转型的不同设计。通过设计典型的深度学习用例而不是长尾部,可以为程序捕获和转换创建更简单的框架。我们在Torch.fx中应用了这一原理,是一个完全在Python写入的Pytorch的程序捕获和转换库,并通过ML从业者进行高开发人员生产力优化。我们存在案例研究,展示了Torch.fx如何实现先前在Pytorch生态系统中无法访问的工作流程。
translated by 谷歌翻译
As modern data pipelines continue to collect, produce, and store a variety of data formats, extracting and combining value from traditional and context-rich sources such as strings, text, video, audio, and logs becomes a manual process where such formats are unsuitable for RDBMS. To tap into the dark data, domain experts analyze and extract insights and integrate them into the data repositories. This process can involve out-of-DBMS, ad-hoc analysis, and processing resulting in ETL, engineering effort, and suboptimal performance. While AI systems based on ML models can automate the analysis process, they often further generate context-rich answers. Using multiple sources of truth, for either training the models or in the form of knowledge bases, further exacerbates the problem of consolidating the data of interest. We envision an analytical engine co-optimized with components that enable context-rich analysis. Firstly, as the data from different sources or resulting from model answering cannot be cleaned ahead of time, we propose using online data integration via model-assisted similarity operations. Secondly, we aim for a holistic pipeline cost- and rule-based optimization across relational and model-based operators. Thirdly, with increasingly heterogeneous hardware and equally heterogeneous workloads ranging from traditional relational analytics to generative model inference, we envision a system that just-in-time adapts to the complex analytical query requirements. To solve increasingly complex analytical problems, ML offers attractive solutions that must be combined with traditional analytical processing and benefit from decades of database community research to achieve scalability and performance effortless for the end user.
translated by 谷歌翻译
随着机器学习系统的计算要求以及机器学习框架的规模和复杂性的增加,基本框架创新变得具有挑战性。尽管计算需求驱动了最近的编译器,网络和硬件的进步,但通过机器学习工具对这些进步的利用却以较慢的速度发生。这部分是由于与现有框架原型制作新的计算范式有关的困难。大型框架将机器学习研究人员和从业人员作为最终用户的优先级优先,并且很少关注能够向前推动框架的系统研究人员 - 我们认为两者都是同等重要的利益相关者。我们介绍了手电筒,这是一个开源库,旨在通过优先考虑开放式,模块化,可定制的内部设备以及最新的,可用于研究的模型和培训设置,以刺激机器学习工具和系统的创新。手电筒使系统研究人员能够快速原型并尝试机器学习计算中的新思想,并且开销低,与其他流行的机器学习框架竞争并经常超过其他流行的机器学习框架。我们将手电筒视为一种工具,可以使可以使广泛使用的图书馆受益,并使机器学习和系统研究人员更加紧密地结合在一起。手电筒可从https://github.com/flashlight/flashlight获得。
translated by 谷歌翻译
TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. Tensor-Flow uses dataflow graphs to represent computation, shared state, and the operations that mutate that state. It maps the nodes of a dataflow graph across many machines in a cluster, and within a machine across multiple computational devices, including multicore CPUs, generalpurpose GPUs, and custom-designed ASICs known as Tensor Processing Units (TPUs). This architecture gives flexibility to the application developer: whereas in previous "parameter server" designs the management of shared state is built into the system, TensorFlow enables developers to experiment with novel optimizations and training algorithms. TensorFlow supports a variety of applications, with a focus on training and inference on deep neural networks. Several Google services use TensorFlow in production, we have released it as an open-source project, and it has become widely used for machine learning research. In this paper, we describe the TensorFlow dataflow model and demonstrate the compelling performance that Tensor-Flow achieves for several real-world applications.
translated by 谷歌翻译
Deep learning frameworks have often focused on either usability or speed, but not both. PyTorch is a machine learning library that shows that these two goals are in fact compatible: it provides an imperative and Pythonic programming style that supports code as a model, makes debugging easy and is consistent with other popular scientific computing libraries, while remaining efficient and supporting hardware accelerators such as GPUs. In this paper, we detail the principles that drove the implementation of PyTorch and how they are reflected in its architecture. We emphasize that every aspect of PyTorch is a regular Python program under the full control of its user. We also explain how the careful and pragmatic implementation of the key components of its runtime enables them to work together to achieve compelling performance. We demonstrate the efficiency of individual subsystems, as well as the overall speed of PyTorch on several common benchmarks.
translated by 谷歌翻译
深度学习的快速进步正在导致一系列快速变化的模型,对计算的需求急剧增长。但是,随着框架将性能优化专门针对流行网络的模式,它们隐含地限制了推动研究进展的新颖和多样化的模型。我们通过定义灵活和用户可定制的管道来优化基于数据运动最小化的任意深神经网络的培训来赋予深度学习研究人员的能力。管道始于Pytorch或ONNX中的标准网络,并通过逐步降低转换计算。我们定义了四个级别的通用转换级别,从局部操作员优化到全球数据运动减少。这些在以数据为中心的图形中间表示上运行,该表示在各个级别的抽象级别表达计算和数据移动,包括扩展基本运算符,例如其基础计算的卷积。设计的核心是管道的互动性和内省性质。每个部分都可以通过Python API扩展,并且可以使用GUI进行交互调整。我们在十个不同的网络上展示了竞争性能或加速性,交互式优化发现了高效网络中的新机会。
translated by 谷歌翻译
变形金刚是今天最重要的机器学习工作负载之一。培训是一个非常计算密集的任务,通常需要几天或几周,并且对优化变压器进行了重大关注。尽管如此,现有的实现不会有效地利用GPU。我们发现数据移动是培训时的关键瓶颈。由于Amdahl的法律和大规模改进的计算性能,培训现已成为记忆束缚。此外,现有框架使用次优数据布局。使用这些洞察力,我们提供了一个用于全局优化变压器数据移动的配方。我们将数据移动降低到22.91%,总体上实现了在训练伯特编码器层和1.19x的整个伯特的最先进框架上的1.30倍的性能改进。我们的方法更广泛地适用于优化深神经网络,并深入了解如何解决新兴的性能瓶颈。
translated by 谷歌翻译
传统的数据湖泊通过启用时间旅行,运行SQL查询,使用酸性交易摄入数据以及可视化PBABYTE尺度数据集在云存储中,为分析工作负载提供了关键的数据基础架构。它们使组织能够分解数据孤岛,解锁数据驱动的决策,提高运营效率并降低成本。但是,随着深度学习接管常见的分析工作流程,传统数据湖泊对诸如自然语言处理(NLP),音频处理,计算机视觉和涉及非尾巴数据集的应用程序的有用程度降低。本文介绍了Deep Lake,这是一个开源湖泊,用于在Activeloop开发的深度学习应用程序。 Deep Lake保持了一项关键区别的香草数据湖的好处:它以张量的形式存储复杂数据,例如图像,视频,注释以及表格数据,并将数据迅速流式传输到网络上(a )张量查询语言,(b)浏览器可视化引擎或(c)不牺牲GPU利用率的深度学习框架。可以从Pytorch,Tensorflow,Jax,与许多MLOPS工具集成在一起的数据集。
translated by 谷歌翻译
ALPA通过生成统一数据,操作员和管道并行性的执行计划来自动对大型深度学习(DL)模型的模型平行训练。现有的模型并行训练系统要求用户手动创建并行化计划,或者自动从有限的模型并行性配置中生成一个计划。它们不足以在分布式计算设备上扩展复杂的DL模型。 ALPA通过将并行性视为两个层次级别来分配大型DL模型的训练:操作员和操作员并行性。基于它,ALPA构建了一个新的分层空间,用于大规模的模型并行执行计划。 ALPA设计了许多汇编,以在每个并行性级别自动得出有效的并行执行计划。 ALPA实现了有效的运行时,以在分布式计算设备上协调两级并行执行。我们的评估表明,ALPA生成的并行化计划,即使在其设计的型号上,也可以匹配或超过手动模型并联训练系统。与专业系统不同,ALPA还推广到具有异质体系结构和模型的模型,而没有手动设计的计划。 ALPA的源代码可在https://github.com/alpa-projects/alpa上公开获得
translated by 谷歌翻译
我们介绍了Netket的版本3,机器学习工具箱适用于许多身体量子物理学。Netket围绕神经网络量子状态构建,并为其评估和优化提供有效的算法。这个新版本是基于JAX的顶部,一个用于Python编程语言的可差分编程和加速的线性代数框架。最重要的新功能是使用机器学习框架的简明符号来定义纯Python代码中的任意神经网络ANS \“凝固的可能性,这允许立即编译以及渐变的隐式生成自动化。Netket 3还带来了GPU和TPU加速器的支持,对离散对称组的高级支持,块以缩放多程度的自由度,Quantum动态应用程序的驱动程序,以及改进的模块化,允许用户仅使用部分工具箱是他们自己代码的基础。
translated by 谷歌翻译
深度神经网络(DNN)已成为移动设备上许多主要应用的核心推动因素。为实现高精度,DNN模型越来越深,数百甚至数千个操作层,导致高记忆和推理的计算要求。操作员融合(或内核/层融合)是许多最先进的DNN执行框架中的关键优化,例如Tensorflow,TVM和MNN。然而,这些框架通常根据某些模式采用融合方法,这些模式过于限制,以涵盖运营商和层连接的多样性。另一方面,基于多面体的循环融合技术,在没有运营商级信息的情况下对计算的低级视图工作,并且也可能错过潜在的融合机会。为了解决这一挑战,本文提出了一种名为DNNFusion的新颖和广泛的环路融合框架。这项工作的基本思想是在DNN的操作员视图下工作,但通过开发个人运营商及其组合的分类来扩展融合机会。此外,DNNFusion包括1)基于新的基于数学 - 性能的图形重写框架,以降低评估成本,并促进后续操作员融合,2)一种集成的融合计划,利用高级分析和精确的轻量级分析,以及3 )融合代码生成期间的附加优化。在15个DNN模型中广泛评估DNNFusion,具有各种任务,模型尺寸和图层计数。评估结果表明,DNNFusion最高达到8.8倍的融合机会,优于具有9.3倍的最先进的DNN执行框架。记忆要求减少和加速可以在移动设备上执行许多目标模型,甚至可以使它们成为实时应用程序的一部分。
translated by 谷歌翻译
我们展示了CFU Playground,这是一个全堆栈的开源框架,可实现用于嵌入式ML系统的机器学习(ML)加速器的快速和迭代设计。我们的工具链紧紧集成开源软件,RTL发电机和FPGA工具,用于综合,地点和路线。此全堆栈开发框架为工程师提供了访问探索定制架构,这些架构是为嵌入式ML定制和共同优化的。快速,部署型材优化反馈循环让ML硬件和软件开发人员在对定制方面相对较小的投资中取得重大回报。使用CFU Playground的设计循环,我们在CPU和加速器之间显示了大量的Speedups(55x-75x)和设计空间探索。
translated by 谷歌翻译
本文介绍了有关如何架构,设计和优化深神经网络(DNN)的最新概述,以提高性能并保留准确性。该论文涵盖了一组跨越整个机器学习处理管道的优化。我们介绍两种类型的优化。第一个改变了DNN模型,需要重新训练,而第二个则不训练。我们专注于GPU优化,但我们认为提供的技术可以与其他AI推理平台一起使用。为了展示DNN模型优化,我们在流行的Edge AI推理平台(Nvidia Jetson Agx Xavier)上改善了光流的最先进的深层网络体系结构之一,RAFT ARXIV:2003.12039。
translated by 谷歌翻译