CN115362450A - 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序 - Google Patents

在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序 Download PDF

Info

Publication number
CN115362450A
CN115362450A CN202180026410.1A CN202180026410A CN115362450A CN 115362450 A CN115362450 A CN 115362450A CN 202180026410 A CN202180026410 A CN 202180026410A CN 115362450 A CN115362450 A CN 115362450A
Authority
CN
China
Prior art keywords
feature maps
memory
input data
machine learning
different feature
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
CN202180026410.1A
Other languages
English (en)
Inventor
阿拉什·哈里里
迈赫迪·萨迪
鲍里斯·伊万诺维奇
加博尔·西尼斯
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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of CN115362450A publication Critical patent/CN115362450A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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
    • 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/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • H03M7/3048Conversion to or from one-bit differential modulation only, e.g. delta modulation [DM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

一种用于执行机器学习神经网络操作的处理设备包括存储器和处理器。该处理器被配置为在该机器学习神经网络操作的层处接收输入数据,接收要应用于该输入数据的多个排序过滤器,将该多个排序过滤器应用于该输入数据以产生多个不同的特征图,根据这些特征图相对于彼此的相似性来压缩该多个不同的特征图,以及将该多个不同的特征图存储在该存储器中。

Description

在机器学习作业期间基于改善的存储器压缩传输的相似性的 特征重排序
相关申请的交叉引用
本申请要求2020年3月31日提交的美国非临时专利申请号16/836,785的权益,该非临时专利申请的内容据此以引用方式并入本文。
背景技术
机器学习(例如,深度学习)广泛用于各种技术(例如,图像分类)以做出预测或决策从而执行特定任务(例如,图像是否包括某个对象)。卷积神经网络(CNN)是广泛用于机器学习应用中的一类深度学习算法。这些网络通常包括多个层。在每一层,一组过滤器应用于前一层的输出,并且每一层的输出称为激活或特征图。网络中的第一层和最后一层分别称为输入层和输出层,并且第一层和最后一层之间的层通常称为隐藏层。
对监督学习中的机器学习模型进行训练以便做出预测或决策从而执行特定任务(例如,图像是否包括某个对象)。在训练期间,将模型暴露于不同的数据。在每一层处,模型变换数据并接收关于其操作准确度的反馈。在推断阶段期间,受过训练的模型用于推断或预测测试样品的输出(例如,输入张量)。
附图说明
可以从以下描述中获得更详细的理解,通过示例结合附图给出,其中:
图1是可实现本公开的一个或多个特征的示例设备的框图;
图2是图1的设备的框图,示出了另外的细节;
图3是示出根据本公开的特征在存储器中进行排序之前,根据NHWC格式化的示例激活张量值的存储布局的图;
图4示出了根据特征图相似性对图3所示的特征图进行的示例排序,以及根据该排序使用NHWC格式化对存储在存储器中的张量值进行的示例存储布局;并且
图5是示出根据本公开的特征执行机器学习操作的示例方法的流程图。
具体实施方式
术语激活和特征图在本公开中可互换使用。CNN用于不同类型的技术应用中。出于简化的解释目的,本文所述的示例包括用于图像分析的CNN。
CNN模型的激活(全部或部分)针对每一层或多个层的存储器写入和读取,这取决于特定的应用程序。例如,每一层的输出是四维(4D)激活张量,其包括图像集,该图像集被分成N批特征图(即通道)C,每个代表图像并且每个都具有由高度(H)和宽度(W)定义的尺寸。激活张量受层定义的操作(例如,卷积内核、池化操作)的影响,从而为下一层产生新的激活张量。
深度学习模型通常使用大量存储器带宽,这可能导致带宽瓶颈、对性能产生负面影响并增加功耗。用于在机器学习神经网络的不同层处存储激活张量数据的存储器量通常很大,使得根据应用程序,激活张量数据无法保存在片上存储器中。因此,存储激活张量数据包括将数据传输到芯片外存储器和从芯片外存储器传输数据。
例如,要传输的张量数据使用任意数量的压缩算法进行压缩,诸如基于增量的压缩算法,这些算法以顺序数据之间的差值(增量)的形式存储或传输数据。当差值很小时,基于增量的压缩会大大减少数据冗余。因此,基于增量的压缩算法的效率,然而,取决于存储在存储器中的相邻数据之间的相似性。
本申请提供了用于在机器学习模型的推断阶段期间通过将排序过滤器应用于输入张量来有效地压缩用于存储器传输的张量的处理设备和方法。在训练阶段期间,根据所得特征图的相似性对过滤器进行排序,也就是说,在训练阶段期间,根据通道相对于彼此的相似性,通过改变特征图的张量值存储在存储器中的位置的顺序(即,排序)来确定模型。例如,特征图重排序(即,排序)是基于特征图的平均元素幅度(例如,像素强度)的相似性(即,通道的相似性)。然而,可基于根据其他类型的参数的相似性来实施特征重排序。还可例如基于一维或二维离散梯度或方差来实施特征重排序。
张量数据可以不同的格式写入存储器中,诸如NHWC(即通道优先)或NCHW(即宽度优先)。在NHWC(或通道优先的其他存储布局)中,同位通道的同位元素将在存储器中相邻。存储器中相邻元件的相似性影响压缩算法的压缩效率。
在一个应用程序中,张量数据使用基于增量的压缩算法进行压缩。然而,可根据本公开的特征使用其他类型的压缩算法诸如基于字典的压缩算法来实现张量数据的压缩。
提供了一种用于执行机器学习神经网络操作的处理设备,该处理设备包括存储器和处理器。该处理器被配置为在该机器学习神经网络操作的层处接收输入数据,接收要应用于该输入数据的多个排序过滤器,将该多个排序过滤器应用于该输入数据以产生多个不同的特征图,根据这些特征图相对于彼此的相似性来压缩该多个不同的特征图,以及将该多个不同的特征图存储在该存储器中。
提供了一种机器学习处理方法,该机器学习处理方法包括在机器学习神经网络的层处接收输入数据,接收要应用于输入数据的多个排序过滤器,将该多个排序过滤器应用于输入数据以产生多个不同的特征图,根据特征图相对于彼此的相似性来压缩该多个不同的特征图,以及将该多个不同的特征图存储在存储器中。
提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括用于使计算机执行机器学习处理方法的存储指令,该机器学习处理方法包括在机器学习神经网络的层处接收输入数据,接收要应用于输入数据的多个排序过滤器,将该多个排序过滤器应用于输入数据以产生多个不同的特征图,根据特征图相对于彼此的相似性来压缩该多个不同的特征图,以及将该多个不同的特征图存储在存储器中。
图1是可实现本公开的一个或多个特征的示例设备100的框图。设备100可包括例如计算机、游戏设备、手持设备、机顶盒、电视、移动电话或平板计算机。设备100包括处理器102、存储器104、存储装置106、一个或多个输入设备108以及一个或多个输出设备110。设备100还可任选地包括输入驱动器112和输出驱动器114。应当理解,设备100可包括图1中未示出的另外部件。
在各种另选方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU、或一个或多个处理器核心,其中每个处理器核心可为CPU或GPU或独立加速器。在各种另选方案中,存储器104位于与处理器102相同的管芯上,或与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入设备108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速度计、陀螺仪、生物扫描仪或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。输出设备110包括但不限于显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入设备108通信,并允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110通信,并允许处理器102向输出设备110发送输出。应注意,输入驱动器112和输出驱动器114是任选的部件,并且如果输入驱动器112和输出驱动器114不存在,则设备100将以相同方式操作。输出驱动器116包括联接到显示设备118的加速处理设备(“APD”)116。APD从处理器102接收计算命令和图形渲染命令,处理那些计算和图形渲染命令,并将输出提供给显示设备118用于显示。如下文所详述,APD 116包括根据单指令多数据(“SIMD”)范式来执行计算的一个或多个并行处理单元。因此,尽管这里将各种功能描述为由APD 116执行或与其结合执行,但在各种另选方案中,被描述为由APD 116执行的功能另外地或另选地由具有类似能力的其他计算设备执行,该其他计算设备不由主机处理器(例如,处理器102)驱动并且向显示设备118提供图形输出。例如,可以设想根据SIMD范式执行处理任务的任何处理系统都可执行本文所述的功能。另选地,可以设想不根据SIMD范式执行处理任务的计算系统执行本文所述的功能。
图2是设备100的框图,示出了涉及在APD 116上执行处理任务的附加细节。处理器102在系统存储器104中保持一个或多个控制逻辑模块以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用程序126。这些控制逻辑模块控制处理器102和APD 116的操作的各种特征。例如,操作系统120直接与硬件通信并为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如向在处理器102上执行的软件(例如,应用程序126)提供应用编程接口(“API”)来控制APD 116的操作,以访问APD 116的各种功能。内核模式驱动器122还包括即时编译器,该即时编译器编译程序以供APD 116的处理部件(诸如下文所详述的SIMD单元138)执行。
APD 116执行用于所选功能的命令和程序,诸如可适于并行处理的图形操作和非图形操作。APD 116可用于执行图形流水线操作,诸如像素操作、几何计算和基于从处理器102接收的命令将图像呈现给显示设备118。APD 116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,该计算单元包括根据SIMD范式以并行方式在处理器102的请求下执行操作的一个或多个SIMD单元138。SIMD范式是这样一种范式,其中多个处理元件共用单个程序控制流单元和程序计数器并由此执行相同的程序,但能够执行具有不同数据的该程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行相同的指令,但可执行具有不同数据的该指令。如果不是所有通道都需要执行给定指令,则可通过预测来关闭通道。还可使用预测来执行具有发散控制流的程序。更具体地,对于具有条件分支或其中控制流基于由单个通道执行的计算的其他指令的程序,预测对应于当前未被执行的控制流路径的通道,并且不同控制流路径的串行执行可实现任意控制流。
计算单元132中的基本执行单元是工作项。每个工作项表示要在特定通道中并行执行的程序的单个实例。可在单个SIMD处理单元138上作为“波前”同时执行工作项。一个或多个波前包括在一个“工作组”中,该“工作组”包括被指定执行相同程序的工作项的集合。可通过执行构成工作组的波前中的每一者来执行工作组。在另选方案中,波前在单个SIMD单元138上顺序地执行,或在不同SIMD单元138上部分地或完全地并行执行。波前可被视为可在单个SIMD单元138上同时执行的工作项的最大集合。因此,如果从处理器102接收的命令指示特定程序要被并行化到该程序不能在单个SIMD单元138上同时执行的程度,则该程序被划分成在两个或多个SIMD单元138上并行化或在同一SIMD单元138上串行化(或根据需要并行化和串行化)的波前。调度器136执行涉及调度不同计算单元132和SIMD单元138上的各种波前的操作。
由计算单元132提供的并行性适合图形相关操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,接受来自处理器102的图形处理命令的图形流水线134将计算任务提供给计算单元132以供并行执行。
计算单元132还用于执行不涉及图形或不作为图形流水线134的“正常”操作(例如,所执行的用以补充针对图形流水线134的操作执行的处理的自定义操作)的一部分而执行的计算任务。在处理器102上执行的应用程序126或其他软件将定义此类计算任务的程序发送到APD 116以供执行。
APD 116被配置为执行机器学习模型,包括深度学习模型。APD 116被配置为在机器学习神经网络的不同层处存储激活张量数据。APD 116被配置为在每一层处执行操作(例如,卷积内核、池化操作)以输入前一层的数据(例如,图像、激活张量),并对输入数据应用过滤器,从而为下一层提供张量数据。
如上所述,用于在神经网络的不同层处存储激活张量数据的存储器量通常很大(例如,在早期层中),使得无法将激活张量数据保存在片上存储器(例如,APD 116处的存储器)中。因此,存储激活张量数据包括经由链路(例如总线)在APD 116和片外存储器(例如存储器104)之间传输数据。APD 116被配置为对要传输到片外存储器的数据进行压缩(例如,节省带宽)。
APD 116被配置为通过改变张量值根据多个特征图相似性参数中的任一者存储的顺序,使用具有通道优先配置的多种不同类型的存储器格式化中的任一者以及使用多种类型的压缩算法中的任一者来压缩张量数据。出于简化解释的目的,本文所述的示例包括通过基于特征图的平均元素幅度(例如,像素强度)的相似性(即,通道的相似性)根据NHWC(即,通道优先)格式化来改变将张量值写入存储器的顺序对4D张量值进行基于增量的压缩。
图3是示出根据本公开的特征在存储器中进行排序之前,根据NHWC格式化的示例4D激活张量值的存储布局的图。
在NHWC中,激活张量(例如,4D激活张量)首先存储通道。例如,经由偏移函数映射每个4D张量值将4D激活张量写入存储器,该偏移函数输入逻辑索引(n、h、w、c)并返回每个值所在的地址位移。因此,在存储器中相邻存储的两个张量值大多共享相同的索引n、h和w,但包括不同的w索引(例如,第二张量值的w索引与第一张量值相差1)。大写字母表示激活张量的4个维度(即N、H、W和C),并且小写字母表示每个维度的索引(即n、h、w和c)。
例如,当使用NHWC格式化来存储每个都表示激活的多个特征图的张量值时,每个特征图的第一位置(例如,第1行第1列的值)处的元素首先存储在存储器中,随后是每个特征图的第二位置(例如,第1行第2列的值)处的元素,依此类推,直到每批的元素中的每一者都存储在存储器中。
图3中所示的激活张量包括8个特征图302(即,8个通道),并且每个特征图302是2×2元素矩阵。图3中所示的特征图的尺寸仅是示例。本公开的特征可使用与图3所示的尺寸不同的尺寸(即宽度W的行和高度H的列)的任何数量的特征图(即,通道)来实施。
每个特征图302是应用不同过滤器(例如,权重)的输入张量的不同表示。例如,输入张量经受使用第一过滤器的操作(例如,卷积内核、池化操作),这产生了包括元素值00、01、02和03的第一特征图302(C0)。然后输入张量经受使用第二过滤器的操作,这产生了包括元素值04、05、06和07的第二特征图302(C1)。该过程以不同的过滤器继续,以产生每个特征图302(C0至C7)。
图3还示出了示例存储布局,其示出了根据NHWC格式化在存储器部分304中存储每个元素值的位置,而无需根据本公开的特征对存储器中的元素值进行排序(即,不重排序)。如图所示,第一特征图302(C0)的第一元素00存储在存储器部分304中的第一位置处。第二特征图302(C1)的同位第一元素04然后存储在存储器部分304中的与第一特征图302(C0)的第一元素00相邻的第二位置处。
在剩余特征图302(C2至C7)的同位第一元素(即,08、12、16、20、24和28)中的每一者存储在存储器部分304中的下一位置之后,第一特征图302(C0)的第二元素01(沿元素00的宽度W)存储,随后是第二特征图302(C1)的同位第二元素05。
在剩余特征图302(C2至C7)的同位第二元素(即,09、13、17、21、25和29)中的每一者存储在存储器部分304中的下一位置之后,第一特征图304(C0)的元素02(沿元素00的高度H)存储,随后是第二特征图302(C1)的同位元素06,然后将剩余特征图302(C2至C7)中的同位元素(即10、14、18、22、26和30)中的每一者存储在存储器部分304中的下一个位置处。
在存储元素30之后,第一特征图304(C0)的元素03存储,随后是第二特征图302(C1)的同位元素07,随后将剩余同位元素(11、15、19、23、27和31)存储在存储器部分304中。
如上所述,张量值的压缩效率(例如,基于增量的压缩)取决于例如存储在存储器中的相邻数据之间的相似性。
图4示出了如何在训练阶段期间根据特征图相似性对图3所示的特征图302进行排序的示例,以及根据该排序使用NHWC格式化对存储在存储器中的元素值进行的示例存储布局。也就是说,在训练期间,对通道进行排序,使得存储器中的相邻数据元素比未经排序的通道彼此更相似。因为通道根据相似性进行排序,所以减少了在推断阶段期间执行模型的存储器传输的数量(即,减小了存储器带宽)。
图3和图4中所示的每个元素的位数(即,4)仅仅是示例。在其他实例中,使用由不同数量的位表示的元素来实施本公开的特征。因为在示例中每个元素由4位表示,所以存在用于表示每个元素的幅度(例如,整数元素)的16个不同幅度(例如,强度)级别(即,级别0至级别15)。
在训练之后或期间(即,在推断阶段之前),检查不同特征图302(即,通道)的数据以确定特征图302彼此的相似性。基于这些结果,确定(在训练期间或之后)应用于激活的多个过滤器中的每一者产生新的激活张量,该新激活张量可基于平均元素幅度值进行评估。
下表1显示了在训练阶段期间确定的示例过滤器信息,该信息包括不同特征图302(C0至C7)的平均元素幅度,这些平均元素幅度是由应用于经受操作(例如,卷积内核、池化操作)的输入张量的八个不同过滤器产生的。例如,在训练模型期间确定平均元素幅度,该模型可包括将不同过滤器应用于输入张量的多次迭代。
过滤器 特征图 平均元素幅度
第一过滤器 C<sub>O</sub> 7
第二过滤器 C<sub>1</sub> 10
第三过滤器 C<sub>2</sub> 14
第四过滤器 C<sub>3</sub> 8
第五过滤器 C<sub>4</sub> 11
第六过滤器 C<sub>5</sub> 4
第七过滤器 C<sub>6</sub> 9
第八过滤器 C<sub>7</sub> 13
表1
例如,如表1所示,应用于输入张量的第一过滤器产生具有平均元素幅度值为7的第一特征图(C0),应用于输入张量的第二过滤器产生具有平均元素幅度值为10的第二特征图302(C1),应用于输入张量的第三过滤器产生具有平均元素幅度值为14的第三特征图302(C2),应用于输入张量的第四过滤器产生具有平均元素幅度值为8的第四特征图302(C3),应用于输入张量的第五过滤器产生具有平均元素幅度值为11的第一特征图(C4),应用于输入张量的第六过滤器产生具有平均元素幅度值为4的第二特征图302(C5),应用于输入张量的第七过滤器产生具有平均元素幅度值为9的第三特征图302(C6),并且应用于输入张量的第八过滤器产生具有平均元素幅度值为13的第四特征图302(C7)。
基于过滤器信息(例如,表1中所示的信息),通过将过滤器改组以重排序(即,排序)输出通道来重建神经网络。例如,以不同于图3所示顺序的顺序将八个过滤器应用于输入张量数据,在该图中,通过NHWC格式化来应用过滤器,而无需根据特征图302的相似性(例如,平均元素幅度相似性)来重新排序。然后使用NHWC格式化将元素值存储在存储器中。
例如,过滤器以不同于图4中所示的特征图302的顺序的顺序应用于输入张量数据。也就是说,根据特征图相似性使用表1中所示的预先确定的平均元素幅度对过滤器进行排序。因此,如图4所示,特征图302(C5)的第一元素20存储在存储器部分402中的第一位置处。特征图302(C0)的同位第一元素00然后存储在存储器部分402中的与特征图302(C5)的第一元素20相邻的第二位置处。在剩余特征图302(C3、C6、C1、C4、C7、C2)的同位第一元素(即,12、24、04、16、28和08)中的每一者存储在存储器部分402中的下一位置之后,特征图302(C5)的第二元素21(沿元素20的宽度W)存储,随后是特征图302(C0)的同位第二元素01。
在剩余特征图302(C3、C6、C1、C4、C7、C2)的同位第二元素(即,13、25、05、17、29和09)中的每一者存储在存储器部分402中的下一位置之后,特征图402(C5)的元素22(沿元素20的高度H)存储,随后是特征图302(C0)的同位元素02。在剩余特征图302(C3、C6、C1、C4、C7、C2)的同位元素(即,14、26、06、18、30和10)中的每一者存储在存储器部分402的下一位置之后,特征图402(C5)的元素23存储,随后是剩余特征图302(C3、C6、C1、C4、C7、C2)的同位元素03、15、27、07、19、31和11。
使用在训练期间开发的模型(包括上述排序过滤器),在机器学习模型的推断阶段将排序过滤器应用于输入张量。由于排序相邻数据项的相似性,所以在执行模型的推断阶段期间更有效地压缩张量数据。例如,当存储器中相邻(例如,邻近)张量数据之间的差值减少时,数据更有效地被压缩(例如,使用基于增量的压缩),因为数据冗余减少了。
图5是示出根据本公开的特征在执行机器学习操作的推断阶段期间改善压缩的示例方法的流程图。
在框502处,方法500包括接收输入张量。例如,在CNN的层处在推断阶段期间接收(例如,通过处理器)输入张量。
在框504处,方法500包括在推断阶段期间接收要应用于输入张量的多个排序过滤器。在推断阶段期间接收的排序过滤器是已在推断阶段之前(例如,在训练期间)进行排序的过滤器,例如,图4中所示的排序过滤器。
当以压缩格式从存储器读取输入张量时,对输入张量进行解压缩,如框506处以虚线显示。例如,层的输入张量被处理器解压缩,使得张量可经受导致用于下一层的新激活张量的操作(例如,卷积内核、池化操作)。在一些示例中,输入张量以压缩格式写入存储器,并且未压缩的输入张量存储在本地(例如,处理器本地)并用作机器学习神经网络的下一层的下一输入数据。当不以压缩格式从存储器读取输入张量时,方法前进至框508。
在框508处,方法500包括将多个排序过滤器应用于在框504处接收的输入张量。例如,该多个排序过滤器是根据每个特征图302的平均元素幅度的相似性排序的过滤器。
在框510处,方法500包括压缩张量数据(例如,所得多个特征图302)。例如,张量数据根据特征图相对于彼此的相似性进行压缩,并通过链路(例如,总线)发送到非本地存储器(例如,片外存储器)。因此,由于排序相邻数据(例如,特征图)彼此更相似,因此与在不根据相似性排序的情况下应用过滤器相比,排序数据被更有效地压缩。
在框512处,方法500包括存储张量数据。例如,使用NHWC格式化将张量数据存储在存储器中。因为通道根据相似性进行排序,所以减少了在推断阶段期间执行模型的存储器传输的数量(即,减小了存储器带宽)。
应当理解,基于本文的公开内容,可能有许多变化。尽管上述特征和元素在特定组合中进行了描述,但每个特征或元素可以在没有其他特征和元素的情况下单独使用,或者在有或没有其他特征或元素的各种组合中使用。
图中和/或本文所述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入设备108、输出驱动器114、输出设备110、加速处理设备116、调度器136、图形处理管道134、计算单元132和SIMD单元138)可被实施为通用计算机、处理器或处理器核,或者实现为存储在非暂态计算机可读介质或另一介质中的可由通用计算机、处理器或处理器核执行的程序、软件或固件。所提供的方法可以在通用计算机、处理器或处理器核心中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路,任何其他类型的集成电路(IC)和/或状态机。可以通过使用处理的硬件描述语言(HDL)指令和包括网表的其他中间数据(能够存储在计算机可读介质上的此类指令)的结果来配置制造过程来制造此类处理器。这种处理的结果可以是掩码,然后在半导体制造过程中使用这些掩码来制造实现本公开的特征的处理器。
本文提供的方法或流程图可以在并入非暂态计算机可读存储介质中的计算机程序、软件或固件中实现,以供通用计算机或处理器执行。非暂态计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器设备、磁性介质(例如内部硬盘和可移动磁盘)、磁光介质和光学介质(例如CD-ROM磁盘)以及数字多功能磁盘(DVD)。
* * *

Claims (20)

1.一种用于执行机器学习神经网络操作的处理设备,所述处理设备包括:
存储器;和
处理器,所述处理器被配置为:
在所述机器学习神经网络操作的层处接收输入数据;
接收要应用于所述输入数据的多个排序过滤器;
将所述多个排序过滤器应用于所述输入数据以产生多个不同的特征图;
根据所述特征图相对于彼此的相似性来压缩所述多个不同的特征图;以及
将所述多个不同的特征图存储在所述存储器中。
2.根据权利要求1所述的处理设备,其中在推断阶段执行所述机器学习神经网络操作,并且在所述推断阶段执行所述机器学习神经网络操作之前在训练期间对所述排序过滤器进行排序。
3.根据权利要求1所述的处理设备,其中所述处理器被配置为使用NHWC格式化将所述多个不同的特征图存储在所述存储器中。
4.根据权利要求1所述的处理设备,其中所述处理器被配置为使用基于增量的压缩来压缩所述多个不同的特征图。
5.根据权利要求1所述的处理设备,其中所述输入数据是张量。
6.根据权利要求5所述的处理设备,其中所述不同的特征图的所述相似性是所述不同的特征图的平均元素幅度相对于彼此的相似性。
7.根据权利要求1所述的处理设备,其中所述处理器被进一步配置为根据所述相似性通过链路传输所述压缩的不同特征图而将所述压缩的不同特征图存储在所述存储器中,并且
用于存储由所述排序过滤器产生的所述压缩的不同特征图的存储器传输量小于用于存储由未排序过滤器产生的所述压缩的不同特征图的存储器传输量。
8.根据权利要求1所述的处理设备,其中所述处理器被进一步配置为当以压缩格式从所述存储器读取所述输入数据时对所述输入数据进行解压缩。
9.根据权利要求8所述的处理设备,其中所述处理器被进一步配置为将所述输入数据以所述压缩格式写入所述存储器,并将未压缩格式的所述输入数据用作所述机器学习神经网络的下一层的下一输入数据。
10.一种机器学习处理方法,所述机器学习处理方法包括:
在机器学习神经网络的层处接收输入数据;
接收要应用于所述输入数据的多个排序过滤器;
将所述多个排序过滤器应用于所述输入数据以产生多个不同的特征图;
根据所述特征图相对于彼此的相似性来压缩所述多个不同的特征图;以及
将所述多个不同的特征图存储在存储器中。
11.根据权利要求10所述的方法,其中在推断阶段执行机器学习神经网络操作,并且在所述推断阶段执行所述机器学习神经网络操作之前在训练期间对所述排序过滤器进行排序。
12.根据权利要求10所述的方法,所述方法进一步包括使用NHWC格式化将所述多个不同的特征图存储在所述存储器中。
13.根据权利要求10所述的方法,所述方法进一步包括使用基于增量的压缩来压缩所述多个不同的特征图。
14.根据权利要求10所述的方法,其中所述输入数据是张量。
15.根据权利要求14所述的方法,其中每个特征图是所述张量的不同表示,并且
所述不同的特征图的所述相似性是所述不同的特征图的平均元素幅度相对于彼此的相似性。
16.根据权利要求10所述的方法,所述方法进一步包括根据所述相似性通过链路传输所述压缩的不同特征图而将所述压缩的不同特征图存储在所述存储器中,并且
用于存储由所述排序过滤器产生的所述压缩的不同特征图的存储器传输量小于用于存储由未排序过滤器产生的所述压缩的不同特征图的存储器传输量。
17.根据权利要求10所述的方法,所述方法进一步包括当以压缩格式从所述存储器读取所述输入数据时对所述输入数据进行解压缩。
18.根据权利要求17所述的方法,所述方法进一步包括将所述输入数据以所述压缩格式写入所述存储器,并将未压缩格式的所述输入数据用作所述机器学习神经网络的下一层的下一输入数据。
19.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有用于使计算机执行机器学习处理方法的存储指令,所述机器学习处理方法包括:
在机器学习神经网络的层处接收输入数据;
接收要应用于所述输入数据的多个排序过滤器;
对所述输入数据进行解压缩;
将所述多个排序过滤器应用于所述输入数据以产生多个不同的特征图;
根据所述特征图相对于彼此的相似性来压缩所述多个不同的特征图;以及
将所述多个不同的特征图存储在存储器中。
20.根据权利要求19所述的计算机可读介质,其中在推断阶段执行机器学习神经网络操作,并且在所述推断阶段执行所述机器学习神经网络操作之前在训练期间对所述排序过滤器进行排序。
CN202180026410.1A 2020-03-31 2021-03-05 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序 Pending CN115362450A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/836,785 2020-03-31
US16/836,785 US11568248B2 (en) 2020-03-31 2020-03-31 Feature reordering based on similarity for improved memory compression transfers during machine learning jobs
PCT/IB2021/051882 WO2021198810A1 (en) 2020-03-31 2021-03-05 Feature reordering based on similarity for improved memory compression transfers during machine learning jobs

Publications (1)

Publication Number Publication Date
CN115362450A true CN115362450A (zh) 2022-11-18

Family

ID=77857242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180026410.1A Pending CN115362450A (zh) 2020-03-31 2021-03-05 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序

Country Status (6)

Country Link
US (1) US11568248B2 (zh)
EP (1) EP4128065A4 (zh)
JP (1) JP2023519564A (zh)
KR (1) KR20220161339A (zh)
CN (1) CN115362450A (zh)
WO (1) WO2021198810A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11551089B2 (en) * 2020-03-31 2023-01-10 Ati Technologies Ulc Feature reordering based on sparsity for improved memory compression transfers during machine learning jobs
CN113971453A (zh) * 2020-07-22 2022-01-25 上海寒武纪信息科技有限公司 一种数据归一化处理方法、存储介质和计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10511858B2 (en) * 2016-07-13 2019-12-17 Ati Technologies Ulc Bit packing for delta color compression
KR102301232B1 (ko) 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
WO2019143026A1 (ko) * 2018-01-16 2019-07-25 한국과학기술원 특징맵 압축을 이용한 이미지 처리 방법 및 장치
US11030485B2 (en) * 2018-03-30 2021-06-08 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for feature transformation, correction and regeneration for robust sensing, transmission, computer vision, recognition and classification

Also Published As

Publication number Publication date
WO2021198810A1 (en) 2021-10-07
US11568248B2 (en) 2023-01-31
JP2023519564A (ja) 2023-05-11
EP4128065A1 (en) 2023-02-08
US20210303994A1 (en) 2021-09-30
KR20220161339A (ko) 2022-12-06
EP4128065A4 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
US20230229931A1 (en) Neural processing apparatus and method with neural network pool processing
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
US11551089B2 (en) Feature reordering based on sparsity for improved memory compression transfers during machine learning jobs
US11741350B2 (en) Efficient utilization of processing element array
US11144291B1 (en) Loop-oriented neural network compilation
US20200387799A1 (en) Reducing computation in neural networks using self-modifying code
US11567778B2 (en) Neural network operation reordering for parallel execution
CN115362450A (zh) 在机器学习作业期间基于改善的存储器压缩传输的相似性的特征重排序
CN114286985A (zh) 用于预测内核调谐参数的方法和设备
Isik et al. An energy-efficient reconfigurable autoencoder implementation on fpga
US11461662B1 (en) Compilation time reduction for memory and compute bound neural networks
CN118043821A (zh) 混合稀疏压缩
JP2024502225A (ja) ワークロードが平準化された活性化スパース性を用いた畳込みのための方法およびシステム
US20230004385A1 (en) Accelerated processing device and method of sharing data for machine learning
US12008469B1 (en) Acceleration of neural networks with stacks of convolutional layers
US20240095517A1 (en) Framework for compression-aware training of neural networks
Isik et al. Check for updates An Energy-Efficient Reconfigurable Autoencoder Implementation on FPGA
JP2024523299A (ja) 加速処理デバイス及び機械学習用データ共有の方法
KR20230123309A (ko) 프루닝 방법 및 장치

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