在许多机器学习应用程序(例如基于树的合奏)中,由于其表现力,浮点数被广泛使用。如今,可以从动态数据质量上对嵌入式设备进行数据分析,但是这些系统通常缺乏处理浮点数的硬件功能,从而引入了大型开销以进行处理。即使在常规计算系统中存在此类硬件,使用整数操作而不是浮点操作也有望减少开销并改善性能。在本文中,我们仅通过使用整数和逻辑操作提供\ mdname,这是随机森林的完整精度浮点比较。为了确保相同的功能保留,我们正式证明了此比较的正确性。由于随机森林仅需要在推理过程中比较浮点数,因此我们以低级别的实现实现了\ mdname〜,因此通过保持模型准确性不变,从而消除了完全浮动点硬件的需求。 \ mdname〜的用法基本上归结为条件的一对一替代:例如,C中的比较语句:if(px [3] <=(float)10.074347)if(((((((•(,)) int*)(px))+3))<=((int)(0x41213087)))。在X86和ARMV8桌面和服务器类系统上进行的实验评估表明,使用我们的新方法可以将执行时间最多减少到$ \%$ $。
translated by 谷歌翻译
There is a growing interest in the use of reduced-precision arithmetic, exacerbated by the recent interest in artificial intelligence, especially with deep learning. Most architectures already provide reduced-precision capabilities (e.g., 8-bit integer, 16-bit floating point). In the context of FPGAs, any number format and bit-width can even be considered.In computer arithmetic, the representation of real numbers is a major issue. Fixed-point (FxP) and floating-point (FlP) are the main options to represent reals, both with their advantages and drawbacks. This chapter presents both FxP and FlP number representations, and draws a fair a comparison between their cost, performance and energy, as well as their impact on accuracy during computations.It is shown that the choice between FxP and FlP is not obvious and strongly depends on the application considered. In some cases, low-precision floating-point arithmetic can be the most effective and provides some benefits over the classical fixed-point choice for energy-constrained applications.
translated by 谷歌翻译
在过去十年中,已经开发出新的深度学习(DL)算法,工作负载和硬件来解决各种问题。尽管工作量和硬件生态系统的进步,DL系统的编程方法是停滞不前的。 DL工作负载从DL库中的高度优化,特定于平台和不灵活的内核,或者在新颖的操作员的情况下,通过具有强大性能的DL框架基元建立参考实现。这项工作介绍了Tensor加工基元(TPP),一个编程抽象,用于高效的DL工作负载的高效,便携式实现。 TPPS定义了一组紧凑而多才多艺的2D张镜操作员(或虚拟张量ISA),随后可以用作构建块,以在高维张量上构建复杂的运算符。 TPP规范是平台 - 不可行的,因此通过TPPS表示的代码是便携式的,而TPP实现是高度优化的,并且特定于平台。我们展示了我们使用独立内核和端到端DL&HPC工作负载完全通过TPPS表达的方法的效力和生存性,这在多个平台上优于最先进的实现。
translated by 谷歌翻译
卷积神经网络(CNN)的量化表现出显着的进展,其意图通过低比特宽度数据输入降低计算和存储成本。然而,没有关于现有全比特宽处理单元(例如CPU和DSP)的系统研究,可以更好地利用各种量化位线下的卷积的显着更高的计算吞吐量。在这项研究中,我们提出了Hikonv,一个统一的解决方案,它通过新的比特和平的并行计算来最大化给定底层处理单元的计算吞吐量来处理低比特宽量化数据输入。我们使用全比特宽乘法器建立理论性能范围,以实现高度并行化的低位宽卷积,并展示在该关键域中的高性能计算的新突破。例如,单个32位处理单元可以在一个CPU指令下提供128个二值化卷积操作(乘法和添加),并且单个27X18 DSP核心可以在一个周期中提供具有4位输入的八个卷积操作。我们展示了Hikonv对卷积层或完整的DNN模型的CPU和FPGA的有效性。对于量化为4位的卷积层,Hikonv在CPU上使用C ++实现了基线实现的3.17x延迟改进。与FPGA的DAC-SDC 2020冠军模型相比,HIKONV分别实现了2.37倍的吞吐量提高和2.61倍的DSP效率改进。
translated by 谷歌翻译
训练机学习(ML)算法是一个计算密集型过程,由于反复访问大型培训数据集,经常会陷入内存。结果,以处理器为中心的系统(例如CPU,GPU)遭受了内存单元和处理单元之间的昂贵数据移动,这会消耗大量的能量和执行周期。以内存为中心的计算系统,即具有内存(PIM)功能,可以减轻此数据运动瓶颈。我们的目标是了解现代通用PIM体系结构加速ML培训的潜力。为此,我们(1)在现实世界通用PIM体系结构上实现了几种代表性的经典ML算法(即线性回归,逻辑回归,决策树,K-均值聚类),(2)严格评估并表征它们在准确性,性能和缩放方面以及(3)与CPU和GPU上的对应物实现相比。我们对具有2500多个PIM核心的真实内存计算系统的评估表明,当PIM硬件在必要的操作和数据类型上,通用PIM架构可以极大地加速内存的ML工作负载。例如,我们对决策树的PIM实施比8核Intel Xeon上的最先进的CPU版本$ 27 \ times $ $,并且比最先进的GPU快$ 1.34 \ times $ $ NVIDIA A100上的版本。我们在PIM上的K-Means聚类分别为$ 2.8 \ times $和$ 3.2 \ times $ $,分别是最先进的CPU和GPU版本。据我们所知,我们的工作是第一个评估现实世界中PIM架构的ML培训的工作。我们以关键的观察,外卖和建议结束,可以激发ML工作负载的用户,PIM架构的程序员以及未来以内存计算系统的硬件设计师和架构师。
translated by 谷歌翻译
量化是一种降低DNN模型的计算和记忆成本的技术,DNN模型越来越大。现有的量化解决方案使用固定点整数或浮点类类型,这些量子的好处有限,因为两者都需要更多位以保持原始型号的准确性。另一方面,可变长度量化使用低位量化对正常值和高精度的分数对异常值的一部分。即使这项工作带来了算法的好处,但由于长度的编码和解码,它也引入了重要的硬件开销。在这项工作中,我们提出了一种称为ANT的固定长度自适应数值数据类型,以通过微小的硬件开销实现低位量化。我们的数据类型ANT利用了两项关键创新来利用DNN模型中的张贴内和调整的自适应机会。首先,我们提出了一种特定的数据类型Flint,该数据类型结合了Float和INT的优势,以适应张量中不同值的重要性。其次,我们提出了一个自适应框架,该框架根据其分布特性选择每个张量的最佳类型。我们为蚂蚁设计了统一的处理元件体系结构,并显示其与现有DNN加速器的易于集成。我们的设计导致2.8 $ \ times $速度和2.5 $ \ times $ $ $ $ $ \ times $ $ \ times $ $ \ times $ $ \ times $ $ \ times $ $ \ times $ $ \ times $ $ \ times $比最先进的量化加速器提高了能源效率。
translated by 谷歌翻译
决策树学习是机器学习中广泛使用的方法,在需要简洁明了的模型的应用中受到青睐。传统上,启发式方法用于快速生产具有相当高准确性的模型。然而,一个普遍的批评是,从精度和大小方面,所产生的树可能不一定是数据的最佳表示。近年来,这激发了最佳分类树算法的发展,这些算法与执行一系列本地最佳决策的启发式方法相比,在全球范围内优化决策树。我们遵循这一工作线,并提供了一种基于动态编程和搜索的最佳分类树的新颖算法。我们的算法支持对树的深度和节点数量的约束。我们方法的成功归因于一系列专门技术,这些技术利用了分类树独有的属性。传统上,最佳分类树的算法受到了高运行时的困扰和有限的可伸缩性,但我们在一项详细的实验研究中表明,我们的方法仅使用最先进的时间所需的时间,并且可以处理数十个数据集的数据集在数千个实例中,提供了几个数量级的改进,并特别有助于实现最佳决策树的实现。
translated by 谷歌翻译
我们将展示如何以\ textit {quickScorer}在\ cite {lucchese2015quickscorer}中的矩阵计算语言中评估二进制决策树遍历。我们的主要贡献是决策树层次结构的新型矩阵表示。我们提出了基于严格的理论分析的二进制决策树遍历的一些等效算法。核心思想是找到输入和出口叶节点之间的关系。在这里,我们不仅理解没有递归遍历的决策,而且还深入研究了基于树方法的分区性质。
translated by 谷歌翻译
即使机器学习算法已经在数据科学中发挥了重要作用,但许多当前方法对输入数据提出了不现实的假设。由于不兼容的数据格式,或数据集中的异质,分层或完全缺少的数据片段,因此很难应用此类方法。作为解决方案,我们提出了一个用于样本表示,模型定义和培训的多功能,统一的框架,称为“ Hmill”。我们深入审查框架构建和扩展的机器学习的多个范围范式。从理论上讲,为HMILL的关键组件的设计合理,我们将通用近似定理的扩展显示到框架中实现的模型所实现的所有功能的集合。本文还包含有关我们实施中技术和绩效改进的详细讨论,该讨论将在MIT许可下发布供下载。该框架的主要资产是其灵活性,它可以通过相同的工具对不同的现实世界数据源进行建模。除了单独观察到每个对象的一组属性的标准设置外,我们解释了如何在框架中实现表示整个对象系统的图表中的消息推断。为了支持我们的主张,我们使用框架解决了网络安全域的三个不同问题。第一种用例涉及来自原始网络观察结果的IoT设备识别。在第二个问题中,我们研究了如何使用以有向图表示的操作系统的快照可以对恶意二进制文件进行分类。最后提供的示例是通过网络中实体之间建模域黑名单扩展的任务。在所有三个问题中,基于建议的框架的解决方案可实现与专业方法相当的性能。
translated by 谷歌翻译
深度神经网络(DNNS)的边缘训练是持续学习的理想目标。但是,这受到训练所需的巨大计算能力的阻碍。硬件近似乘数表明,它们在获得DNN推理加速器中获得资源效率的有效性;但是,使用近似乘数的培训在很大程度上尚未开发。为了通过支持DNN培训的近似乘数来构建有效的资源加速器,需要对不同DNN体系结构和不同近似乘数进行彻底评估。本文介绍了近似值,这是一个开源框架,允许使用模拟近似乘数快速评估DNN训练和推理。近似值与TensorFlow(TF)一样用户友好,仅需要对DNN体系结构的高级描述以及近似乘数的C/C ++功能模型。我们通过使用GPU(AMSIM)上的基于基于LUT的近似浮点(FP)乘数模拟器来提高乘数在乘数级别的模拟速度。近似值利用CUDA并有效地将AMSIM集成到张量库中,以克服商业GPU中的本机硬件近似乘数的缺乏。我们使用近似值来评估使用LENET和RESNETS体系结构的小型和大型数据集(包括Imagenet)的近似乘数的DNN训练的收敛性和准确性。与FP32和BFLOAT16乘数相比,评估表明测试准确性相似的收敛行为和可忽略不计的变化。与训练和推理中基于CPU的近似乘数模拟相比,GPU加速近似值快2500倍以上。基于具有本地硬件乘数的高度优化的闭合源Cudnn/Cublas库,原始张量量仅比近似值快8倍。
translated by 谷歌翻译
Running machine learning inference on tiny devices, known as TinyML, is an emerging research area. This task requires generating inference code that uses memory frugally, a task that standard ML frameworks are ill-suited for. A deployment framework for TinyML must be a) parametric in the number representation to take advantage of the emerging representations like posits, b) carefully assign high-precision to a few tensors so that most tensors can be kept in low-precision while still maintaining model accuracy, and c) avoid memory fragmentation. We describe MinUn, the first TinyML framework that holistically addresses these issues to generate efficient code for ARM microcontrollers (e.g., Arduino Uno, Due and STM32H747) that outperforms the prior TinyML frameworks.
translated by 谷歌翻译
目前,数据赢得了用户生成的数据和数据处理系统之间的大鼠竞赛。机器学习的使用增加导致处理需求的进一步增加,而数据量不断增长。为了赢得比赛,需要将机器学习应用于通过网络的数据。数据的网络分类可以减少服务器上的负载,减少响应时间并提高可伸缩性。在本文中,我们使用现成的网络设备以混合方式介绍了IISY,以混合方式实施机器学习分类模型。 IISY针对网络内分类的三个主要挑战:(i)将分类模型映射到网络设备(ii)提取所需功能以及(iii)解决资源和功能约束。 IISY支持一系列传统和集合机器学习模型,独立于开关管道中的阶段数量扩展。此外,我们证明了IISY用于混合分类的使用,其中在一个开关上实现了一个小模型,在后端的大型模型上实现了一个小模型,从而实现了接近最佳的分类结果,同时大大降低了服务器上的延迟和负载。
translated by 谷歌翻译
在小型电池约束的物流设备上部署现代TinyML任务需要高计算能效。使用非易失性存储器(NVM)的模拟内存计算(IMC)承诺在深神经网络(DNN)推理中的主要效率提高,并用作DNN权重的片上存储器存储器。然而,在系统级别尚未完全理解IMC的功能灵活性限制及其对性能,能量和面积效率的影响。为了目标实际的端到端的IOT应用程序,IMC阵列必须括在异构可编程系统中,引入我们旨在解决这项工作的新系统级挑战。我们介绍了一个非均相紧密的聚类架构,整合了8个RISC-V核心,内存计算加速器(IMA)和数字加速器。我们在高度异构的工作负载上基准测试,例如来自MobileNetv2的瓶颈层,显示出11.5倍的性能和9.5倍的能效改进,而在核心上高度优化并行执行相比。此外,我们通过将我们的异构架构缩放到多阵列加速器,探讨了在IMC阵列资源方面对全移动级DNN(MobileNetv2)的端到端推断的要求。我们的结果表明,我们的解决方案在MobileNetv2的端到端推断上,在执行延迟方面比现有的可编程架构更好,比最先进的异构解决方案更好的数量级集成内存计算模拟核心。
translated by 谷歌翻译
Alphazero,Leela Chess Zero和Stockfish Nnue革新了计算机国际象棋。本书对此类引擎的技术内部工作进行了完整的介绍。该书分为四个主要章节 - 不包括第1章(简介)和第6章(结论):第2章引入神经网络,涵盖了所有用于构建深层网络的基本构建块,例如Alphazero使用的网络。内容包括感知器,后传播和梯度下降,分类,回归,多层感知器,矢量化技术,卷积网络,挤压网络,挤压和激发网络,完全连接的网络,批处理归一化和横向归一化和跨性线性单位,残留层,剩余层,过度效果和底漆。第3章介绍了用于国际象棋发动机以及Alphazero使用的经典搜索技术。内容包括minimax,alpha-beta搜索和蒙特卡洛树搜索。第4章展示了现代国际象棋发动机的设计。除了开创性的Alphago,Alphago Zero和Alphazero我们涵盖Leela Chess Zero,Fat Fritz,Fat Fritz 2以及有效更新的神经网络(NNUE)以及MAIA。第5章是关于实施微型α。 Shexapawn是国际象棋的简约版本,被用作为此的示例。 Minimax搜索可以解决六ap峰,并产生了监督学习的培训位置。然后,作为比较,实施了类似Alphazero的训练回路,其中通过自我游戏进行训练与强化学习结合在一起。最后,比较了类似α的培训和监督培训。
translated by 谷歌翻译
大多数机器学习算法由一个或多个超参数配置,必须仔细选择并且通常会影响性能。为避免耗时和不可递销的手动试验和错误过程来查找性能良好的超参数配置,可以采用各种自动超参数优化(HPO)方法,例如,基于监督机器学习的重新采样误差估计。本文介绍了HPO后,本文审查了重要的HPO方法,如网格或随机搜索,进化算法,贝叶斯优化,超带和赛车。它给出了关于进行HPO的重要选择的实用建议,包括HPO算法本身,性能评估,如何将HPO与ML管道,运行时改进和并行化结合起来。这项工作伴随着附录,其中包含关于R和Python的特定软件包的信息,以及用于特定学习算法的信息和推荐的超参数搜索空间。我们还提供笔记本电脑,这些笔记本展示了这项工作的概念作为补充文件。
translated by 谷歌翻译
高维计算(HDC)是用于数据表示和学习的范式,起源于计算神经科学。HDC将数据表示为高维,低精度向量,可用于学习或召回等各种信息处理任务。高维空间的映射是HDC中的一个基本问题,现有方法在输入数据本身是高维时会遇到可伸缩性问题。在这项工作中,我们探索了一个基于哈希的流媒体编码技术。我们正式表明,这些方法在学习应用程序的性能方面具有可比的保证,同时比现有替代方案更有效。我们在一个流行的高维分类问题上对这些结果进行了实验验证,并表明我们的方法很容易扩展到非常大的数据集。
translated by 谷歌翻译
一般矩阵乘法或GEMM内核在高性能计算和机器学习中占据中心位置。最近的NVIDIA GPU包括Gemm加速器,如Nvidia的张量核心。他们的剥削受到双语言问题的阻碍:它需要低级编程,这意味着低程序员的工作效率或使用只提供有限组件集的库。由于建立的组件方面的REPRASING算法经常引入开销,因此图书馆缺乏灵活性限制了探索新算法的自由。因此,使用GEMMS的研究人员无法立即享受编程生产力,高性能和研究灵活性。在本文中,我们解决了这个问题。我们在科学朱莉娅编程语言中展示了三组抽象和接口来编程宝石。界面和抽象共同设计用于研究人员的需求和朱莉娅的特征,以实现足够的担忧和灵活性的充分分离,以便在不支付性能价格的情况下轻松地扩展基本宝石。将我们的Gemms与最先进的图书馆Cublas和Cutlass进行比较,我们证明我们的性能在图书馆的相同球场中,并且在某些情况下甚至超过它,而无需在CUDA C ++中编写单行代码或者组装,而不面临灵活限制。
translated by 谷歌翻译
Deep Forest is a prominent machine learning algorithm known for its high accuracy in forecasting. Compared with deep neural networks, Deep Forest has almost no multiplication operations and has better performance on small datasets. However, due to the deep structure and large forest quantity, it suffers from large amounts of calculation and memory consumption. In this paper, an efficient hardware accelerator is proposed for deep forest models, which is also the first work to implement Deep Forest on FPGA. Firstly, a delicate node computing unit (NCU) is designed to improve inference speed. Secondly, based on NCU, an efficient architecture and an adaptive dataflow are proposed, in order to alleviate the problem of node computing imbalance in the classification process. Moreover, an optimized storage scheme in this design also improves hardware utilization and power efficiency. The proposed design is implemented on an FPGA board, Intel Stratix V, and it is evaluated by two typical datasets, ADULT and Face Mask Detection. The experimental results show that the proposed design can achieve around 40x speedup compared to that on a 40 cores high performance x86 CPU.
translated by 谷歌翻译
决策树看起来像一个没有循环的简单计算图,其中只有叶子节点指定输出值,而非末端指定其测试或分裂条件。从数值角度来看,我们用计算图的语言表达决策树。我们根据非末端节点的比特值明确将决策树的测试阶段,遍历阶段和预测阶段参数化。如稍后所示,从某种意义上说,决策树是浅二进制网络。尤其是,我们介绍了BitVector矩阵,以在数值方法中实现树遍历,其中核心是将逻辑“和”操作转换为算术操作。我们将这种数值表示形式扩展和统一概念中的各种决策树。
translated by 谷歌翻译
编译器框架对于广泛使用基于FPGA的深度学习加速器来说是至关重要的。它们允许研究人员和开发人员不熟悉硬件工程,以利用域特定逻辑所获得的性能。存在传统人工神经网络的各种框架。然而,没有多大的研究努力已经进入创建针对尖刺神经网络(SNNS)进行优化的框架。这种新一代的神经网络对于在边缘设备上部署AI的越来越有趣,其具有紧密的功率和资源约束。我们的端到端框架E3NE为FPGA自动生成高效的SNN推理逻辑。基于Pytorch模型和用户参数,它应用各种优化,并评估基于峰值的加速器固有的权衡。多个水平的并行性和新出现的神经编码方案的使用导致优于先前的SNN硬件实现的效率。对于类似的型号,E3NE使用的硬件资源的少于50%,功率较低20%,同时通过幅度降低延迟。此外,可扩展性和通用性允许部署大规模的SNN模型AlexNet和VGG。
translated by 谷歌翻译