CN112740236A - 在深度神经网络中利用激活稀疏性 - Google Patents

在深度神经网络中利用激活稀疏性 Download PDF

Info

Publication number
CN112740236A
CN112740236A CN201980062020.2A CN201980062020A CN112740236A CN 112740236 A CN112740236 A CN 112740236A CN 201980062020 A CN201980062020 A CN 201980062020A CN 112740236 A CN112740236 A CN 112740236A
Authority
CN
China
Prior art keywords
activation
tensor
zero
vector
compressed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980062020.2A
Other languages
English (en)
Inventor
R·希尔
A·兰博
M·戈德法布
A·安萨里
C·洛特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112740236A publication Critical patent/CN112740236A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Abstract

描述了一种在深度神经网络中利用激活稀疏性的方法。该方法包括检索激活张量和权重张量,其中该激活张量是稀疏激活张量。该方法还包括生成包含该激活张量的非零激活的经压缩激活张量,其中该经压缩激活张量具有比该激活张量少的列。该方法进一步包括对该经压缩激活张量和该权重张量进行处理以生成输出张量。

Description

在深度神经网络中利用激活稀疏性
背景
根据35U.S.C.§119的优先权要求
本专利申请要求于2018年9月28日提交的题为“EXPLOITING ACTIVATIONSPARSITY IN DEEP NEURAL NETWORKS(在深度神经网络中利用激活稀疏性)”的非临时申请No.16/147,297的优先权,该申请被转让给本申请受让人并由此通过援引明确纳入于此。
技术领域
本公开的某些方面一般涉及机器学习,尤其涉及在深度神经网络(DNN)中利用激活稀疏性。
背景技术
可包括一群互连的人工神经元(例如,神经元模型)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。这些神经网络可被用于各种应用和/或设备,诸如网际协议(IP)相机、物联网(IoT)设备、自主车辆、和/或服务机器人。
卷积神经网络是一种前馈人工神经网络。卷积神经网络可包括神经元集合,其中每个神经元具有感受野并且共同地拼出一输入空间。卷积神经网络(CNN)具有众多应用。具体而言,CNN已经在模式识别和分类领域中被广泛使用。
深度学习架构(诸如深度置信网络和深度神经网络(DNN))是分层神经网络架构。在这些分层神经网络架构中,第一层神经元的输出成为第二层神经元的输入,第二层神经元的输出成为第三层神经元的输入,依此类推。深度神经网络可被训练以识别特征阶层并且因此它们已被越来越多地用于对象识别应用。类似于卷积神经网络,这些深度学习架构中的计算可分布在处理节点群体上,其可被配置在一个或多个计算链中。这些多层架构可每次训练一层并可使用后向传播来微调。
具有卷积层或全连通层的深度学习神经网络实现了用于图像识别的处理、对象检测、以及自然语言处理。这些特征使得能够支持自主驾驶应用以及内容知悉式相机处理。深度卷积神经网络(DCN)在新兴的嵌入式、可穿戴和物联网(IoT)市场中具有应用前景。
尽管这些深度神经网络解决方案取得了优异的结果,但是其计算复杂度可能极其高。另外,模型的训练可能是有挑战性的。
概述
描述了一种在深度神经网络中利用激活稀疏性的方法。该方法包括检索激活张量和权重张量,其中该激活张量是稀疏激活张量。该方法还包括生成该激活张量的非零激活的经压缩激活张量,其中该经压缩激活张量具有比该激活张量少的列。该方法进一步包括对该经压缩激活张量和该权重张量进行处理以生成输出张量。
描述了一种用于利用激活稀疏性的深度神经网络。该深度神经网络包括乘法累加(MAC)硬件。该深度神经还包括耦合至该MAC硬件的(诸)处理器。该处理器被配置成检索激活张量和权重张量,其中该激活张量是稀疏激活张量。该处理器还被配置成生成包括该激活张量的非零激活的经压缩激活张量。该经压缩激活张量具有比该激活张量少的列。该处理器被进一步配置成对该经压缩激活张量和该权重张量进行处理以生成输出张量。
描述了一种用于利用激活稀疏性的深度神经网络。该深度神经网络包括用于检索激活张量和权重张量的装置,其中该激活张量是稀疏激活张量。该深度神经网络还包括用于生成包含该激活张量的非零激活的经压缩激活张量的装置。该经压缩激活张量具有比该激活张量少的列。该深度神经网络进一步包括用于对该经压缩激活张量和该权重张量进行处理以生成输出张量的装置。
这已较宽泛地勾勒出本公开的特征和技术优势以便下面的详细描述可被更好地理解。本公开的附加特征和优点将在下文描述。本领域技术人员应当领会,本公开可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。本领域技术人员还应认识到,这样的等效构造并不脱离所附权利要求中所阐述的本公开的教导。被认为是本公开的特性的新颖特征在其组织和操作方法两方面连同进一步的目的和优点在结合附图来考虑以下描述时将被更好地理解。然而,要清楚理解的是,提供每一幅附图均仅用于解说和描述目的,且无意作为对本公开的限定的定义。
附图简述
在结合附图理解下面阐述的详细描述时,本公开的特征、本质和优点将变得更加明显,在附图中,相同附图标记始终作相应标识。
图1解说了根据本公开的某些方面的使用片上系统(SOC)(包括通用处理器)来设计神经网络的示例实现。
图2A、2B和2C是解说根据本公开的各方面的神经网络的示图。
图2D是解说根据本公开的各方面的神经网络的示图。
图3是解说根据本公开的各方面的示例性深度卷积网络(DCN)的框图。
图4是解说根据本公开的各方面的可将人工智能(AI)功能模块化的示例性软件架构的框图。
图5是解说根据常规实践的用于计算稀疏激活与权重的点积的乘法累加(MAC)硬件的向量通路的框图。
图6是解说根据本公开的各方面的用于计算稀疏激活与权重的点积的乘法累加(MAC)硬件的向量通路的框图。
图7是进一步解说根据本公开的各方面的图6的乘法累加(MAC)硬件的框图。
图8是解说根据本公开的各方面的当检测到空通道时乘法累加(MAC)硬件的向量通路的框图800。
图9解说了根据本公开的各方面的用于利用激活稀疏性来改善乘法累加(MAC)硬件的效率的方法。
详细描述
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。
基于本教导,本领域技术人员应领会,本公开的范围旨在覆盖本公开的任何方面,不论其是与本公开的任何其他方面相独立地还是组合地实现的。例如,可以使用所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为所阐述的本公开的各个方面的补充或者与之不同的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。
措辞“示例性”在本文中用于意指“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
具有卷积层或全连通层的深度学习神经网络实现了对图像识别的处理、对象检测、以及自然语言处理。这些特征使得能够支持自主驾驶应用以及内容知悉式相机处理。深度卷积神经网络(DCN)在新兴的嵌入式、可穿戴和物联网(IoT)市场中具有应用前景。
在操作中,深度卷积网络(或DCN)可包括大量权重张量乘以激活张量。这些权重张量和激活张量使得能够在DCN的各种过滤器中将输入数据与权重相乘。例如,激活张量可以(例如,在DCN的先前层)通过非线性函数馈送。在使用修正线性单元(ReLU)非线性激活函数的DCN中,显著数量的激活值为零。产生零激活是因为ReLU非线性激活函数一般被配置成将小于零的激活值钳位至零激活值。因此,非零激活值在使用ReLU非线性激活函数的DCN中可能是稀疏的。
DCN一般包括大量权重张量乘以激活张量以执行任务。因此,DCN在处置大量权重张量与激活张量的乘法累加(MAC)运算时会消耗显著的计算功率。然而,将权重与零激活相乘并不会影响结果所得的MAC和。因此,在处理下一网络层处的零激活时会浪费MAC硬件时隙。取决于非零激活值的数量,大量资源可能浪费在零激活上。取而代之的是,这些MAC时隙更好地服务于有用(非零)激活计算。本公开的各方面描述了在深度神经网络(DNN)中利用激活稀疏性的方法。
图1解说了片上系统(SOC)100的示例实现,该SOC 100可包括根据本公开的某些方面的被配置成利用激活稀疏性的中央处理单元(CPU)102或多核CPU。变量(例如,神经信号和突触权重)、与计算设备相关联的系统参数(例如,带有权重的神经网络)、延迟、频率槽信息、以及任务信息可被存储在与神经处理单元(NPU)108相关联的存储器块中、与CPU 102相关联的存储器块中、与图形处理单元(GPU)104相关联的存储器块中、与数字信号处理器(DSP)106相关联的存储器块中、存储器块118中,或可跨多个块分布。在CPU 102处执行的指令可从与CPU 102相关联的程序存储器加载或可从存储器块118加载。
SOC 100还可包括为具体功能定制的附加处理块(诸如连通性块130(其可包括第五代(5G)连通性、第四代长期演进(4G LTE)连通性、无执照Wi-Fi连通性、USB连通性、蓝牙连通性等))以及可以例如检测和识别姿势的多媒体处理器112。在一种实现中,NPU实现在CPU、DSP、和/或GPU中。SOC 100还可包括传感器处理器114、图像信号处理器(ISP)116、和/或导航模块120(其可包括全球定位系统)。
SOC 100可基于ARM指令集。在本公开的一方面,加载到NPU 108中的指令可包括用于在深度神经网络(DNN)中利用激活稀疏性的代码。
深度学习架构可通过学习在每一层中以逐次更高的抽象程度来表示输入、藉此构建输入数据的有用特征表示来执行对象识别任务。以此方式,深度学习解决了常规机器学习的主要瓶颈。在深度学习出现之前,用于对象识别问题的机器学习办法可能严重依赖人类工程设计的特征,或许与浅分类器相结合。浅分类器可以是两类线性分类器,例如,其中可将特征向量分量的加权和与阈值作比较以预测输入属于哪一类。人类工程设计的特征可以是由拥有领域专业知识的工程师针对特定问题领域定制的模版或内核。相比之下,深度学习架构可学习以表示与人类工程师可能会设计的类似的特征,但它是通过训练来学习的。此外,深度网络可以学习以表示和识别人类可能还没有考虑过的新类型的特征。
深度学习架构可以学习特征阶层。例如,如果向第一层呈递视觉数据,则第一层可学习以识别输入流中的相对简单的特征(诸如边)。在另一示例中,如果向第一层呈递听觉数据,则第一层可学习以识别特定频率中的频谱功率。取第一层的输出作为输入的第二层可以学习以识别特征组合,诸如对于视觉数据识别简单形状或对于听觉数据识别声音组合。例如,更高层可学习以表示视觉数据中的复杂形状或听觉数据中的词语。再高层可学习以识别常见视觉对象或口语短语。
深度学习架构在被应用于具有自然阶层结构的问题时可能表现特别好。例如,机动交通工具的分类可受益于首先学习以识别轮子、挡风玻璃、以及其他特征。这些特征可在更高层以不同方式被组合以识别轿车、卡车和飞机。
神经网络可被设计成具有各种各样的连通性模式。在前馈网络中,信息从较低层被传递到较高层,其中给定层中的每个神经元向更高层中的神经元进行传达。如上所述,可在前馈网络的相继层中构建阶层式表示。神经网络还可具有回流或反馈(也被称为自顶向下(top-down))连接。在回流连接中,来自给定层中的神经元的输出可被传达给相同层中的另一神经元。回流架构可有助于识别跨越不止一个按顺序递送给该神经网络的输入数据组块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自顶向下)连接。当高层级概念的识别可辅助辨别输入的特定低层级特征时,具有许多反馈连接的网络可能是有助益的。
神经网络的各层之间的连接可以是全连通的或局部连通的。图2A解说了全连通神经网络202的示例。在全连通神经网络202中,第一层中的神经元可将它的输出传达给第二层中的每个神经元,从而第二层中的每个神经元将从第一层中的每个神经元接收输入。图2B解说了局部连通神经网络204的示例。在局部连通神经网络204中,第一层中的神经元可连接到第二层中有限数目的神经元。更一般化地,局部连通神经网络204的局部连通层可被配置成使得一层中的每个神经元将具有相同或相似的连通性模式,但其连接强度可具有不同的值(例如,210、212、214和216)。局部连通的连通性模式可能在更高层中产生空间上相异的感受野,这是由于给定区域中的更高层神经元可接收到输入,其通过训练被调谐到至网络的总输入的受限部分的性质。
局部连通神经网络的一个示例是卷积神经网络。图2C解说了卷积神经网络206的示例。卷积神经网络206可被配置成使得与针对第二层中每个神经元的输入相关联的连接强度被共享(例如,208)。卷积神经网络可能非常适合于其中输入的空间位置有意义的问题。
一种类型的卷积神经网络是深度卷积网络(DCN)。图2D解说了被设计成识别来自图像捕捉设备230(诸如车载相机)的图像226输入的视觉特征的DCN 200的详细示例。可对当前示例的DCN 200进行训练以标识交通标志以及在交通标志上提供的数字。当然,DCN200可被训练用于其他任务,诸如标识车道标记或标识交通信号灯。
可以用受监督式学习来训练DCN 200。在训练期间,可向DCN 200呈递图像(诸如限速标志的图像226),并且随后可计算“前向传递(forward pass)”以产生输出222。DCN 200可包括特征提取区段和分类区段。在接收到图像226之际,卷积层232可向图像226应用卷积核(未示出),以生成第一特征图集合218。作为示例,卷积层232的卷积核可以是生成28x28特征图的5x5核。在本示例中,由于在卷积层232处四个不同的卷积核被应用于图像226,因此在第一特征图集合218中生成四个不同的特征图。卷积核还可被称为过滤器或卷积过滤器。
第一特征图集合218可由最大池化层(未示出)进行子采样以生成第二特征图集合220。最大池化层减小了第一特征图集合218的大小。即,第二特征图集合220的大小(诸如14x14)小于第一特征图集合218的大小(诸如28x28)。减小的大小向后续层提供类似的信息,同时降低存储器消耗。第二特征图集合220可经由一个或多个后续卷积层(未示出)被进一步卷积,以生成一个或多个后续特征图集合(未示出)。
在图2D的示例中,第二特征图集合220被卷积以生成第一特征向量224。此外,第一特征向量224被进一步卷积以生成第二特征向量228。第二特征向量228的每个特征可包括与图像226的可能特征(诸如“标志”、“60”和“100”)相对应的数。softmax(软最大化)函数(未示出)可将第二特征向量228中的数转换为概率。如此,DCN 200的输出222是图像226包括一个或多个特征的概率。
在本示例中,输出222中关于“标志”和“60”的概率高于输出222的其他特征(诸如“30”、“40”、“50”、“70”、“80”、“90”和“100”)的概率。在训练之前,由DCN 200产生的输出222很可能是不正确的。由此,可计算输出222与目标输出之间的误差。目标输出是图像226的真值(例如,“标志”和“60”)。DCN200的权重可随后被调整以使得DCN 200的输出222与目标输出更紧密地对齐。
为了调整权重,学习算法可为权重计算梯度向量。该梯度可指示在权重被调整情况下误差将增加或减少的量。在顶层处,该梯度可直接对应于连接倒数第二层中的活化神经元与输出层中的神经元的权重的值。在较低层中,该梯度可取决于权重的值以及所计算出的诸较高层的误差梯度。权重可随后被调整以减小误差。这种调整权重的方式可被称为“后向传播”,因为其涉及穿过神经网络的“后向传递(backward pass)”。
在实践中,权重的误差梯度可能是在少量示例上计算的,从而计算出的梯度逼近真实误差梯度。这种逼近方法可被称为随机梯度下降法。随机梯度下降法可被重复,直到整个系统可达成的误差率已停止下降或直到误差率已达到目标水平。在学习之后,DCN可被呈递新图像(例如,图像226的限速标志)并且通过网络前向传递可产生输出222,其可被认为是该DCN的推断或预测。
深度置信网络(DBN)是包括多层隐藏节点的概率性模型。DBN可被用于提取训练数据集的阶层式表示。DBN可通过堆叠数层受限波尔兹曼机(RBM)来获得。RBM是一种可在输入集上学习概率分布的人工神经网络。由于RBM可在没有关于每个输入应该被分类到哪个类的信息的情况下学习概率分布,因此RBM经常被用于无监督式学习中。使用混合无监督式和有监督式范式,DBN的底部RBM可按无监督方式被训练并且可以用作特征提取器,而顶部RBM可按有监督方式(在来自先前层的输入和目标类的联合分布上)被训练并且可用作分类器。
深度卷积网络(DCN)是卷积网络的网络,其配置有附加的池化和归一化层。DCN已在许多任务上达成现有最先进的性能。DCN可使用有监督式学习来训练,其中输入和输出目标两者对于许多典范是已知的并被用于通过使用梯度下降法来修改网络的权重。
DCN可以是前馈网络。另外,如上所述,从DCN的第一层中的神经元到下一更高层中的神经元群的连接跨第一层中的神经元被共享。DCN的前馈和共享连接可被利用于进行快速处理。DCN的计算负担可比例如类似大小的包括回流或反馈连接的神经网络的计算负担小得多。
卷积网络的每一层的处理可被认为是空间不变模版或基础投影。如果输入首先被分解成多个通道,诸如彩色图像的红色、绿色和蓝色通道,那么在该输入上训练的卷积网络可被认为是三维的,其具有沿着该图像的轴的两个空间维度以及捕捉颜色信息的第三维度。卷积连接的输出可被认为在后续层318和320中形成特征图,该特征图(例如,320)中的每个元素从先前层(例如,318)中一定范围的神经元以及从该多个通道中的每一个通道接收输入。特征图中的值可以用非线性(诸如矫正max(0,x))进一步处理。来自毗邻神经元的值可被进一步池化(这对应于降采样)并可提供附加的局部不变性以及降维。还可通过特征图中神经元之间的侧向抑制来应用归一化,其对应于白化。
深度学习架构的性能可随着有更多被标记的数据点变为可用或随着计算能力提高而提高。现代深度神经网络用比仅仅十五年前可供典型研究者使用的计算资源多数千倍的计算资源来例行地训练。新的架构和训练范式可进一步推升深度学习的性能。经矫正的线性单元可减少被称为梯度消失的训练问题。新的训练技术可减少过拟合(over-fitting)并因此使更大的模型能够达成更好的泛化。封装技术可抽象出给定的感受野中的数据并进一步提升总体性能。
图3是解说深度卷积网络350的框图。深度卷积网络350可包括多个基于连通性和权重共享的不同类型的层。如图3中示出的,深度卷积网络350包括卷积块354A、354B。卷积块354A、354B中的每一者可配置有卷积层(CONV)356、归一化层(LNorm)358、和最大池化层(MAX POOL)360。
卷积层356可包括一个或多个卷积过滤器,其可被应用于输入数据以生成特征图。尽管仅示出了两个卷积块354A、354B,但本公开不限于此,而是代之以根据设计偏好可将任何数目的卷积块354A、354B包括在深度卷积网络350中。归一化层358可对卷积过滤器的输出进行归一化。例如,归一化层358可提供白化或侧向抑制。最大池化层360可提供在空间上的降采样聚集以实现局部不变性和降维。
例如,深度卷积网络的并行过滤器组可被加载到SOC 100的CPU 102或GPU 104上以达成高性能和低功耗。在替换实施例中,并行过滤器组可被加载到SOC 100的DSP 106或ISP 116上。另外,深度卷积网络350可访问其他可存在于SOC 100上的处理块,诸如分别专用于传感器和导航的传感器处理器114和导航模块120。
深度卷积网络350还可包括一个或多个全连通层362(FC1和FC2)。深度卷积网络350可进一步包括逻辑回归(LR)层364。深度卷积网络350的每一层356、358、360、362、364之间是要被更新的权重(未示出)。每一层(例如,356、358、360、362、364)的输出可以用作深度卷积网络350中一后续层(例如,356、358、360、362、364)的输入以从第一卷积块354A处供应的输入数据352(例如,图像、音频、视频、传感器数据和/或其他输入数据)学习阶层式特征表示。深度卷积网络350的输出是针对输入数据352的分类得分366。分类得分366可以是概率集,其中每个概率是输入数据包括来自特征集的特征的概率。
图4是解说可将人工智能(AI)功能模块化的示例性软件架构400的框图。根据本公开的各方面,使用该架构,应用可被设计成可使得SOC 420的各种处理块(例如CPU 422、DSP424、GPU 426和/或NPU 428)利用AI应用402的运行时操作期间的计算中的激活稀疏性。
AI应用402可被配置成调用在用户空间404中定义的功能,例如,这些功能可提供对指示该设备当前操作位置的场景的检测和识别。例如,AI应用402可取决于识别出的场景是办公室、报告厅、餐馆、还是室外环境(诸如湖泊)而以不同方式配置话筒和相机。AI应用402可向与在AI功能应用编程接口(API)406中定义的库相关联的经编译程序代码作出请求。该请求可最终依赖于被配置成基于例如视频和定位数据来提供推断响应的深度神经网络的输出。
运行时引擎408(其可以是运行时框架的经编译代码)可进一步可由AI应用402访问。例如,AI应用402可使得运行时引擎请求以特定时间区间或由应用的用户接口检测到的事件触发的推断。在使得运行时引擎提供推断响应时,运行时引擎可进而将信号发送到在SOC 420上运行的操作系统(OS)空间410(诸如Linux内核412)中的操作系统。操作系统进而可利用在CPU 422、DSP 424、GPU 426、NPU 428、或其某种组合上执行的计算中的激活稀疏性。CPU 422可由操作系统直接访问,而其他处理块可通过驱动器(诸如分别用于DSP 424、GPU 426、或NPU 428的驱动器414、416或418)来访问。在示例性示例中,深度神经网络可被配置成在处理块(诸如CPU 422、DSP 424和GPU426)的组合上运行,或可在NPU 428上运行。
图5是解说深度神经网络(DNN)500中用于计算激活与权重的点积的向量通路的框图。该示例解说了对DNN 500的层进行处理的一部分,其中从存储器中检索X*I激活张量和W*I权重张量。图5示出了其中X=5、I=8且W=9的简化示例以免湮没本公开的细节。对DNN500的层进行处理可包括:使用乘法累加(MAC)硬件540来计算激活张量510的每一列与权重张量550的每一列的点积。在该示例中,360(=5*8*9)个乘积的计算可以在45(X*W)个时钟循环中完成。值得注意的是,激活张量510具有许多零值。对具有零值的激活的处理可能是浪费的。本公开的各方面利用由零值激活造成的激活稀疏性来减少执行的乘法总数。如下文详述的,压紧并重新编排激活张量510的非零值允许在更少的时钟循环中计算出DNN 500的层的输出。
DNN 500中的激活可以理解为被表示为3D激活张量(包括X分量、Y分量和位置分量(例如,该激活在音频/视频流中的相应样本位置/像素位置))的激活块。在该示例中,激活张量510可被表示为I*X阵列,其具有从A(1,1)到A(I,X)的元素。另外,权重张量550可被表示为I*W阵列,其具有从B(1,1)到B(I,W)的元素。然而,为了避免使附图过度拥挤,激活张量510和权重张量550的元素在附图中以指示(例如,I个通道中的)通道的数字和指示列的暗部示出。计算出的激活张量510与权重张量550之积可被存储在存储器中以供在DNN 500的下一层处理。
如图5中示出的,激活张量510的每个暗部(例如,源列)可对应于来自不同的输入位置的激活。不同输入位置(例如,源列号)可与DNN 500的先前层中的不同元素(例如,元素号)相关。另外,激活张量510的每个通道标记(例如,0-7)可包括不同的激活值。即,激活张量510的通道标记(例如,0-7)并不指示激活的值。例如,通道数目I可与DNN 500的先前层中的过滤器数目相关。另外,从存储器中读取权重张量550的值。权重张量550的权重数目W可与当前层的过滤器数目相关,当前层的过滤器数目应当对应于下一层中的通道数目。
在操作中,乘法累加(MAC)硬件540计算权重张量550的每个权重列与激活张量510的每一列的点积,每个时钟循环有一个点积。在该示例中,MAC硬件540用相应的MAC单元处理每个乘法器/向量通路(例如,541、542、543、544、545、546、547和548)。值得注意的是,零激活对点积没有贡献,但会消耗乘法器/向量通路(例如,541、542、543、544、545、546、547和548)以及时钟循环。这浪费了对DNN 500可用的有价值资源。
具体而言,当激活张量510被视为移除了零值激活时,在DNN 500的先前层应用修正线性单元(ReLU)非线性激活函数以计算激活张量510会导致稀疏激活520。值得注意的是,显著数量的激活值为零,其中零激活值被示为空白(例如,零激活521)。产生零激活是因为ReLU非线性激活函数一般被配置成在先前层将小于零的激活值钳位至零激活值。稀疏激活520中的非零激活值被示为包括其对应通道及其暗部以指示其原始位置。
如稀疏激活520中进一步解说的,列530被示为在通道0、3、5和6(对应于乘法器/向量通路541、544、546和547)中包括零激活。如上文提到的,由MAC硬件540在与列530对应的时钟循环期间在这些零激活上计算点积会浪费MAC硬件540的资源。在列530中,有价值工作不会在空白行中执行,因为当激活的值为零时由MAC单元计算出的点积为零。即,在与零相乘时不存在要执行的有用工作。由此,MAC硬件540的这些乘法器/向量通路(例如,541、544、546和547)对于零激活值实际上是空的。
如通过稀疏激活520应当认识到的,激活张量510的给定行可以是高度相关的。例如,激活张量510的与MAC硬件540的乘法器/向量通路相对应的一些通道具有显著数量的计算要执行。作为对比,激活张量510的其他通道对应于MAC硬件540的因增加的零激活数目而具有最小数量的计算要执行的向量通路(例如,541、542、543、544、545、546、547和548)。在本公开的各方面,非零激活在时间(和时钟循环)上被重分布到MAC硬件540的空乘法器/向量通路,例如,如图6中示出的。如本文描述的,非零激活在时间和时钟循环上至空乘法器/向量通路的重分布可被称为通路搅动。空乘法器/向量通路在一时钟循环期间处理非零激活的乘法器/向量通路的数目小于MAC硬件540的向量宽度(例如,=八(8))时发生。
图6是进一步解说根据本公开的各方面的图5的用于在深度神经网络(DNN)600中计算稀疏激活与权重的点积的乘法累加(MAC)硬件的乘法器/向量通路的框图。在本公开的该方面,非零激活被打包到MAC硬件540的乘法器/向量通路中,以避免因处理零激活值而在时钟循环期间浪费处理资源。
在该示例中,激活张量510被示为该X个激活中的s行(例如,0-3行)的第一多通路分段610(例如,第一输入流),其可使用MAC硬件540的乘法器/向量通路(例如,541到544)中的任何对应乘法器/向量通路。另外,该X个激活中的s行的第二多通路分段612(例如,第二输入流)可被重分布(例如,激活搅动)到乘法器/向量通路(例如,545到548)中的任何对应乘法器/向量通路。即,跨MAC硬件540的乘法器/向量通路(例如,541到544、或545到548)进行激活搅动增加了非零激活的处理。在该示例中,使用分段内通路搅动以最密集的形式在先进先出(FIFO)缓冲器660(或存储器缓冲器)中将来自第一多通路分段610中的激活打包(例如,压紧)。即,FIFO缓冲器660仅将第一多通路分段610的非零激活包括在第一经压缩激活列662和第二经压缩激活列664中。
根据图6中示出的配置,第一多通路分段610的稀疏激活520用五列示出。第一列522包括来自通道一(1)和通道二(2)的非零激活。第二列524包括来自通道0和通道2的激活。第三列526包括来自通道1的单个激活。第四列528包括来自通道0和通道3的激活。另外,第五列529包括来自通道0和通道2的激活。应当认识到,各个列(例如,522-529)包括具有相同源列的非零激活(这里被示为灰度级阴影)。出于简化对本公开的解释的目的,示出了各种灰度级的暗部以表示不同列。尽管被描述为灰色的暗部,但这仅仅是出于解说目的提供的,以使得该暗部一般性地指示对应的输入位置。
在该配置中,每个FIFO缓冲器660包括处于每个FIFO缓冲器660的输入处的S:1乘法器(未示出)。这些S:1乘法器使得能够在FIFO缓冲器660中打包稀疏激活520。在该示例中,来自第二列524的激活与来自稀疏激活520的第一列522的激活一起被打包到FIFO缓冲器660的第一列662中。类似地,来自稀疏激活520的第三列536、第四列528和第五列529的激活被打包到FIFO缓冲器660的第二列664中。来自稀疏激活520的第五列529的通道2的激活被存储在FIFO缓冲器660的第三列668中,该第三列668未满。
填补算法可将这些激活打包在FIFO缓冲器660中。例如,填补算法可被用于从激活张量510的第一多通路分段610填充FIFO缓冲器660。在该示例中,填充功能通过以下步骤来操作:向下遍历并穿越稀疏激活520,以及用非零激活值来填充FIFO缓冲器660。例如,示出了箭头以解说在FIFO缓冲器660的第一列中打包稀疏激活520的第一列522和第二列524。根据本公开的各方面,这些FIFO缓冲器可包括复用器(未示出),其可被用于实现激活张量510的非零激活的填补功能和压紧功能。
根据本公开的各方面,通过限制FIFO缓冲器660的经压缩激活列(例如,662、664和668)来控制硬件复杂度。在该配置中,FIFO缓冲器的经压缩激活列被限于K个(例如,两个)源列。相应地,来自稀疏激活520的源列(例如,522、524、526、528和529)的激活值可在存储在存储器中以供由MAC硬件540处理时被移至FIFO缓冲器660的其他经压缩激活列以满足但不超过源列约束,如下文进一步详细地描述的。
一旦被加载到FIFO检测器660的经压缩激活列中,来自FIFO缓冲器660的经压缩激活列的激活就可以从FIFO缓冲器660中被出栈并与其元数据一起被写入紧密耦合存储器(TCM 670)以供由MAC硬件540在诸乘法器/向量通路(例如,541、542、543或544)中的对应乘法器/向量通路上进行处理。然而,在该示例中,将激活写入同TCM 670的列(例如,672、674、678)相对应的向量通路(例如,541、542、543和544)与这些激活在FIFO缓冲器660的经压缩激活列(例如,662、664、668)中的编排不匹配。该失配是由针对FIFO缓冲器660的每个经压缩激活列对不同源列(例如,灰度级激活)的数目施加约束所致。换言之,在TCM 670中的单列中仅允许来自激活张量510的第一多通路分段610的两个源列(例如,两个灰度级)的激活。在该示例中,源列约束是针对每列的K源列激活(例如,双灰度级激活),其可被称为最大积数。
在本公开的该方面,FIFO缓冲器660的第二列664与TCM 670的第二列674不匹配,因为通道0的激活被写入了TCM 670的第三列678。即,将通道0的激活包括在TCM 670的第二列674中会通过在TCM 670的经压缩激活的第二列674中具有三个不同灰度级的激活而违反源列约束。如本文描述的,TCM 670的激活列可被称为经压缩激活列,并且TCM 670的内容可被称为经压缩激活张量。结果,零激活值676被加载到TCM 670中并加载到乘法器/向量通路544上。另外,非零激活677被加载到TCM 670中并映射到乘法器/向量通路544以供在后续时钟循环期间进行处理。在本公开的该方面,耦合至MAC硬件540的至少一个处理器(未示出)被配置成将激活张量510的非零激活重分布到可用位置。
在操作中,关于灰度级(原始源列)和激活号(原始行/通道)的元数据被存储在TCM670中以例如指导各复用器提供权重张量550的对应权重列。元数据被写入TCM 670以使得MAC硬件540的每个复用器将权重张量550的权重行匹配到相应激活的通道通路。MAC硬件540可包括算术逻辑单元(ALU),其用于计算非零激活乘以权重张量550的与该通道对应的一个权重的点积。在该示例中,与激活张量510相关联的编号可指示输入通道。另外,激活张量510的各暗部指示来自输入的样本(例如,具有许多输入通道值的像素)。权重张量550的暗部指示输出通道(或过滤器)。例如,将来自TCM 670的第一列672中的通道1的激活乘以权重张量550的列552中的(例如,与通道一(1)对应的)权重,其中还示出了列554。在每个时钟循环针对TCM 670的相应列中的每个激活执行该操作。
图7是解说根据本公开的各方面的支持图6的DNN 600的配置的乘法累加(MAC)硬件700的框图。在该配置中,沿K个累加器树示出了S个复用器740。第一累加器树780包括第一加法器782和第一累加器784。另外,第二累加器树包括第二加法器786和第二累加器788。尽管针对两个源列(例如,K=2)的激活以及八个复用器(例如,S=8)示出了MAC硬件的该配置,但应当认识到,其他配置是可能的。在示出的配置中,硬件成本得到降低,并且可相对于这K个累加器树的K值来调整。在该配置中,每个时钟循环可计算至多达K个不同的点积结果,其中这K个累加器树可在每个时钟循环之后被清除,并根据源列约束被指派给新乘法器/向量通路。
在该示例中,MAC硬件700被配置成处理第一多通路分段610和第二多通路分段612的被重新编排在TCM存储器670中的激活以减少对零值激活的处理,如图6中所描述的。如图7中示出的,包括重新编排/搅动的激活的TCM存储器670受不同源列的数目(=2)的影响。使用TCM 670中的激活的不同阴影示出了该约束。由于该示例被限于两个不同编号的源列的源列约束,因此简化了用于MAC硬件700的累加器的实现。具体而言,该配置可以用两个加法器(例如,782和792)和两个对应的累加器(例如,784和794)来实现,如下文进一步详细地描述的。
在该示例中,水平旋转来自图6中的权重张量550的列552和列554以表示权重张量550,而不会湮没本公开的细节。在每个时钟循环期间,使用复用器750(750-1、750-2、750-3、750-4、750-5、750-6、750-7和750-8)将TCM670的列的激活乘以对应的权重。例如,对于TCM 670的第一列672中的第一激活730,复用器750-1被配置成路由与通道1对应的每个权重以匹配第一激活730的通道。类似地,对于第二激活732,复用器750-2被配置成路由与通道2对应的每个权重以匹配第二激活732的通道。另外,复用器750-3被配置成路由与通道0对应的每个权重以匹配第一列672中的第三激活734的通道。复用器750-4同样被配置成路由与通道2对应的每个权重以匹配第一列中的第四激活736的通道。
取决于激活的源列(以填充图案示出),乘积被发送给这K个累加器中恰适的累加器树。如本文描述的,累加器树统指加法器和累加器的组合。例如,第一累加器树可指第一加法器782和第一累加器784的组合。另外,第二累加器树可指第二加法器786和第二累加器788的组合。
在该配置中,存储的元数据被用于确定点积被发送给的累加器树。例如,来自TCM670的第一列672的具有相同源列的第一激活730和第二激活732因此被路由到第一累加器树780的第一加法器782和第一累加器784(acc0)。作为对比,来自TCM 670的第一列672的第三激活734和第四激活736被路由到第二累加器树790的第二加法器792和第二累加器794(acc1)。这些加法器(例如,782和792)将这些乘积相加,并将其发送给相应的累加器(例如,784和794)。在对源列的处理完成之后,第一累加器树780被出栈,并且激活的源列针对TCM670的下一列被发送给第一累加器树780和第二累加器树790。通过第一累加器树780和第二累加器树790来执行对非零激活输入张量和权重张量的处理,以产生输出张量702。
图8是解说根据本公开的各方面的当检测到激活张量810的空流(例如,第二多通路814)时乘法累加(MAC)硬件的乘法器/向量通路(例如,541、……、548)的框图800。在该示例中,第一多通路分段812和第二多通路分段814被示为激活张量810的第一输入流和第二输入流。与图5-7中示出的配置形成对比,第二多通路分段814的各通道(例如,4-7)为空。该场景在激活张量810的通道数目小于MAC硬件540的向量宽度(例如,八)时发生。即,尽管MAC硬件540的向量宽度在该示例中为八,但激活张量810被限于第一多通路分段812的四个通道,因为第二多通路分段814为空。尽管如此,引入人工稀疏性以将第一多通路分段812的这四个通道散布到MAC硬件540上以最大化资源利用率,而不是允许一半MAC硬件540保持空闲。
一旦第二多通路分段814被检测为空,控制逻辑(例如,SOC 100)就可被配置成将激活张量810的第一多通路分段812散布到MAC硬件540的各乘法器/向量通路上。该过程包括将来自不同通道通路的非零激活编群成激活群820,该激活群820包括第一激活群822和第二激活群824。如图8中示出的,激活的激活群(例如,822和824)的数目小于激活张量810的第一多通路分段812的通道深度。各激活群(例如,822和824)包括数个非零通道和零通道。另外,群深度乘以群数目等于MAC硬件540的处理向量宽度。在该配置中,来自第一激活群822的非零激活被打包到FIFO缓冲器860中。类似地,来自第二激活群824的非零激活被打包到FIFO缓冲器862中。随后,这些非零激活从FIFO缓冲器860和FIFO缓冲器862中被出栈并存储在TCM存储器870和TCM存储器872中以供在MAC硬件540的向量通路上进行处理以计算这些激活与权重张量850的这些权重的点积。
如图8中示出的,到FIFO缓冲器(例如,860和862)和TCM存储器(例如,870和872)中的打包过程类似于图6中示出的方法体系。虽然MAC硬件540的一些资源在某些时钟循环期间不会被使用,但根据源列激活约束使用人工稀疏性以及打包FIFO缓冲器(例如,860和862)和TCM存储器(例如,870和872)减少了在遭遇空激活通道时的被浪费资源量。图9中示出了用于利用激活稀疏性的过程。
图9解说了根据本公开的各方面的利用激活稀疏性来改善乘法累加(MAC)硬件的效率的方法。方法900开始于框902,其中当稀疏激活的激活张量的通道数目小于机器的处理向量宽度时,将该激活张量的各多通路分段的可变数目的通道重分布到比第一多通路分段的通道深度小的数目的激活群中。例如,如图8中示出的,示出了激活张量810的第一多通路分段812(例如,第一输入流)和第二多通路分段814(第二输入流)。第一多通路分段812具有四个激活通路的通道深度。由于激活张量810的通道数目(=4)小于该机器的处理向量宽度(=8),因此第一多通路分段812包括激活,而第二多通路分段814为空。在该示例中,激活张量810的第一多通路分段812被分布到各激活群(包括第一激活群822和第二激活群824)中。
再次参照图9,在框904,将来自每个群的非零激活打包到各向量通路中。例如,如图8中示出的,来自第一激活群822的非零激活被打包到FIFO缓冲器860中。类似地,来自第二激活群824的非零激活被打包到FIFO缓冲器862中。随后,这些非零激活从FIFO缓冲器860和FIFO缓冲器862中被出栈并存储在TCM存储器870和TCM存储器872中以供在MAC硬件540的这些向量通路上进行处理。
在框904,当针对每个向量运算对唯一性的计算的数量的约束被超过时,将人工零激活插入到向量通路中。例如,如图6中示出的,零激活值676被插入在与通道3相对应的向量通路的第二列674中。另外,非零激活(通道0)被加载到这些向量通路的第三列678处的与通道3相对应的向量通路上,其对应于下一时钟循环。当打包到MAC硬件540的向量通路上的一群非零激活输入值包括比MAC硬件540的最大积数更大数目的不同源位置(例如,通道号)时,可能违反该约束。
在框906,处理该激活输入张量以获得输出张量。例如,如图7中示出的,通过该MAC硬件执行对激活输入张量(例如,激活张量510)和权重张量(例如,权重张量550)的处理以产生输出张量702。该过程可包括:确定该激活输入张量的各非零激活的原始通道通路(例如,通道),以标识对应的(诸)权重张量。该过程还包括:在框908,计算该激活张量的各非零激活与同这些非零激活的原始通道通路相对应的权重张量的点积,以获得输出张量。
在一种配置中,机器学习模型被配置成用于从DNN的中间层接收激活。该模型还被配置成用于根据空闲的向量通路来展布稀疏激活。该模型被进一步配置成用于当检测到空激活通道时,跟踪这些激活的展布以实现对这些激活与相应权重张量的点积计算,以及引入人工稀疏性。
在一些方面,方法900可由SOC 100(图1)来执行。即,举例而言但不作为限定,方法900的每个元素可由SOC 100、或者一个或多个处理器(例如,CPU 102和/或NPU 108)和/或其中包括的其他组件来执行。
本公开的各方面将工作散布到乘法累加(MAC)硬件的向量通路上以改善乘法器利用率。通过将稀疏激活压缩到MAC硬件的向量通路上来将工作散布在这些向量通路上以使每个时钟循环中空(例如,包括零激活)向量通路的数目最小化。另外,通过在将激活数据写入片上存储器之前从该激活数据中移除紧凑的零来减小片上存储器带宽和功率,从而改善深度神经网络(DNN)的操作效率。本公开的各方面还使用搅动约束(跨S行的最大搅动)以及累加器约束(最大不同源列数目)两者对面积/功率成本与效率进行折衷。当输入通道的数目小于机器的向量宽度,从而导致空激活通道时,引入人工稀疏性以将非空通道的激活散布在MAC硬件的向量通路上。本公开的各方面支持对其形状未完美地映射到向量单元宽度的层(例如,像素值/音频样本)的高效执行。本公开的各方面压缩稀疏激活以加速处理。即,向量中的数个元素被重映射以避免空闲时隙。
该模型包括用于分布的装置、用于打包非零激活的装置、用于插入的装置以及用于处理的装置。该模型还包括用于计算的装置、用于检测的装置、用于确定激活输入张量的原始通道通路的装置、用于填补的装置、用于重分布的装置以及用于复用权重张量的权重的装置。在一个方面,该分布装置、打包装置、插入装置、用于复用的装置、用于填补的装置、用于重分布的装置和/或处理装置可以是被配置成执行所叙述的功能的复用器750、CPU102、与CPU 102相关联的程序存储器、存储器块118、NPU 108、与NPU 108相关联的程序存储器、CPU 422和/或NPU 428。在另一配置中,前述装置可以是被配置成执行由前述装置所述的功能的任何模块或任何装置。
以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或(诸)软件组件和/或(诸)模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。一般而言,在附图中有解说的操作的场合,那些操作可具有带相似编号的相应配对装置加功能组件。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或另一数据结构中查找)、查明及诸如此类。另外,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。此外,“确定”可包括解析、选择、选取、确立及类似动作。
如本文中所使用的,引述一列项目中的“至少一者”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在涵盖:a、b、c、a-b、a-c、b-c、以及a-b-c。
结合本公开所描述的各种解说性逻辑框、模块、以及电路可用设计成执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何市售的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如,DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其他此类配置。
结合本公开所描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在本领域所知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,等等。软件模块可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可被耦合到处理器以使得该处理器能该存储介质读取信息以及向该存储介质写入信息。在替换方案中,存储介质可被整合到处理器。
本文所公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。
所描述的功能可在硬件、软件、固件或其任何组合中实现。如果以硬件实现,则示例硬件配置可包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的具体应用和整体设计约束,总线可包括任何数目的互连总线和桥接器。总线可将包括处理器、机器可读介质、以及总线接口的各种电路链接在一起。总线接口可用于尤其将网络适配器等经由总线连接至处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,按键板、显示器、鼠标、操纵杆,等等)也可以被连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路以及类似电路,它们在本领域中是众所周知的,因此将不再进一步描述。
处理器可负责管理总线和一般处理,包括对存储在机器可读介质上的软件的执行。处理器可用一个或多个通用和/或专用处理器来实现。示例包括微处理器、微控制器、DSP处理器、以及其他能执行软件的电路系统。软件应当被宽泛地解释成意指指令、数据、或其任何组合,无论是被称作软件、固件、中间件、微代码、硬件描述语言、或其他。作为示例,机器可读介质可包括随机存取存储器(RAM)、闪存存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、寄存器、磁盘、光盘、硬驱动器、或者任何其他合适的存储介质、或其任何组合。机器可读介质可被实施在计算机程序产品中。该计算机程序产品可包括包装材料。
在硬件实现中,机器可读介质可以是处理系统中与处理器分开的一部分。然而,如本领域技术人员将容易领会的,机器可读介质或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传输线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。替换地或补充地,机器可读介质或其任何部分可被集成到处理器中,诸如高速缓存和/或通用寄存器文件可能就是这种情形。虽然所讨论的各种组件可被描述为具有特定位置,诸如局部组件,但它们也可按各种方式来配置,诸如某些组件被配置成分布式计算系统的一部分。
处理系统可被配置为通用处理系统,该通用处理系统具有一个或多个提供处理器功能性的微处理器、以及提供机器可读介质中的至少一部分的外部存储器,它们都通过外部总线架构与其他支持电路系统链接在一起。替换地,该处理系统可包括一个或多个神经元形态处理器以用于实现本文中所描述的神经元模型和神经系统模型。作为另一替换方案,处理系统可以用带有集成在单块芯片中的处理器、总线接口、用户接口、支持电路系统、和至少一部分机器可读介质的专用集成电路(ASIC)来实现,或者用一个或多个现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件组件、或者任何其他合适的电路系统、或者能执行本公开通篇所描述的各种功能性的电路的任何组合来实现。取决于具体应用和加诸于整体系统上的总设计约束,本领域技术人员将认识到如何最佳地实现关于处理系统所描述的功能性。
机器可读介质可包括数个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。这些软件模块可包括传送模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。作为示例,当触发事件发生时,可以从硬驱动器中将软件模块加载到RAM中。在软件模块执行期间,处理器可以将一些指令加载到高速缓存中以提高访问速度。可随后将一个或多个高速缓存行加载到通用寄存器文件中以供处理器执行。在以下述及软件模块的功能性时,将理解此类功能性是在处理器执行来自该软件模块的指令时由该处理器来实现的。此外,应领会,本公开的各方面产生对处理器、计算机、机器或实现此类方面的其它系统的机能的改进。
如果以软件实现,则各功能可作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用于携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。另外,任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或无线技术(诸如红外(IR)、无线电、以及微波)从web网站、服务器、或其他远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电、以及微波)就被包括在介质的定义之中。如本文所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘、和
Figure BDA0002986488550000231
碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。因此,在一些方面,计算机可读介质可包括非瞬态计算机可读介质(例如,有形介质)。另外,对于其他方面,计算机可读介质可包括瞬态计算机可读介质(例如,信号)。以上的组合应当也被包括在计算机可读介质的范围内。
由此,某些方面可包括用于执行本文中给出的操作的计算机程序产品。例如,此类计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能由一个或多个处理器执行以执行本文中所描述的操作。对于某些方面,该计算机程序产品可包括包装材料。
此外,应当领会,用于执行本文中所描述的方法和技术的模块和/或其他恰适装置可由用户终端和/或基站在适用的场合下载和/或以其他方式获得。例如,此类设备能被耦合到服务器以促成用于执行本文中所描述的方法的装置的转移。替换地,本文中所描述的各种方法能经由存储装置(例如,RAM、ROM、诸如压缩碟(CD)或软盘之类的物理存储介质等)来提供,以使得一旦将该存储装置耦合到或提供给用户终端和/或基站,该设备就能获得各种方法。此外,可利用适于向设备提供本文中所描述的方法和技术的任何其他合适的技术。
将理解,权利要求并不被限于以上所解说的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。

Claims (26)

1.一种在深度神经网络中利用激活稀疏性的方法,包括:
检索激活张量和权重张量,其中所述激活张量是稀疏激活张量;
生成包括所述激活张量的非零激活的经压缩激活张量,其中所述经压缩激活张量具有比所述激活张量少的列;以及
对所述经压缩激活张量和所述权重张量进行处理以生成输出张量。
2.如权利要求1所述的方法,其中生成所述经压缩激活张量包括:
将所述激活张量的所述非零激活填补到存储器缓冲器中;以及
在一时钟循环期间将所述存储器缓冲器内的所述非零激活重分布到所述存储器缓冲器中映射到乘法累加(MAC)硬件的空向量通路的位置。
3.如权利要求2所述的方法,进一步包括:当对每向量运算的唯一性的计算的数量的约束被超过时,在所述存储器缓冲器的映射到向量通路的位置中插入人工零激活。
4.如权利要求1所述的方法,进一步包括:当在一时钟循环期间具有所述非零激活之一的向量通路的数目小于所述MAC硬件的处理向量宽度时,检测空向量通路。
5.如权利要求1所述的方法,其中生成所述经压缩激活张量包括:根据对每向量运算的唯一性的计算的数量的约束来将非零激活打包到乘法累加(MAC)硬件的向量通路上。
6.如权利要求1所述的方法,进一步包括:
确定所述经压缩激活张量的所述非零激活的原始通道通路;以及
计算所述经压缩激活张量的所述非零激活与所述权重张量的同所述经压缩激活张量的所述非零激活的所述原始通道通路相对应的权重的点积。
7.如权利要求6所述的方法,其中指示所述经压缩激活张量的所述非零激活的所述原始通道通路的元数据被存储在片上存储器中。
8.如权利要求1所述的方法,其中处理所述经压缩激活张量包括:复用所述权重张量的与至乘法累加(MAC)硬件的所述非零激活相对应的权重以计算所述输出张量。
9.如权利要求1所述的方法,其中处理所述经压缩激活张量包括:在一时钟循环期间将非零激活与来自所述权重张量的权重的点积分布到乘法累加(MAC)硬件的累加器树,其中与所述权重相关联的通道号是所述非零激活的通道号。
10.如权利要求1所述的方法,进一步包括:
当所述激活张量的通道数目小于机器的处理向量宽度时,将所述激活张量的各多通路分段的可变数目的通道分布到比第一多通路分段的通道深度小的数目的激活群中;
将来自所述激活群中的每个激活群的非零激活打包到乘法累加(MAC)硬件的向量通路上;以及
当针对每个向量运算对唯一性的计算的数量的约束被超过时,在所述向量通路中的至少一个向量通路中插入人工零激活。
11.一种用于利用激活稀疏性的深度神经网络,所述深度神经网络包括:
乘法累加(MAC)硬件;以及
耦合至所述MAC硬件的至少一个处理器,所述处理器被配置成:
检索激活张量和权重张量,其中所述激活张量是稀疏激活张量;
生成包括所述激活张量的非零激活的经压缩激活张量,其中所述经压缩激活张量具有比所述激活张量少的列;以及
对所述经压缩激活张量和所述权重张量进行处理以生成输出张量。
12.如权利要求11所述的深度神经网络,进一步包括:
先进先出(FIFO)缓冲器,其被配置成存储所述非零激活中的打包非零激活;以及
片上存储器,其被配置成存储关于所述非零激活的元数据。
13.如权利要求11所述的深度神经网络,进一步包括复用器,所述复用器被配置成:
将所述激活张量的所述非零激活填补到存储器缓冲器中;以及
在即将到来的时钟循环期间将所述存储器缓冲器内的所述非零激活重分布到所述存储器缓冲器中映射到所述MAC硬件的空向量通路的位置。
14.如权利要求13所述的深度神经网络,其中为了生成所述经压缩激活张量,所述处理器被进一步配置成:根据对每向量运算的唯一性的计算的数量的约束来将非零激活打包到所述MAC硬件的向量通路上。
15.如权利要求14所述的深度神经网络,其中所述处理器被进一步配置成:当所述约束被超过时,在所述存储器缓冲器的映射到向量通路的位置中插入人工零激活。
16.如权利要求11所述的深度神经网络,其中所述处理器被进一步配置成:
当所述激活张量的通道数目小于机器的处理向量宽度时,将所述激活张量的各多通路分段的可变数目的通道分布到比第一多通路分段的通道深度小的数目的激活群中;
将来自所述激活群中的每个激活群的所述非零激活打包到向量通路中;以及
当针对向量运算对唯一性的计算的数量的约束被超过时,在所述向量通路中的至少一个向量通路中插入人工零激活。
17.一种用于利用激活稀疏性的深度神经网络,所述深度神经网络包括:
用于检索激活张量和权重张量的装置,其中所述激活张量是稀疏激活张量;
用于生成包括所述激活张量的非零激活的经压缩激活张量的装置,其中所述经压缩激活张量具有比所述激活张量少的列;以及
用于对所述经压缩激活张量和所述权重张量进行处理以生成输出张量的装置。
18.如权利要求17所述的深度神经网络,其中用于生成所述经压缩激活张量的装置包括:
用于将所述激活张量的所述非零激活填补到存储器缓冲器中的装置;以及
用于在即将到来的时钟循环期间将所述存储器缓冲器内的所述非零激活重分布到所述存储器缓冲器中映射到乘法累加(MAC)硬件的空向量通路的位置的装置。
19.如权利要求18所述的深度神经网络,进一步包括:用于当对每向量运算的唯一性的计算的数量的约束被超过时,在所述存储器缓冲器的映射到向量通路的位置中插入人工零激活的装置。
20.如权利要求17所述的深度神经网络,进一步包括:用于当在一时钟循环期间具有所述非零激活之一的向量通路的数目小于所述MAC硬件的处理向量宽度时,检测空向量通路的装置。
21.如权利要求17所述的深度神经网络,其中用于生成所述经压缩激活张量的装置包括:用于根据对每向量运算的唯一性的计算的数量的约束来将非零激活打包到乘法累加(MAC)硬件的向量通路上的装置。
22.如权利要求21所述的深度神经网络,进一步包括:
用于确定所述经压缩激活张量的所述非零激活的原始通道通路的装置;以及
用于计算所述经压缩激活张量的所述非零激活与所述权重张量的同所述经压缩激活张量的所述非零激活的原始通道通路相对应的权重的点积的装置。
23.如权利要求22所述的深度神经网络,其中指示所述经压缩激活张量的所述非零激活的所述原始通道通路的元数据被存储在片上存储器中。
24.如权利要求17所述的深度神经网络,其中用于处理所述经压缩激活张量的装置包括:用于在一时钟循环期间将非零激活与来自所述权重张量的权重的点积分布到乘法累加(MAC)硬件的累加器树的装置,其中所述权重的通道号是所述非零激活的通道号。
25.如权利要求17所述的深度神经网络,其中用于处理所述经压缩激活张量的装置包括:用于复用所述权重张量的与至乘法累加(MAC)硬件的所述非零激活相对应的权重以计算所述输出张量的装置。
26.如权利要求17所述的深度神经网络,进一步包括:
用于当所述激活张量的通道数目小于机器的处理向量宽度时,将所述激活张量的各多通路分段的可变数目的通道分布到比第一多通路分段的通道深度小的数目的激活群中的装置;
用于将来自所述激活群中的每个激活群的所述非零激活打包到向量通路中的装置;以及
用于当针对每个向量运算对唯一性的计算的数量的约束被超过时,在所述向量通路中的至少一个向量通路中插入人工零激活的装置。
CN201980062020.2A 2018-09-28 2019-09-27 在深度神经网络中利用激活稀疏性 Pending CN112740236A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/147,297 2018-09-28
US16/147,297 US11586417B2 (en) 2018-09-28 2018-09-28 Exploiting activation sparsity in deep neural networks
PCT/US2019/053325 WO2020069239A1 (en) 2018-09-28 2019-09-27 Exploiting activation sparsity in deep neural networks

Publications (1)

Publication Number Publication Date
CN112740236A true CN112740236A (zh) 2021-04-30

Family

ID=68165894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980062020.2A Pending CN112740236A (zh) 2018-09-28 2019-09-27 在深度神经网络中利用激活稀疏性

Country Status (5)

Country Link
US (2) US11586417B2 (zh)
EP (1) EP3857462A1 (zh)
CN (1) CN112740236A (zh)
TW (1) TWI804684B (zh)
WO (1) WO2020069239A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023004570A1 (en) * 2021-07-27 2023-02-02 Qualcomm Incorporated Activation buffer architecture for data-reuse in a neural network accelerator
CN116157808A (zh) * 2021-08-16 2023-05-23 墨芯国际有限公司 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法
CN113642713B (zh) * 2021-08-19 2023-08-01 厦门壹普智慧科技有限公司 一种用于神经网络张量处理器的4d计算装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11588499B2 (en) * 2018-11-05 2023-02-21 Samsung Electronics Co., Ltd. Lossless compression of neural network weights
US11562214B2 (en) * 2019-03-14 2023-01-24 Baidu Usa Llc Methods for improving AI engine MAC utilization
US11704573B2 (en) * 2019-03-25 2023-07-18 Here Global B.V. Method, apparatus, and computer program product for identifying and compensating content contributors
US11531869B1 (en) * 2019-03-28 2022-12-20 Xilinx, Inc. Neural-network pooling
US11301545B2 (en) * 2019-07-11 2022-04-12 Facebook Technologies, Llc Power efficient multiply-accumulate circuitry
US11526328B2 (en) * 2020-02-04 2022-12-13 Macronix International Co., Ltd. Computation method and apparatus exploiting weight sparsity
CN115989505A (zh) * 2020-07-21 2023-04-18 多伦多大学管理委员会 使用稀疏性来加速深度学习网络的系统和方法
US11947928B2 (en) * 2020-09-10 2024-04-02 Hewlett Packard Enterprise Development Lp Multi-die dot-product engine to provision large scale machine learning inference applications
CN116324742A (zh) * 2020-09-15 2023-06-23 高通股份有限公司 针对ai推断的权重布局变换辅助式嵌套循环优化
TWI753630B (zh) * 2020-10-13 2022-01-21 財團法人工業技術研究院 基於神經網路的分類器及分類方法
US20220164663A1 (en) * 2020-11-24 2022-05-26 Arm Limited Activation Compression Method for Deep Learning Acceleration
WO2022125402A1 (en) * 2020-12-10 2022-06-16 Neuronix AI Labs Inc. Neural networks processing units performance optimization
WO2022205685A1 (zh) * 2021-03-29 2022-10-06 泉州装备制造研究所 一种基于轻量化网络的交通标志识别方法
TWI779626B (zh) * 2021-05-25 2022-10-01 宏碁股份有限公司 載入人工智慧模組的方法
US11922178B2 (en) 2021-06-25 2024-03-05 Intel Corporation Methods and apparatus to load data within a machine learning accelerator
US20240048152A1 (en) * 2022-08-03 2024-02-08 Arm Limited Weight processing for a neural network
US20240046078A1 (en) * 2022-08-04 2024-02-08 Qualcomm Incorporated Desparsified convolution for sparse activations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009626A (zh) * 2016-10-27 2018-05-08 谷歌公司 利用神经网络计算单元中的输入数据稀疏
US20190205740A1 (en) * 2016-06-14 2019-07-04 The Governing Council Of The University Of Toronto Accelerator for deep neural networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328644A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
US20170193361A1 (en) 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Neural network training performance optimization framework
CN107025228B (zh) * 2016-01-29 2021-01-26 阿里巴巴集团控股有限公司 一种问题推荐方法及设备
CN107133865B (zh) * 2016-02-29 2021-06-01 阿里巴巴集团控股有限公司 一种信用分的获取、特征向量值的输出方法及其装置
US10565207B2 (en) 2016-04-12 2020-02-18 Hsilin Huang Method, system and program product for mask-based compression of a sparse matrix
US10528864B2 (en) 2016-08-11 2020-01-07 Nvidia Corporation Sparse convolutional neural network accelerator
US10242311B2 (en) 2016-08-11 2019-03-26 Vivante Corporation Zero coefficient skipping convolution neural network engine
CN107239823A (zh) 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种用于实现稀疏神经网络的装置和方法
US10810484B2 (en) 2016-08-12 2020-10-20 Xilinx, Inc. Hardware accelerator for compressed GRU on FPGA
US9959498B1 (en) * 2016-10-27 2018-05-01 Google Llc Neural network instruction set architecture
US10096134B2 (en) 2017-02-01 2018-10-09 Nvidia Corporation Data compaction and memory bandwidth reduction for sparse neural networks
US20190340499A1 (en) * 2018-05-04 2019-11-07 Microsoft Technology Licensing, Llc Quantization for dnn accelerators
US11645493B2 (en) * 2018-05-04 2023-05-09 Microsoft Technology Licensing, Llc Flow for quantized neural networks
US11966835B2 (en) * 2018-06-05 2024-04-23 Nvidia Corp. Deep neural network accelerator with fine-grained parallelism discovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190205740A1 (en) * 2016-06-14 2019-07-04 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
CN108009626A (zh) * 2016-10-27 2018-05-08 谷歌公司 利用神经网络计算单元中的输入数据稀疏

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JORGE ALBERICIO等: "Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing", 2016 ACM/IEEE 43RD ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, 18 June 2016 (2016-06-18), pages 1 - 13 *
SONG HAN等: "EIE: Efficient Inference Engine on Compressed Deep Neural Network", 2016 ACM/IEEE 43RD ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, 18 June 2016 (2016-06-18), pages 243 - 254 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023004570A1 (en) * 2021-07-27 2023-02-02 Qualcomm Incorporated Activation buffer architecture for data-reuse in a neural network accelerator
CN116157808A (zh) * 2021-08-16 2023-05-23 墨芯国际有限公司 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法
CN116157808B (zh) * 2021-08-16 2024-02-02 墨芯国际有限公司 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法
CN113642713B (zh) * 2021-08-19 2023-08-01 厦门壹普智慧科技有限公司 一种用于神经网络张量处理器的4d计算装置

Also Published As

Publication number Publication date
US11586417B2 (en) 2023-02-21
EP3857462A1 (en) 2021-08-04
WO2020069239A1 (en) 2020-04-02
TWI804684B (zh) 2023-06-11
TW202026858A (zh) 2020-07-16
US20230185532A1 (en) 2023-06-15
US20200104692A1 (en) 2020-04-02

Similar Documents

Publication Publication Date Title
CN112740236A (zh) 在深度神经网络中利用激活稀疏性
CN111095302B (zh) 稀疏深度卷积网络权重的压缩
US11861484B2 (en) Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing
KR102570706B1 (ko) 분류를 위한 강제된 희소성
US20200073636A1 (en) Multiply-accumulate (mac) operations for convolutional neural networks
US20190332941A1 (en) Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks
US20210158166A1 (en) Semi-structured learned threshold pruning for deep neural networks
US20180121791A1 (en) Temporal difference estimation in an artificial neural network
CN114402339A (zh) 以存储器内计算阵列进行神经网络的卷积层的并行处理
US11410040B2 (en) Efficient dropout inference for bayesian deep learning
US11449758B2 (en) Quantization and inferencing for low-bitwidth neural networks
CN116210009A (zh) 用于能量高效深度学习的动态量化
US11461662B1 (en) Compilation time reduction for memory and compute bound neural networks
US20230108248A1 (en) Model compression via quantized sparse principal component analysis
WO2023059723A1 (en) Model compression via quantized sparse principal component analysis
US20220156502A1 (en) Lingually constrained tracking of visual objects
CN114365155A (zh) 具有快速逐点卷积的高效推断
US20240070441A1 (en) Reconfigurable architecture for fused depth-wise separable convolution (dsc)
US20230419087A1 (en) Adapters for quantization
US20230306233A1 (en) Simulated low bit-width quantization using bit shifted neural network parameters
WO2023004670A1 (en) Channel-guided nested loop transformation and scalar replacement
US20220108165A1 (en) Quantifying reward and resource allocation for concurrent partial deep learning workloads in multi core environments
WO2022193052A1 (en) Kernel-guided architecture search and knowledge distillation
WO2024049660A1 (en) Reconfigurable architecture for fused depth-wise separable convolution (dsc)
WO2023249821A1 (en) Adapters for quantization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination