CN110738312A - 用于数据处理的方法、系统、设备和计算机可读存储介质 - Google Patents
用于数据处理的方法、系统、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110738312A CN110738312A CN201910980298.XA CN201910980298A CN110738312A CN 110738312 A CN110738312 A CN 110738312A CN 201910980298 A CN201910980298 A CN 201910980298A CN 110738312 A CN110738312 A CN 110738312A
- Authority
- CN
- China
- Prior art keywords
- data
- lut
- scheduler
- machine learning
- learning model
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Processing (AREA)
Abstract
本申请的实施例公开了用于数据处理的方法、系统、设备和介质。该数据处理系统包括调度器,被配置为控制对数据处理系统的数据的处理;存储器,耦合到调度器,被配置为响应于接收到来自调度器的数据传输指令,发送存储在存储器中的与机器学习模型相关联的数据;数据选择器,耦合到存储器和调度器,被配置为响应于接收到来自存储器的数据,基于从调度器接收的与数据在机器学习模型中的处理操作中的输入位数有关的信息来发送数据;数据计算器,耦合到数据选择器和调度器,被配置为响应于接收到来自数据选择器的数据,对数据执行处理操作。该系统实现了数据动态配置,降低了带宽要求。本方案可用于人工智能领域,尤其是自动驾驶(包括自主泊车)领域。
Description
技术领域
本公开的实施例主要涉及数据处理领域,并且更具体地,涉及用于数据处理的方法、系统、设备和计算机可读存储介质
背景技术
当前自动驾驶的技术实现中,计算机视觉领域的问题往往使用深度神经网络进行建模,在模型基础上进行推断和更高层感知决策的运行。在算法实际运行过程中,实时性要求很高,但是数据量巨大,一般的基于嵌入式CPU的解决方案耗时、延迟不确定。因此,现在通常使用专用的异构计算单元如FPGA/GPU等,提高神经网络推理速度,满足实时性要求。
随着神经网络的发展,卷积神经网络受到了越来越多的关注并且得到了发展。由于卷积算法是卷积神经网络的核心算法,其占据卷积神经网络的90%的运算时间。因此,使用基于现场可编程门阵列(FPGA)的神经网络硬件加速器来处理卷积计算。然而,在采用FGPA处理卷积神经网络的计算过程中还存在着许多需要解决的问题。
发明内容
根据本公开的示例实施例,提供了一种用于数据处理的方案。
在本公开的第一方面中,提供了一种数据处理系统。该数据处理系统包括调度器,被配置为控制对数据处理系统的数据的处理;存储器,耦合到调度器,并且被配置为响应于接收到来自调度器的数据传输指令,发送存储在存储器中的与机器学习模型相关联的数据;数据选择器,耦合到存储器和调度器,并且被配置为响应于接收到来自存储器的数据,基于从调度器接收的与数据在机器学习模型中的处理操作中的输入位数有关的信息来发送数据;以及数据计算器,耦合到数据选择器和调度器,并且被配置为响应于接收到来自数据选择器的数据,对数据执行处理操作,以及基于从调度器接收的输出位数来输出处理操作的结果。
在本公开的第二方面中,提供了一种数据处理方法。该方法包括从调度器向存储器发送数据传输指令,以使得存储器中存储的与机器学习模型相关联的数据被发送至数据选择器;基于从调度器接收的与数据在机器学习模型中的处理操作中的输入位数有关的信息,从数据选择器向数据计算器发送数据,以对数据执行处理操作;以及基于从调度器接收的输出位数,在数据计算器处输出处理操作的结果。
在本公开的第三方面中,提供了一种用于控制数据处理的方法。该方法包括在调度器处向存储器发送数据传输指令,以使得存储器中存储的与机器学习模型相关联的数据被发送至数据选择器;向数据选择器发送与数据在机器学习模型中的处理操作中的输入位数有关的信息,以使得数据选择器基于输入位数将数据发送到计算单元来对数据执行处理操作;以及向计算单元发送与输出位数有关的信息,以使得计算单元基于输出位数来输出处理操作的结果。
在本公开的第四方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第三方面的方法。
在本公开的第五方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第三方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的用于处理数据的数据处理系统100的示意图;
图2示出了根据本公开的实施例的用于数据计算器104的示意图;
图3示出了根据本公开的实施例的用于处理数据的数据处理系统300的示意图;
图4示出了根据本公开的实施例的用于处理数据的方法400的流程图;
图5示出了根据本公开的实施例的用于控制数据处理的方法500的流程图;
图6示出了能够实施本公开的多个实施例的计算设备600的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在使用深度神经网络建模来处理数据时,通常采用FPGA/GPU的计算单元。然而,FPGA/GPU算力很高但是加载数据的带宽有限,也即从装备的缓存读取到计算芯片上的速度受限。
为了克服速度受限的问题,通常对模型进行压缩、量化;或者提高带宽。然而,在将模型压缩和量化时有不同程度的问题。模型压缩,不论是结构化的模型压缩还是非结构化的模型压缩,压缩的比例要么不够高,收益不明显、要么压缩比例太大导致精度下降严重,并没有很好的适应实际,针对数据位宽的量化也是如此。同时更主要的,所有的量化均针对模型的所有数据统一进行,即不论数据属于网络的哪一层,均按照统一的位宽参数进行量化,因为在网络的不同阶段、根据数据的不同类型,比如模型属于分类模型还是检测模型,数据用于前向判决还是回归等,数据往往表现出不同的分布特性,不同的分布特性,对相同的量化参数的耐受程度是不一样的。往往一个统一的参数进行量化,达不到最佳效果,或者量化太过导致特征失真严重。这样都达不到最好的效果。
对于提高带宽,例如使用DDR4等更高速的存储器件,提高板卡设计时钟频率。然而,这些手段都会引起设备成本的急剧增加。
为了解决至少上述问题,根据本公开的实施例,提出了一种用于数据处理的方案。该装置包括配置为控制对数据处理系统的数据的处理的调度器。在调度器的控制下存储器将数据发送给数据选择器。然后数据选择器基于从调度器获得的输入位数来将数据发送到数据计算器以进行处理,并且基于从调度器获得的输出位数来调整输出数据。通过上述方法,实现了通过动态配置输入计算单元的数据以及计算单元输出的数据,实现了对网络的不同层的计算使用不同的位宽来加速计算。同时压缩了模型大小,降低了带宽要求,从而解决了带宽受限的问题,可使神经网络的推断实时性得到保证。
图1示出了根据本公开的实施例的用于处理数据的数据处理系统100的示意图。数据处理系统100总体上包括调度器101、存储器102、数据选择器103、数据计算器104。
调度器101被配置为控制对数据处理系统的数据105的处理。在一些实施例中,调度器101控制存储器102接收数据105,并且还控制存储器102向数据选择器103发送数据105。调度器101还控制数据选择器103从存储器102接收的数据中选出要用于数据计算器104的数据。调度器101还控制数据计算器104对计算结果进行截位处理。
存储器102耦合到调度器101,并且被配置为响应于接收到来自调度器101的数据传输指令,发送存储在存储器102中的与机器学习模型相关联的数据105。
在一些实施例中,存储器102在接收到数据105后将数据紧密的排列在存储器102中。例如,数据105的宽度为四个比特,则将以四个比特为单位来连续存储数据105。
在一些实施例中,数据105可以为以下项中的至少一项:机器学习模型的权重、机器学习模型的输入数据和与处理操作相关的偏置。备选地或附加地,该处理操作为卷积操作。
数据选择器103,耦合到存储器102和调度器101,并且被配置为响应于接收到来自存储器103的数据,基于从调度器101接收的与数据在机器学习模型中的处理操作中的输入位数有关的信息来发送数据。
在一些实施例中,数据选择器103接收的输入位数是针对一次处理操作的。例如,输入位数是针对一次卷积操作的。针对不同的卷积操作的输入位数可以是不同的。此外,对于不同类型的数据,其输入也可以不同,例如针对权重的输入位数不同于针对输入数据的输入位数。即,数据选择器103以第一位数来选取发送到数据计算器104的权重数据,以第二位数来选择发送到数据计算器104的输入数据。
数据计算器104,耦合到数据选择器103和调度器101,并且被配置为响应于接收到来自数据选择器103的数据105,对数据105执行处理操作,以及基于从调度器101接收的输出位数来输出处理操作的结果。
在一些实施例中,数据处理系统100还包括缓冲器,耦合到数据计算器104,并且被配置为存储从数据计算器104接收的处理操作的结果。
上面图1描述了根据本公开的实施例的用于处理数据的数据处理系统100的示意图。下面结合图2详细描述根据本公开的实施例的数据计算器104。图2示出了根据本公开的实施例的用于数据计算器104的示意图;
数据计算器104包括多个乘法器202-1,202-2,202-3,202-4,…,202-N-3,202-N-2,202-N-1,202-N,其中N为正整数,为了描述方便,也可统称为乘法器202。该多个乘法器耦合至数据选择器103并且被配置为将来自数据选择器103的机器学习模型的权重与机器学习模型的输入数据相乘。
在一些实施例中,乘法器202是数据信号处理器(DSP)。该DSP具有27x 18的位宽。可以支持权重和输入数据在[4,8]的范围内变化位宽。
数据计算器104还包括多个查找表(LUT)级。该多个LUT级耦合至多个乘法器202并且被配置为用于对来自乘法器202的数据进行逐级累加。
在一些实施例中,该多个LUT级包括第一LUT级。第一LUT级包括第一组LUT加法器203-1、203-2、…、203-M-1和203-M,其中M为正整数,为了描述方便,可以统称为LUT加法器203。第一组LUT加法器203分别耦合至多个乘法器202中的一对乘法器202并且分别被配置为将来自一对乘法器202的乘积元素进行相加。
该多个LUT级还包括第二LUT级,包括第二组LUT加法器。第二组LUT加法器分别耦合至第一组LUT加法器中的一对LUT加法器,并且分别被配置为将来自一对LUT加法器的累加数据进行相加。为了描述方便,图2仅示出了第二LUT级具有三个LUT加法器204-1,204-2和204-3。上述示例仅是为了描述本公开,而非对本公开的具体限定。本领域技术人员可以依据需要设置第二级LUT级中加法器的数目。
备选地或附加地,图2示出了计算器200还包括第三LUT级和第四LUT级。其中第三LUT级包括LUT加法器205-1和LUT加法器205-2。第四LUT级包括LUT加法器206。图2示出了LUT加法器的级数仅是作示例,而非对本公开的具体限定。本领域技术人员可以依据需要设置LUT的级数。
数据计算器104还包括截位寄存器208。该截位寄存器208耦合至多个LUT级和调度器101,并且被配置为基于来自调度器101的输出位数将来自多个LUT级的累加数据进行截位并且输出经截位的数据。
备选地或附加地,该数据计算器104还包括偏置LUT级,耦合在多个LUT级和截位寄存器之间并且被配置为将多个LUT级的累加数据进行移位并且将经移位的数据输出至截位寄存器。如图2所示,该偏置LUT级包括LUT加法器207。
备选地或附加地,图2示出的数据计算器104可用于执行下式(1)的计算:
其中z表示特征像素值,l表示输出的生成的点的下标,其表示为c*h*w,c表示通道数,h表示二维图像的高,w表示二维图像的宽,w表示权重,xi表示第i个通道上的输入数据,scale表示缩放值,biasi l表示第l个生成点在第i个通道上的偏置。
上面图合图2描述了数据计算器,下面结合图3描述对数据处理系100的进一步改进而得到的示例处理系统300。图3示出了根据本公开的实施例的用于处理数据的数据处理系统300的示意图。
在图3所示的数据处理系统300中包括两个存储器302和存储器303,存储器302用于存储针对机器学习模型的权重307。存储器303存储用于机器学习模型的输入数据308。权重307和输入数据308分别在存储器302和存储器303中紧密的排列。调度器301会向存储器302和存储器303发送指令以使得两个存储器中的数据发送到数据选择器304。
备选地或附加地,数据处理系统300还包括第三存储器。第三存储器用于存储与机器学习模型有关的缩放值和偏置。该第三存储器也在调度器301的控制下将数据发送给数据选择器304。
数据选持器304从存储器302接收权重和从存储器303接收输入数据。然后,数据选择器304根据从调度器301接收到的针对权重的第一位数来从存储器302接收的数据中选取出要发送的权重;数据选择器304根据从调度器301接收的针对输入数据的第二位数来对从存储器303接收的数据中选择要发送的输入数据。
数据处理系统300还包括多个数据计算器305-1、305-2,…、305-K-1,305-K,其中K为正整数,为了描述方便,统称为数据计算器305。数据计算器305的结构和图1中的数据计算器104具有相同的结构,如图2所示。
多个数据计算器305计算接收的权重和输入数据以进行数据操作,例如卷积操作。然后将数据被发送到缓冲器306。
上面结合图1-图3描述了根据本公开的实施例的用于处理数据的数据处理系统和数据计算器。下面结合图4详细描述根据本公开的实施例的用于处理数据的示例方法400的流程图。例如,方法400可以由如图1所示的数据处理系统100来执行。以下将结合图1来详细描述方法400的各个动作。应当理解,方法400还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框402处,调度器101向存储器102发送数据传输指令,以使得存储器102中存储的与机器学习模型相关联的数据被发送至数据选择器103。
在一些实施例中,与机器学习模型相关联的数据包括以下至少一种类型的数据:机器学习模型的权重,机器学习模型的输入数据,以及与处理操作相关的偏置。
在一些实施例中,处理系统100的存储器102为多个存储器。例如,可以包括存储权重的第一存储器和存储输入数据的第二存储器,以及存储偏置和缩放值的第三存储器。
在框404处,数据选择器103基于从调度器101接收的与数据在机器学习模型中的处理操作中的输入位数有关的信息,向数据计算器104发送数据,以对数据执行处理操作。其中对数据的处理操作将在下面进行详细描述。
在框406处,数据计算器104基于从调度器101接收的输出位数,输出处理操作的结果。
在一些实施例中,数据计算器104对经过处理的结果进行截断操作。例如,在对输入数据进行卷积操作后,通过RELU截位操作来将计算得到的结果确定为预定的位数。
在一些实施例中,使用缓冲器存储从数据计算器104接收的处理操作的结果。
通过上述方法,实现了通过动态配置输入计算单元的数据以及由计算单元输出的数据,实现了对网络的不同层的计算使用不同的位宽来加速计算,提高了处理效率。
上面结合图4描述了根据本公开的实施例的数据处理系统用于处理数据的过程。下面结合图2详细描述图4中框404处用于对数据执行处理操作的过程。
数据计算器104利用多个乘法器202将来自数据选择器103的机器学习模型的权重与机器学习模型的输入数据相乘。在一些实施例中,乘法器202为DSP。
数据计算器104利用多个LUT级对来自乘法器202的数据进行逐级累加。在一些实施例中,在进行逐级累加时,数据计算器104将多个LUT级的累加数据进行移位。并且数据计算器104将经移位的数据输出至截位寄存器。
在一些实施例中,其中利用多个LUT级对来自乘法器202的数据进行逐级累加包括:利用第一LUT级中第一组LUT加法器203中的一个LUT加法器203将来自多个乘法器202中的一对乘法器202的乘积元素进行相加;以及利用第二LUT级中第二组LUT加法器204中的一个LUT加法器204将来自第一组LUT加法器203中的一对LUT加法器203的累加数据进行相加。
数据计算器104基于来自调度器101的输出位数将来自多个LUT级的累加数据进行截位。数据计算器104输出经截位的数据。
上面结合图4描述了根据本公开的实施例的用于处理数据的过程。下面结合图5详细描述根据本公开的实施例的用于控制数据处理的方法500的流程图。例如,方法500可以由如图1所示的调度器101来执行。以下将结合图1来详细描述方法500的各个动作。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框502处,调度器101向存储器102发送数据传输指令,以使得存储器102中存储的与机器学习模型相关联的数据被发送至数据选择器103。
在一些实施例中,与机器学习模型相关联的数据包括以下至少一种类型的数据:机器学习模型的权重,机器学习模型的输入数据,以及与处理操作相关的偏置。
在框504处,调度器101向数据选择器103发送与数据在机器学习模型中的处理操作中的输入位数有关的信息,以使得数据选择器103基于输入位数将数据发送到计算单元来对数据执行处理操作。
在一些实施例中,其中不同类型的数据具有不同的输入位数。
在一些实施例中,其中输入位数在不同的处理操作中是不同的。备选地或附加地,该处理操作为卷积操作。
在框506处,调度器101向计算单元105发送与输出位数有关的信息,以使得计算单元基于输出位数来输出处理操作的结果。
通过上述方法,实现了对网络的不同层的计算使用不同的位宽来加速计算,提高数据处理的速度,解决了带宽受限的问题。
图6示出了可以用来实施本公开的实施例的电子设备600的示意性框图。设备600可以用于实现图1的调度器101等。如图所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如方法500。例如,在一些实施例中,方法500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM603并由计算单元601执行时,可以执行上文描述的方法500的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法500。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (16)
1.一种数据处理系统,包括:
调度器,被配置为控制对所述数据处理系统的数据的处理;
存储器,耦合到所述调度器,并且被配置为响应于接收到来自所述调度器的数据传输指令,发送存储在所述存储器中的与机器学习模型相关联的数据;
数据选择器,耦合到所述存储器和所述调度器,并且被配置为响应于接收到来自所述存储器的所述数据,基于从所述调度器接收的与所述数据在所述机器学习模型中的处理操作中的输入位数有关的信息来发送所述数据;以及
数据计算器,耦合到所述数据选择器和所述调度器,并且被配置为响应于接收到来自所述数据选择器的所述数据,对所述数据执行所述处理操作,以及基于从所述调度器接收的输出位数来输出所述处理操作的结果。
2.根据权利要求1所述的系统,还包括:
缓冲器,耦合到所述数据计算器,并且被配置为存储从所述数据计算器接收的所述处理操作的结果。
3.根据权利要求1所述的系统,其中所述数据计算器包括:
多个乘法器,耦合至所述数据选择器并且被配置为将来自所述数据选择器的所述机器学习模型的权重与所述机器学习模型的输入数据相乘;
多个查找表LUT级,耦合至所述多个乘法器并且被配置为用于对来自乘法器的数据进行逐级累加;以及
截位寄存器,耦合至所述多个LUT级和所述调度器,并且被配置为基于来自所述调度器的输出位数将来自所述多个LUT级的累加数据进行截位并且输出经截位的数据。
4.根据权利要求3所述的系统,其中所述数据计算器还包括:
偏置LUT级,耦合在所述多个LUT级和所述截位寄存器之间并且被配置为将所述多个LUT级的累加数据进行移位并且将经移位的数据输出至所述截位寄存器。
5.根据权利要求3所述的系统,其中所述多个LUT级包括:
第一LUT级,包括第一组LUT加法器,所述第一组LUT加法器分别耦合至所述多个乘法器中的一对乘法器并且分别被配置为将来自所述一对乘法器的乘积元素进行相加;以及
第二LUT级,包括第二组LUT加法器,所述第二组LUT加法器分别耦合至所述第一组LUT加法器中的一对LUT加法器,并且分别被配置为将来自所述一对LUT加法器的累加数据进行相加。
6.一种数据处理方法,包括:
从调度器向存储器发送数据传输指令,以使得所述存储器中存储的与机器学习模型相关联的数据被发送至数据选择器;
基于从所述调度器接收的与所述数据在所述机器学习模型中的处理操作中的输入位数有关的信息,从所述数据选择器向数据计算器发送所述数据,以对所述数据执行所述处理操作;以及
基于从所述调度器接收的输出位数,在所述数据计算器处输出所述处理操作的结果。
7.根据权利要求6所述的方法,还包括:
使用缓冲器存储从所述数据计算器接收的所述处理操作的结果。
8.根据权利要求6所述的方法,其中与机器学习模型相关联的数据包括所述机器学习模型的权重和所述机器学习模型的输入数据,其中对所述数据执行所述处理操作包括:
利用数据计算器的多个乘法器将来自所述数据选择器的所述机器学习模型的权重与所述机器学习模型的输入数据相乘;
利用数据计算器的多个LUT级对来自乘法器的数据进行逐级累加;
基于来自所述调度器的输出位数将来自所述多个LUT级的累加数据进行截位;以及
输出经截位的数据。
9.根据权利要求8所述的方法,其中对所述数据执行所述处理操作包括还包括:
将所述多个LUT级的累加数据进行移位;以及
输出将经移位的数据以用于截位。
10.根据权利要求8所述的方法,其中利用多个LUT级对来自乘法器的数据进行逐级累加包括:
利用第一LUT级中第一组LUT加法器中的一个LUT加法器将来自多个乘法器中的一对乘法器的乘积元素进行相加;以及
利用第二LUT级中第二组LUT加法器中的一个LUT加法器将来自所述第一组LUT加法器中的一对LUT加法器的累加数据进行相加。
11.一种用于控制数据处理的方法,包括:
在调度器处向存储器发送数据传输指令,以使得所述存储器中存储的与机器学习模型相关联的数据被发送至数据选择器;
向数据选择器发送与所述数据在所述机器学习模型中的处理操作中的输入位数有关的信息,以使得所述数据选择器基于所述输入位数将所述数据发送到计算单元来对所述数据执行所述处理操作;以及
向所述计算单元发送与输出位数有关的信息,以使得所述计算单元基于所述输出位数来输出所述处理操作的结果。
12.根据权利要求11所述的方法,其中与所述机器学习模型相关联的数据包括以下至少一种类型的数据:
所述机器学习模型的权重,
所述机器学习模型的输入数据,以及
与所述处理操作相关的偏置。
13.根据权利要求12所述的方法,其中不同类型的数据具有不同的输入位数。
14.根据权利要求11所述的方法,其中所述输入位数在不同的处理操作中是不同的。
15.一种电子设备,包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求11-14中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据权利要求11-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980298.XA CN110738312A (zh) | 2019-10-15 | 2019-10-15 | 用于数据处理的方法、系统、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980298.XA CN110738312A (zh) | 2019-10-15 | 2019-10-15 | 用于数据处理的方法、系统、设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110738312A true CN110738312A (zh) | 2020-01-31 |
Family
ID=69269025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910980298.XA Pending CN110738312A (zh) | 2019-10-15 | 2019-10-15 | 用于数据处理的方法、系统、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738312A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229648A (zh) * | 2017-08-31 | 2018-06-29 | 深圳市商汤科技有限公司 | 卷积计算方法和装置、电子设备、计算机存储介质 |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN208630519U (zh) * | 2018-04-26 | 2019-03-22 | 深圳市商汤科技有限公司 | 车载智能设备和车辆 |
CN109598338A (zh) * | 2018-12-07 | 2019-04-09 | 东南大学 | 一种基于fpga的计算优化的卷积神经网络加速器 |
CN110135554A (zh) * | 2019-03-25 | 2019-08-16 | 电子科技大学 | 一种基于fpga的卷积神经网络硬件加速架构 |
-
2019
- 2019-10-15 CN CN201910980298.XA patent/CN110738312A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229648A (zh) * | 2017-08-31 | 2018-06-29 | 深圳市商汤科技有限公司 | 卷积计算方法和装置、电子设备、计算机存储介质 |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN208630519U (zh) * | 2018-04-26 | 2019-03-22 | 深圳市商汤科技有限公司 | 车载智能设备和车辆 |
CN109598338A (zh) * | 2018-12-07 | 2019-04-09 | 东南大学 | 一种基于fpga的计算优化的卷积神经网络加速器 |
CN110135554A (zh) * | 2019-03-25 | 2019-08-16 | 电子科技大学 | 一种基于fpga的卷积神经网络硬件加速架构 |
Non-Patent Citations (1)
Title |
---|
ROBERTO DICECCO等: "FPGA-Based Training of Convolutional Neural Networks With a Reduced Precision Floating-Point Library", 《IEEE》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902818B (zh) | 一种面向深度学习训练任务的分布式加速方法及系统 | |
CN110880038B (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
CN111242277B (zh) | 一种基于fpga设计的支持稀疏剪枝的卷积神经网络加速器 | |
JP6977864B2 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
CN110070178A (zh) | 一种卷积神经网络计算装置及方法 | |
CN108229671B (zh) | 一种降低加速器外部数据存储带宽需求的系统和方法 | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
CN112465110B (zh) | 一种卷积神经网络计算优化的硬件加速装置 | |
CN109800865B (zh) | 神经网络生成及图像处理方法和装置、平台、电子设备 | |
CN110852434A (zh) | 基于低精度浮点数的cnn量化方法、前向计算方法及装置 | |
CN110555516A (zh) | 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法 | |
CN113222102A (zh) | 用于神经网络模型量化的优化方法 | |
KR101929847B1 (ko) | 희소행렬 연산 방법과 장치 | |
CN110955405B (zh) | 一种输入数据的处理及指数值获取方法、装置及电子设备 | |
CN113705803B (zh) | 基于卷积神经网络的图像硬件识别系统及部署方法 | |
CN110738312A (zh) | 用于数据处理的方法、系统、设备和计算机可读存储介质 | |
CN111176962B (zh) | Fpga平台及其性能评估与设计优化的方法、存储介质 | |
CN115860080B (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN111492369A (zh) | 人工神经网络中移位权重的残差量化 | |
CN113283591B (zh) | 基于Winograd算法和近似乘法器的高效卷积实现方法及装置 | |
CN115346099A (zh) | 基于加速器芯片的图像卷积方法、芯片、设备及介质 | |
CN113986194A (zh) | 基于预处理的神经网络近似乘法器实现方法及装置 | |
CN114418057A (zh) | 卷积神经网络的运算方法及相关设备 | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
CN117767959A (zh) | 通过乘加阵列对特征数据进行处理的方法和装置 |
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 |