CN115035384B - 数据处理方法、装置和芯片 - Google Patents

数据处理方法、装置和芯片 Download PDF

Info

Publication number
CN115035384B
CN115035384B CN202210702716.0A CN202210702716A CN115035384B CN 115035384 B CN115035384 B CN 115035384B CN 202210702716 A CN202210702716 A CN 202210702716A CN 115035384 B CN115035384 B CN 115035384B
Authority
CN
China
Prior art keywords
arrangement
arrangement sequence
sequence
target
turnover rate
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.)
Active
Application number
CN202210702716.0A
Other languages
English (en)
Other versions
CN115035384A (zh
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.)
Shanghai Houmo Intelligent Technology Co ltd
Original Assignee
Shanghai Houmo Intelligent Technology Co ltd
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 Shanghai Houmo Intelligent Technology Co ltd filed Critical Shanghai Houmo Intelligent Technology Co ltd
Priority to CN202210702716.0A priority Critical patent/CN115035384B/zh
Publication of CN115035384A publication Critical patent/CN115035384A/zh
Application granted granted Critical
Publication of CN115035384B publication Critical patent/CN115035384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本公开实施例公开了一种数据处理方法、装置和芯片,其中,该方法包括:获取N个周期输入的N个特征值;对N个特征值进行重排序,得到针对N个特征值的P个排列顺序;对P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率;基于P个平均翻转率,从P个排列顺序中确定目标排列顺序;基于所述目标排列顺序,对N个特征值进行数据处理。本公开实施例可以提升卷积运算的能效比。

Description

数据处理方法、装置和芯片
技术领域
本公开涉及深度学习技术领域,尤其是一种数据处理方法、装置和芯片。
背景技术
随着深度学习的飞速发展,对处理器的性能要求也变得越来越高,随之涌现出了很多针对神经网络加速设计的人工智能(Artificial Intelligence,AI)芯片。卷积运算在存算一体的AI芯片设计中也广泛应用。卷积运算是指从图像的左上角开始,开一个与模板同样大小的活动窗口,窗口图像与模板像元对应起来相乘再相加,并用计算结果代替窗口中心的像元亮度值。然后,活动窗口向右移动一列,并作同样的运算。以此类推,从左到右、从上到下,即可得到一幅新图像。
AI芯片除了对频率性能有较高的要求外,对低功耗的要求也非常高,卷积运算作为AI芯片设计中的主要运算模式,卷积运算的方式和新型存算设计即存算一体设计的计算方式非常吻合,所以,卷积运算在存算一体的AI芯片设计中也广泛应用。因此适用于卷积运算模式下的低功耗设计方法就尤其重要。能效比是指单位功耗下的性能,是卷积运算的AI芯片设计中非常值的关注和优化的指标,常用单位为TOPS/W,即每瓦特在每秒能进行多少万亿次计算操作。如何提升AI芯片在卷积运算时的能耗比,是一个亟待解决的问题。
发明内容
本公开的发明人进行大量创造性的劳动发现,在使用卷积神经网络进行卷积运算时,对相邻两个周期进行卷积运算的能耗比,与该相邻两个周期的特征值的二进制数值相同位之间的翻转率相关。
基于以上认识,提出了本公开。
本公开实施例提供一种数据处理方法、装置和芯片,以提升AI芯片的能耗比。
本公开实施例的第一方面,提供一种方法,包括:
获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;
对所述N个特征值进行重排序,得到针对所述N个特征值的P个排列顺序,其中,所述P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;
对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于所述P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;
基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,其中,所述目标排列顺序的平均翻转率小于等于所述初始排列顺序的平均翻转率;
基于所述目标排列顺序,对所述N个特征值进行运算处理。
根据本公开的一个实施例,所述基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,包括:
将所述P个平均翻转率中最小平均翻转率对应的排列顺序,确定为所述目标排列顺序。
根据本公开的一个实施例,所述基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,包括:
获取所述初始排列顺序的平均翻转率;
从所述重排序生成的P-1个排列顺序中选择第一排列顺序,计算所述第一排列顺序的平均翻转率;
若所述第一排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第一排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,在所述从所述重排序生成的P-1个排列顺序中选择第一排列顺序,计算所述第一排列顺序的平均翻转率之后,还包括:
若所述第一排列顺序的平均翻转率大于等于所述初始排列顺序的平均翻转率,则从所述重排序P-1个排列顺序中选择第二排列顺序,计算所述第二排列顺序的平均翻转率,其中,所述第二排列顺序与所述第一排列顺序不同;
若所述第二排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第二排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,所述获取N个周期输入的N个特征值,包括:
获取目标图像;
利用卷积神经网络对所述目标图像进行处理,得到所述N个周期输入的N个特征值。
根据本公开的一个实施例,所述基于所述目标排列顺序,对N个特征值进行数据处理,包括:
基于所述目标排列顺序和所述初始排列顺序,确定所述目标排列顺序的权重位移;
基于所述目标排列顺序的权重位移,对所述N个特征值进行乘加运算。
本公开实施例的第二方面,提供一种数据处理装置,包括:
获取模块,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;
排列顺序确定模块,用于对所述N个特征值进行重排序,生成针对所述N个特征值的P个排列顺序,其中,所述P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;
平均翻转率确定模块,用于对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于所述P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;
目标排列顺序确定模块,用于基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序;
特征值处理模块,用于基于所述目标排列顺序,对所述N个特征值进行运算处理。
根据本公开的一个实施例,所述目标排列顺序确定模块用于将所述P个平均翻转率中最小平均翻转率对应的排列顺序,确定为所述目标排列顺序。
根据本公开的一个实施例,所述目标排列顺序确定模块用于获取所述初始排列顺序的平均翻转率;所述目标排列顺序确定模块还用于从所述重排序生成的P-1个排列顺序中选择第一排列顺序,计算所述第一排列顺序的平均翻转率;若所述第一排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第一排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,所述目标排列顺序确定模块用于若所述第一排列顺序的平均翻转率大于等于所述初始排列顺序的平均翻转率,则从所述重排序生成的P-1个排列顺序中选择第二排列顺序,计算所述第二排列顺序的平均翻转率,其中,所述第二排列顺序与所述第一排列顺序不同;若所述第二排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第二排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,所述获取模块用于获取目标图像,并利用卷积神经网络对所述目标图像进行处理,得到所述N个周期输入的N个特征值。
根据本公开的一个实施例,所述特征值处理模块用于基于所述目标排列顺序和所述初始排列顺序,确定所述目标排列顺序的权重位移;所述特征值处理模块还用于基于所述目标排列顺序的权重位移,对所述N个特征值进行乘加运算。
本公开实施例的第三方面,提供一种芯片,包括调整单元和计算单元,其中:
所述调整单元,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;对所述N个特征值进行重排序,得到针对所述N个特征值的P个排列顺序,其中,P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,并基于目标排列顺序将所述N个特征值输入所述计算单元,其中,所述目标排列顺序的平均翻转率小于等于所述初始排列顺序的平均翻转率;
所述计算单元,用于基于所述目标排列顺序,对N个特征值进行运算处理。
根据本公开的一个实施例,所述调整单元用于将所述P个平均翻转率中最小平均翻转率对应的排列顺序,确定为所述目标排列顺序。
根据本公开的一个实施例,所述调整单元用于获取所述初始排列顺序的平均翻转率;所述调整单元还用于从所述重排序生成的P-1个排列顺序中选择第一排列顺序,计算所述第一排列顺序的平均翻转率;所述调整单元还用于若所述第一排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第一排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,所述调整单元用于若所述第一排列顺序的平均翻转率大于等于所述初始排列顺序的平均翻转率,则从所述重排序生成的P-1个排列顺序中选择第二排列顺序,计算所述第二排列顺序的平均翻转率,其中,所述第二排列顺序与所述第一排列顺序不同;所述调整单元还用于若所述第二排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第二排列顺序确定为所述目标排列顺序。
根据本公开的一个实施例,所述调整单元用于获取目标图像,并利用卷积神经网络对所述目标图像进行处理,得到所述N个周期输入的N个特征值。
根据本公开的一个实施例,所述计算单元用于基于所述目标排列顺序和所述初始排列顺序,确定所述目标排列顺序的权重位移;所述计算单元用于基于所述目标排列顺序的权重位移,对所述N个特征值进行乘加运算。
本公开实施例的第四方面,提供一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述第一方面所述的数据处理方法。
本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述第一方面所述的数据处理方法。
本公开实施例的数据处理方法和装置,可以在使用卷积神经网络对图像进行处理的过程中,如果获取到N个周期输入的N个特征值时,对N个特征值进行重排序,得到针对N个特征值的P个排列顺序,对P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,基于P个平均翻转率,从P个排列顺序中确定目标排列顺序,进而基于目标排列顺序,对N个特征值进行数据处理。本公开实施例通过调整卷积运算中特征值的排序,可以降低相邻周期特征值的二进制数值相同位之间的平均翻转率,进而可以提升卷积运算的能效比。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开一个示例中特征值的翻转率与能效比关系的仿真结果示意图;
图2为本公开一个实施例中数据处理方法的流程示意图;
图3为本公开一个实施例中数据处理装置的结构框图;
图4为本公开一个实施例中电子设备的结构框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本公开的发明人经过大量创造性的劳动发现:AI芯片卷积运算中常见的特征值有8比特二进制数据,该8比特二进制特征数通过8个时钟周期逐一由高位到低位或由低位到高位输入AI芯片计算单元进行卷积运算。8个周期完成一次完整特征数的卷积计算,并可以得到一次完整特征数计算的能效比。仿真发现,AI芯片在卷积运算中的能效比与一次完整特征值计算的8个周期中每相邻两个周期的特征值的二进制数据相同位之间翻转率有强相关联。
示例性地,当相邻两个周期的特征值的二进制数值分别为0101和1001时,二进制数据从左数第1-2位的数值发生了翻转,从左数第3-4位的数值未发生翻转,此时翻转率为50%;当相邻两个周期的特征值的二进制数值分别为0101和1010时,二进制数值的所有数位均发生了翻转,此时翻转率为100%。
图1为本公开一个示例中特征值的二进制数值相同位的翻转率与能效比关系的仿真结果示意图。如图1所示,当相邻两个周期特征值的二进制数值相同位之间的翻转率分别为10%、30%、50%、70%和90%时,对应的能耗比分别是16.12TOPS/W、12.90TOPS/W、10.70TOPS/W、8.03TOPS/W和6.82TOPS/W。由此可见,相邻两个周期的特征值的二进制数值相同位之间的翻转率越高,则对该相邻两个周期进行卷积运算的能耗比越低。
基于以上认识,提出了本公开。
图2为本公开一个实施例中数据处理方法的流程示意图。如图2所示,数据处理方法,包括:
S1:获取N个周期输入的N个特征值(Feature)。其中,每个周期输入一个特征值,N个特征值均为N比特的二进制数据,N为大于1的整数。
可以将图像输入到卷积神经网络中进行处理,得到N个特征值。将N个特征值用N个周期进行输入,每个周期输入一个特征值。
S2:对N个特征值进行重排序,得到针对N个特征值的P个排列顺序,其中,P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数,例如P可以为N的阶乘。
在本公开的一个示例中,N为8,即8个时钟周期分别输入8比特二进制数据,初始排列顺序如表1所示。
表1
在表1中,NNIN表示卷积输入。在初始排列顺序中:
周期7与周期6的翻转率为:12.5%(仅在NNIN2发生了翻转);
周期6与周期5的翻转率为:62.5%(在NNIN0-NNIN2和NNIN4-NNIN5发生了翻转);
周期5与周期4的翻转率为:62.5%;
周期4与周期3的翻转率为:62.5%;
周期3与周期2的翻转率为:37.5%;
周期2与周期1的翻转率为:75%;
周期1与周期0的翻转率为:62.5%;
平均翻转率:53.6%([1+5+5+5+3+6+5]/[7*8])。
对初始排列顺序进行P-1次重排序,生成P-1个排列顺序,再加上初始排列顺序,共P个排列顺序。
S3:对P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率。其中,对于P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率。
在本公开的一个示例中,重排序生成的某个排列顺序如表2所示。
NNIN 二进制特征值 周期7 周期6 周期4 周期2 周期3 周期0 周期5 周期1
0 11010110 1 1 1 1 0 0 0 1
1 11010100 1 1 1 1 0 0 0 0
2 10101101 1 0 0 1 1 1 1 0
3 11111101 1 1 1 1 1 1 1 0
4 11011101 1 1 1 1 1 1 0 0
5 11001000 1 1 0 0 1 0 0 0
6 11100011 1 1 0 0 0 1 1 1
7 11110010 1 1 1 0 0 0 1 1
表2
在该排列顺序中:
周期7与周期6的翻转率为:12.5%;
周期6与周期4的翻转率为:25%;
周期4与周期2的翻转率为:25%;
周期2与周期3的翻转率为:37.5%;
周期3与周期0的翻转率为:25%;
周期0与周期5的翻转率为:25%;
周期5与周期1的翻转率为:37.5%;
平均翻转率:26.8%。
S4:基于P个平均翻转率,从P个排列顺序中确定目标排列顺序。其中,目标排列顺序的平均翻转率小于等于初始排列顺序的平均翻转率。
可以基于P个平均翻转率中的平均翻转率值的大小关系确定目标平均翻转率,进而将目标平均翻转率对应的排列顺序确定为目标排列顺序。
S5:基于目标排列顺序,对N个特征值进行运算处理。
对于卷积运算而言,可以对N个特征值进行乘加运算处理。需要说明的是,在基于目标排列顺序对N个特征值进行数据处理时,需要保证数据处理结果与基于初始排列顺序对N个特征值进行数据处理的结果一致。
在本实施例中,通过调整卷积运算中特征值的排序,可以降低相邻周期特征值的二进制数值相同位之间的平均翻转率,进而可以提升卷积运算的能效比。
在本公开的一个实施例中,步骤S4可以包括:
S4-A:将P个平均翻转率中最小平均翻转率对应的排列顺序,确定为目标排列顺序。
在本实施例中,在重排列产生的所有排列顺序和初始排列顺序中选择平均翻转率最小的排列顺序,可以最大化提升能效比。
在本公开的另一个实施例中,步骤S4可以包括:
S4-B-1:获取初始排列顺序的平均翻转率。
当初始排列顺序为表1所示时,初始排列顺序的平均翻转率为53.6%。
S4-B-2:从重排序生成的P-1个排列顺序中选择第一排列顺序,计算第一排列顺序的平均翻转率。
当第一排列顺序为表2所示时,第一排列顺序的平均翻转率为26.8%。
S4-B-3:若第一排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第一排列顺序确定为目标排列顺序。
在本实施例中,当重排序生成的第一排列顺序的平均翻转率小于初始排列顺序的平均翻转率时,按照第一排列顺序进行数据处理,相对于按照初始排列顺序进行数据处理,可以提升卷积运算的能效比。
在本公开的一个实施例中,在步骤S4-B-2之后,还可以包括:
S4-B-4:若第一排列顺序的平均翻转率大于等于初始排列顺序的平均翻转率,则从重排序P-1个排列顺序中选择第二排列顺序,计算第二排列顺序的平均翻转率。其中,第二排列顺序与所述第一排列顺序不同。
当第一排列顺序的平均翻转率大于等于初始排列顺序的平均翻转率时,按照第一排列顺序进行数据处理,相对于按照初始排列顺序进行数据处理而言,并不能提升卷积运算的能效比,此时需要再次从重排序生成的P-1个排列顺序中选择除第一排列顺序之外的第二排列顺序,并计算第二排列顺序的平均翻转率。
S4-B-5:若第二排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第二排列顺序确定为目标排列顺序。
在本实施例中,当第一排列顺序的平均翻转率大于等于初始排列顺序的平均翻转率时,在重排序生成的P-1个排列顺序中选择第二排列顺序,当第二排列顺序的平均翻转率小于初始排列顺序的平均翻转率时,将第二排列顺序确定为目标排列顺序,以便按照第二排列顺序进行数据处理,可以提升卷积运算的能效比。
在本公开的一个实施例中,步骤S1可以包括:获取目标图像;利用卷积神经网络对目标图像进行处理,得到N个周期输入的N个特征值。需要说明的是,利用卷积神经网络对目标图像进行处理得到N个特征值,将N个特征值用N个周期进行输入的方式,与现有的卷积神经网络的处理方式类似,不做赘述。
在本实施例中,通过排列顺序的平均翻转率确定最终的排列顺序,进而进行数据处理的方式可以应用但不限于卷积神经网路,当应用于卷积神经网络时可以提升卷积运算的能效比。
在本公开的一个实施例中,步骤S5可以包括:
S5-1:基于目标排列顺序和初始排列顺序,确定目标排列顺序的权重(Weight)位移。
在本公开的一个示例中,初始排列顺序和权重位移如表3所示。
表3
在表3中,周期2相对于周期3的权重,向左移动1位,在最右侧补了一个0;周期1相对于周期3的权重,向左移动2位,在最右侧补了2个0;周期0相对于周期3的权重,向左移动3位,在最右侧补了3个0。
当目标排列顺序为周期3、周期1、周期0和周期2时,目标排列顺序和权重位移如表4所示。
表4
在表4中,周期1相对于周期3的权重,向左移动2位,在最右侧补了2个0;周期0相对于周期3的权重,向左移动3位,在最右侧补了3个0;周期2相对于周期3的权重,向左移动1位,在最右侧补了一个0。
S5-2:基于目标排列顺序的权重位移,对N个特征值进行乘加运算。
通过表3和表4可知,当目标排列顺序与初始排列顺序不一致时,通过调整权重位移,在进行卷积运算时可以使得最终的运算结果不变。
在本实施例中,当目标排列顺序与初始排列顺序不一致时,通过调整权重位移,可以在提升能效比的同时保证运算结果准确。
图3为本公开一个实施例中数据处理装置的结构框图。如图3所示,数据处理装置,包括:
获取模块100,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;
排列顺序确定模块200,用于对N个特征值进行重排序,生成针对N个特征值的P个排列顺序,其中,P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;
平均翻转率确定模块300,用于对P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;
目标排列顺序确定模块400,用于基于P个平均翻转率,从P个排列顺序中确定目标排列顺序,其中,目标排列顺序的平均翻转率小于等于初始排列顺序的平均翻转率;
特征值处理模块500,用于基于目标排列顺序,对N个特征值进行运算处理。
在本公开的一个实施例中,目标排列顺序确定模块400用于将P个平均翻转率中最小平均翻转率对应的排列顺序,确定为目标排列顺序。
在本公开的一个实施例中,目标排列顺序确定模块400用于获取初始排列顺序的平均翻转率;目标排列顺序确定模块400还用于从重排序生成的P-1个排列顺序中选择第一排列顺序,计算第一排列顺序的平均翻转率;若第一排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第一排列顺序确定为目标排列顺序。
在本公开的一个实施例中,目标排列顺序确定模块400用于若第一排列顺序的平均翻转率大于等于初始排列顺序的平均翻转率,则从重排序P-1个排列顺序中选择第二排列顺序,计算第二排列顺序的平均翻转率,其中,第二排列顺序与第一排列顺序不同;若第二排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第二排列顺序确定为目标排列顺序。
在本公开的一个实施例中,获取模块100用于获取目标图像,并利用卷积神经网络对目标图像进行处理,得到N个周期输入的N个特征值。
在本公开的一个实施例中,特征值处理模块500用于基于目标排列顺序和初始排列顺序,确定目标排列顺序的权重位移;特征值处理模块500还用于基于目标排列顺序的权重位移,对N个特征值进行乘加运算。
需要说明的是,本公开实施例的数据处理装置的具体实施方式与本公开实施例的数据处理方法的具体实施方式类似,具体参见数据处理方法部分的描述,为了减少冗余,不作赘述。
本公开实施例还提供了一种芯片,例如GPU、FPGA或ASIC。该芯片包括调整单元和计算单元,其中:
调整单元,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;对N个特征值进行重排序,得到针对N个特征值的P个排列顺序,其中,P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;对P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;基于P个平均翻转率,从P个排列顺序中确定目标排列顺序,并基于目标排列顺序将N个特征值输入计算单元,其中,目标排列顺序的平均翻转率小于等于初始排列顺序的平均翻转率;
计算单元,用于基于目标排列顺序,对N个特征值进行运算据处理。
在本公开的一个实施例中,调整单元用于将P个平均翻转率中最小平均翻转率对应的排列顺序,确定为目标排列顺序。
在本公开的一个实施例中,调整单元用于获取初始排列顺序的平均翻转率;调整单元还用于从重排序生成的P-1个排列顺序中选择第一排列顺序,计算第一排列顺序的平均翻转率;调整单元还用于若第一排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第一排列顺序确定为目标排列顺序。
在本公开的一个实施例中,调整单元用于若第一排列顺序的平均翻转率大于等于初始排列顺序的平均翻转率,则从重排序生成的P-1个排列顺序中选择第二排列顺序,计算第二排列顺序的平均翻转率,其中,第二排列顺序与第一排列顺序不同;调整单元还用于若第二排列顺序的平均翻转率小于初始排列顺序的平均翻转率,则将第二排列顺序确定为目标排列顺序。
在本公开的一个实施例中,调整单元用于获取目标图像,并利用卷积神经网络对目标图像进行处理,得到N个周期输入的N个特征值。
在本公开的一个实施例中,计算单元用于基于目标排列顺序和初始排列顺序,确定目标排列顺序的权重位移;计算单元用于基于目标排列顺序的权重位移,对N个特征值进行乘加运算。
另外,本公开实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的数据处理方法。
图4为本公开一个实施例中电子设备的结果框图。下面,参考图4来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
如图4所示,电子设备包括一个或多个处理器和存储器。
处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现上文所述的本公开的各个实施例的数据处理方法以及/或者其他期望的功能。
在一个示例中,电子设备还可以包括:输入装置和输出装置,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入设备还可以包括例如键盘、鼠标等等。
该输出装置可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图4中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的数据处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的数据处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;
对所述N个特征值进行重排序,得到针对所述N个特征值的P个排列顺序,其中,所述P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;
对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于所述P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;
基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,其中,所述目标排列顺序的平均翻转率小于等于所述初始排列顺序的平均翻转率;
基于所述目标排列顺序,对所述N个特征值进行运算处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,包括:
将所述P个平均翻转率中最小平均翻转率对应的排列顺序,确定为所述目标排列顺序。
3.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,包括:
获取所述初始排列顺序的平均翻转率;
从所述重排序生成的P-1个排列顺序中选择第一排列顺序,计算所述第一排列顺序的平均翻转率;
若所述第一排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第一排列顺序确定为所述目标排列顺序。
4.根据权利要求3所述的数据处理方法,其特征在于,在所述从所述重排序生成的P-1个排列顺序中选择一个排列顺序作为第一排列顺序,计算所述第一排列顺序的平均翻转率之后,还包括:
若所述第一排列顺序的平均翻转率大于等于所述初始排列顺序的平均翻转率,则从所述重排序生成的P-1个排列顺序中选择第二排列顺序,计算所述第二排列顺序的平均翻转率,其中,所述第二排列顺序与所述第一排列顺序不同;
若所述第二排列顺序的平均翻转率小于所述初始排列顺序的平均翻转率,则将所述第二排列顺序确定为所述目标排列顺序。
5.根据权利要求1-4任一项所述的数据处理方法,其特征在于,所述获取N个周期输入的N个特征值,包括:
获取目标图像;
利用卷积神经网络对所述目标图像进行处理,得到所述N个周期输入的N个特征值。
6.根据权利要求5所述的数据处理方法,其特征在于,所述基于所述目标排列顺序,对所述N个特征值进行运算处理,包括:
基于所述目标排列顺序和所述初始排列顺序,确定所述目标排列顺序的权重位移;
基于所述目标排列顺序的权重位移,对所述N个特征值进行乘加运算。
7.一种数据处理装置,其特征在于,包括:
获取模块,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;
排列顺序确定模块,用于对所述N个特征值进行重排序,生成针对所述N个特征值的P个排列顺序,其中,所述P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;
平均翻转率确定模块,用于对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于所述P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;
目标排列顺序确定模块,用于基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,其中,所述目标排列顺序的平均翻转率小于等于所述初始排列顺序的平均翻转率;
特征值处理模块,用于基于所述目标排列顺序,对N个特征值进行运算处理。
8.一种芯片,其特征在于,包括调整单元和计算单元,其中:
所述调整单元,用于获取N个周期输入的N个特征值,其中,每个周期输入一个特征值,N为大于1的整数;对所述N个特征值进行重排序,得到针对所述N个特征值的P个排列顺序,其中,P个排列顺序包括初始排列顺序和重排序生成的P-1个排列顺序,P为大于2的整数;对所述P个排列顺序分别进行平均翻转率计算,得到P个平均翻转率,其中,对于P个排列顺序中的每个排列顺序,计算每两个相邻特征值的二进制数值相同位之间的翻转率得到每个排列顺序的平均翻转率;基于所述P个平均翻转率,从所述P个排列顺序中确定目标排列顺序,并基于目标排列顺序将所述N个特征值输入所述计算单元,其中,所述目标排列顺序的平均翻转率小于等于所述初始排列顺序的平均翻转率;
所述计算单元,用于基于所述目标排列顺序,对所述N个特征值进行运算处理。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-6任一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-6任一项所述的数据处理方法。
CN202210702716.0A 2022-06-21 2022-06-21 数据处理方法、装置和芯片 Active CN115035384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210702716.0A CN115035384B (zh) 2022-06-21 2022-06-21 数据处理方法、装置和芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210702716.0A CN115035384B (zh) 2022-06-21 2022-06-21 数据处理方法、装置和芯片

Publications (2)

Publication Number Publication Date
CN115035384A CN115035384A (zh) 2022-09-09
CN115035384B true CN115035384B (zh) 2024-05-10

Family

ID=83124033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210702716.0A Active CN115035384B (zh) 2022-06-21 2022-06-21 数据处理方法、装置和芯片

Country Status (1)

Country Link
CN (1) CN115035384B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906735B (zh) * 2023-01-06 2023-05-05 上海后摩智能科技有限公司 基于模拟信号的多比特数存算一体电路、芯片及计算装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948774A (zh) * 2019-01-25 2019-06-28 中山大学 基于网络层捆绑运算的神经网络加速器及其实现方法
CN110555512A (zh) * 2019-07-30 2019-12-10 北京航空航天大学 一种二值卷积神经网络数据重用方法及装置
CN110688813A (zh) * 2019-08-19 2020-01-14 上海亿算科技有限公司 降低芯片逻辑翻转率的方法及结构
CN112200295A (zh) * 2020-07-31 2021-01-08 厦门星宸科技有限公司 稀疏化卷积神经网络的排序方法、运算方法、装置及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9846612B2 (en) * 2015-08-11 2017-12-19 Qualcomm Incorporated Systems and methods of memory bit flip identification for debugging and power management
CN110991634B (zh) * 2019-12-04 2022-05-10 腾讯科技(深圳)有限公司 人工智能加速器、设备、芯片及数据处理方法
CN111583940A (zh) * 2020-04-20 2020-08-25 东南大学 极低功耗关键词唤醒神经网络电路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109948774A (zh) * 2019-01-25 2019-06-28 中山大学 基于网络层捆绑运算的神经网络加速器及其实现方法
CN110555512A (zh) * 2019-07-30 2019-12-10 北京航空航天大学 一种二值卷积神经网络数据重用方法及装置
CN110688813A (zh) * 2019-08-19 2020-01-14 上海亿算科技有限公司 降低芯片逻辑翻转率的方法及结构
CN112200295A (zh) * 2020-07-31 2021-01-08 厦门星宸科技有限公司 稀疏化卷积神经网络的排序方法、运算方法、装置及设备

Also Published As

Publication number Publication date
CN115035384A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
CN112074806B (zh) 用于块浮点计算的系统、方法和计算机存储介质
Ji et al. A hardware implementation of a radial basis function neural network using stochastic logic
US10379816B2 (en) Data accumulation apparatus and method, and digital signal processing device
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
Cai et al. Rapid robust principal component analysis: CUR accelerated inexact low rank estimation
US20190266474A1 (en) Systems And Method For Character Sequence Recognition
Gong et al. Efficient nonnegative matrix factorization via projected Newton method
US10884736B1 (en) Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing
CN115035384B (zh) 数据处理方法、装置和芯片
CN113076083B (zh) 数据乘加运算电路
US11321049B2 (en) Fast binary counters based on symmetric stacking and methods for same
US20230135109A1 (en) Method for processing signal, electronic device, and storage medium
CN111783033A (zh) 一种数据稀疏投影算法、系统、电子装置及存储介质
CN106682258A (zh) 一种高层次综合工具中的多操作数加法优化方法及系统
Harrison et al. High performance rearrangement and multiplication routines for sparse tensor arithmetic
US20200134434A1 (en) Arithmetic processing device, learning program, and learning method
WO2023124371A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
CN114239803B (zh) 神经网络模型的编译方法和装置、电子设备和存储介质
US11270208B2 (en) Neural network batch normalization optimization method and apparatus
CN113642722A (zh) 用于卷积计算的芯片及其控制方法、电子装置
Vandebril et al. A QR–method for computing the singular values via semiseparable matrices
US20190073584A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
WO2020072619A1 (en) Addressing bottlenecks for deep neural network execution of a graphics processor unit
Shanmugakumar et al. Energy Efficient Hardware Architecture for Matrix Multiplication
TWI777659B (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
GR01 Patent grant
GR01 Patent grant