CN107977229A - 一种指令生成过程的复用方法及装置、处理装置 - Google Patents
一种指令生成过程的复用方法及装置、处理装置 Download PDFInfo
- Publication number
- CN107977229A CN107977229A CN201711247175.2A CN201711247175A CN107977229A CN 107977229 A CN107977229 A CN 107977229A CN 201711247175 A CN201711247175 A CN 201711247175A CN 107977229 A CN107977229 A CN 107977229A
- Authority
- CN
- China
- Prior art keywords
- instruction
- network
- hash value
- layer network
- layer
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 title claims abstract description 42
- 230000008569 process Effects 0.000 title claims abstract description 24
- 238000003860 storage Methods 0.000 claims description 40
- 230000007935 neutral effect Effects 0.000 claims description 33
- 238000013528 artificial neural network Methods 0.000 claims description 18
- 210000002364 input neuron Anatomy 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 210000004205 output neuron Anatomy 0.000 claims description 5
- 230000001934 delay Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 230000001537 neural effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 210000004218 nerve net Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 241001282153 Scopelogadus mizolepis Species 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- 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
-
- 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
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Hardware Redundancy (AREA)
- Image Analysis (AREA)
Abstract
一种指令生成过程的复用方法及装置、处理装置,所述复用方法包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。
Description
技术领域
本发明涉及人工神经网络技术领域,更具体地涉及一种指令生成过程的复用方法及装置、处理装置。
背景技术
人工神经网络是众多机器学习和模式识别算法中的佼佼者,在学术界和工业界都是目前的主流方向。然而,基于在小体积、低功耗的前提下实现高性能的新要求,传统的大规模神经网络和庞大的计算设备难以真正进入人们的日常生活,因此为神经网络设计的专用处理器成为新的潮流。
为神经网络加速器生成指令是一个相对繁琐的过程,尤其是在数据规模大、网络结构复杂的情况下。神经网络加速器的单条指令往往较长,同时受限于片上的计算和存储资源,较大的输入数据往往需要多条指令处理。此外,当下神经网络算法的明显趋势是网络层数越来越多、层规模越来越大。这些都导致神经网络加速器的指令生成愈发繁琐,甚至影响到硬件本身优势的发挥。
发明内容
鉴于现有方案存在的问题,为了克服上述现有技术方案的不足,本发明提出了一种指令生成过程的复用方法及装置、处理装置。
根据本发明的一个方面,提供了一种指令生成过程的复用方法,其中,包括:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。
根据本发明的另一个方面,提供了一种指令生成过程的复用装置,其中,包括:运行缓存装置,用于存放在前网络对应的Hash值;处理单元,用实现指令复用,以及指令存储装置,存储所述各层网络的指令,其中,所述处理单元执行:基于预设信息计算第i层网络的Hash值;以及判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。
根据本发明的再一个方面,提供一种处理装置,其包括:前述的复用装置;神经网络处理器;和/或通用处理器。
根据本发明的又一个方面,提供一种芯片,其中,所述芯片包括前述的处理装置。
根据本发明的进一步的一个方面,提供一种电子装置,其中,所述电子装置包括前述的芯片。
从上述技术方案可以看出,本发明具有以下有益效果:
(1)基于判别Hash值是否相同,实现了神经网络加速器的相同Hash值层网络的指令复用,削减了指令生成过程中重复指令的生成开销,减少了神经网络的总执行时间;
(2)使得神经网络加速器的硬件优势更加明显,其计算资源可以更充分地用于神经网络本身地计算,也降低了总功耗。
附图说明
图1为本发明实施例用于神经网络加速器指令生成过程的复用方法的流程图;
图2为本发明实施例用于神经网络加速器指令生成过程的复用装置的结构框图;
图3为本发明另一实施例用于神经网络加速器指令生成过程的复用装置的结构框图;
图4为本发明一实施例中处理装置的结构框图;
图5为本发明又一实施例中处理装置的结构框图;
图6为本发明再一实施例中处理装置的结构框图。
具体实施方式
本发明某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本发明的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本发明满足适用的法律要求。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明实施例提供了一种用于神经网络加速器指令生成过程的复用方法,通过神经网络加速器指令生成过程中的指令复用,削减了指令生成过程中重复指令的生成开销,减少了神经网络的总执行时间。
这里的“指令”指的是神经网络加速器运行过程中的操作码,用于指示神经网络加速器的硬件的每一步操作。Hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值就是Hash值。Hash值是一段数据唯一且极其紧凑的数值表示形式,因此只要神经网络的每一层可以用二进制码描述,那么就可以计算其Hash值,并且Hash值相同网络就一定一样,就可以复用之前生成的网络的指令。
具体的,该复用方法如附图1所示,包括以下具体步骤:
S101:开始;
神经网络加速器指令生成步骤开始;
S102:令i=1,i为神经网络加速器网络层序号,i为正整数。
本实施例中从第1层来开始执行,本领域技术人员可以理解的而是,网络神经加速器的指令生成并非限定必须从第1层开始执行,也可从后续的任何一层开始执行。
S103:计算第i层网络的Hash值,根据第i层网络的类型、规模等信息计算出相应的Hash值,Hash值通过给定的Hash函数计算得到。
其中网络类型有卷积、全连接、降采样、归一化层、激活等;网络规模包括网络输入大小、输出大小、采样窗口大小、采样窗口移动步长、采样窗口数目等。另外具体的信息还可以包括偏置项、随机项、运算类型等所有神经网络特性的描述参数。其中运算类型包括但不限于稀疏运算、稠密运算、1位运算、定点、浮点等运算类型。
以下以全连接层网络为例计算hash值:
假设该层网络是全连接层,层类型编码为01,层规模为输入9,输出9,那么该网络被编码为011001100110011001(编码顺序和宽度不固定,该处引用于举例),计算该二进制码的hash值,计算方式可以是MD5、SHA1等方法,计算出的hash值是011001。
S104:判断i是否大于等于a,a为正整数。针对第a层后的网络层来判别是否可以进行指令复用操作。本实施例中a优选为2。若结果为Y,即i大于等于a,则执行步骤S105,否则,结果为N,即i小于a,执行步骤S106。
S105:根据Hash值在Hash表中进行查找,Hash表存储在运行缓存装置中,其存储由第i层网络之前1个或多个层Hash值,用于后面各层的Hash值作对比。
如表1所示,Hash表一共包括5个域:层序号、层类型、层规模、Hash值和该层指令在指令存储装置的头地址。其中,前4个域用于前述查找判断单元确定是否可以复用,最后一个域用于后述被复用指令提取单元从指令存储装置中提取所需指令。
表1
层序号 | 层类型 | 层规模 | Hash值 | 头地址 |
1 | CONV | input(9,9),kernel(5,5),stride(1,1) | 9d28 | Ox10000000 |
若结果为Y,意味着第i层网络的Hash值存在于Hash表,这说明之前某层的类型和规模与本层完全一致,指令可以复用,则执行S108,否则,说明之前所有层的类型和规模与本层均不一致,指令不能复用,则执行S106。
S106:将第i层网络的Hash值及指令头地址存入Hash表中,存储在运行缓存装置中,执行S107。
S107:采用常规方式生成第i层网络指令;
这里的常规方式指的是神经网络加速器的硬件根据输入的神经网络的全部信息去生成一条或多条完整的二进制指令,这条二进制指令与硬件本身的指令集密切相关。一般来说硬件需要逐步解析输入的信息,将解析到的信息转化为指令的一个字段,最后这些字段逐步拼成一条或多条完成的二进制指令。
举例,假如输入的神经网络层是全连接层,输入9,输出9,32位定点运算,输出需要激活。那么“全连接层”会被解析为一个字段Z1,“输入9”被解析为字段Z2,“输出9”被解析为字段Z3,“32位定点运算”被解析为字段Z4,“输出需要激活”被解析为字段Z5,那么最终生成的二进制指令就是Z1~Z5的组合或是经过一定操作后的组合。
指令的生成不局限于上述的生成方式,因为指令生成确实与应用到的硬件的指令集密切相关。
S108:根据Hash值相应的指令头地址拷贝待复用指令,即调取该Hash值相应的指令,执行步骤S110;
S109:修改待复用指令,得到第i层网络指令,具体的根据本层(第i层)输入和输出数据的特点,在已拷贝的待复用指令上进行修改,具体为将待复用指令中涉及输入数据地址和输出数据地址之处修改为新层的相应值,得到本层需要的指令,执行步骤S110;
S110:存储第i层网络的指令,将第i层网络的指令存储在指令存储装置中;
S111:令i=i+1;
S112:判断i是否小于等于b,其中b为正整数,且b大于a,本实施例中b为神经网络加速器网络层数,若i小于等于b,即结果为Y,则返回S103,若i大于b,即结果为N,则执行S113;本发明中b的取值并非限于实施中的神经网络加速器网络层数,可以小于等于神经网络加速器网络层数。
S113:结束。
基于同样的发明构思,本发明实施例还提供了一种用于神经网络加速器指令生成过程的复用装置100,如图2所示,所述复用装置包括:指令复用控制装置1、运行缓存装置2以及复用指令生成装置3。
其中指令复用控制装置1,用于生成每层网络规模信息的Hash值,并判断是否需要指令复用;运行缓存装置2,用于存放每层网络规模信息的Hash值;复用指令生成装置3,用于在确定可以复用的情况下生成复用后的新指令。
具体的,指令复用控制装置1包括计算单元11和查找判断单元12,其中,计算单元11接收第i层网络的类型、规模等信息(神经网络层信息),计算出该层相应的Hash值,Hash值通过给定的Hash函数计算得到,并将第i层网络的Hash值发送至查找判断单元,查找判断单元12调取运行缓存装置中的Hash表,并根据当前层Hash值在Hash表中查着,确认当前层Hash值在Hash表中是否存在。若确认存在,在查找判断单元12将查找到的Hash值相应的层指令在指令存储装置的头地址发送给复用指令生成装置,进行指令复用。若确认不存在,则不进行指令复用,将当前层Hash值及其相应信息(包括生成的指令头地址)保存在至Hash表中,并采用常规的方式由指令生成装置4生成该层指令。
复用指令生成装置3接收到指令复用控制装置1发送的头地址,从指令存储装置读取相应层的全部指令,并根据本层(第i层)输入和输出数据的特点,在已拷贝的待复用指令上进行修改,具体为将待复用指令中涉及输入数据地址和输出数据地址之处修改为新层的相应值,得到本层需要的指令。
指令生成装置4生成的指令及指令修改单元32生成的指令均存储至指令存储装置5上。
各功能单元/模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。例如上述的计算单元11、查找判断单元12、运行缓存装置2、复用指令生成装置3、指令生成装置4以及指令存储装置5中的至少一个为硬件。举例而言,上述该些单元/装置均为硬件。
硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。例如上述的计算单元11、查找判断单元12、运行缓存装置2、复用指令生成装置3及指令生成装置4集成在一个处理单元10中,采用软件程序模块的形式实现上述功能模块的功能。此时复用装置100,如图3所示,包括处理单元10、运算缓存装置2、以及指令存储装置5,其中,处理单元10例如为一处理器,可以包括计算单元11、查找判断单元12、运行缓存装置2、复用指令生成装置3及指令生成装置4等功能模块。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明一实施例还提供一种处理装置,图4为本发明实施例中处理装置的结构框图,如图4所示,处理装置2000包括前述的复用装置100和神经网络处理器1000,神经网络处理器1000,例如为神经网络加速器,其包括:存储单元200、控制单元300、运算单元400,直接数据存取单元(DMA direct memory access)500、输入缓存单元600。
复用装置100从直接数据存取单元(DMA direct memory access)500获取第i层网络的类型、规模等信息(神经网络层信息)并生成指令,生成的指令可以输出至输入缓存单元600的指令缓存601,送往指令缓存的指令将按照芯片正常的工作方式即会被送往控制单元完成后续的指令执行过程,生成的指令还可以直接送到控制单元完成后续的指令执行过程。
复用装置100可以采用其本身的计算单元来计算获得相应层的Hash值,也可以调用神经网络处理器1000中的运算单元来实现上述计算,此时复用装置可以省去计算单元。
存储单元200主要用来存储神经网络的神经元,权值以及指令。其中存放权值时只存放非零权值以及非零权值的位置信息,存放量化的非零权值时只存放非零权值密码本和非零权值字典。控制单元300接收存储单元200发送的指令,经过译码后生成控制信息控制运算单元400。运算单元400,根据存储单元200中存储的指令对所述数据执行相应运算。
DMA500用于在所述存储单元200、输入缓存单元600和输出神经元缓存900中进行数据或者指令读写。
输入缓存单元600包括指令缓存601、非零权值密码本缓存602、非零权值字典缓存603、非零权值位置缓存604、输入神经元缓存605。
指令缓存601,用于存储专用指令;
非零权值密码本缓存602,用于缓存非零权值密码本;
非零权值字典缓存603,用于缓存非零权值权值字典;
非零权值位置缓存604,用于缓存非零权值位置数据;非零权值位置缓存将输入数据中每个连接权值一一对应到相应的输入神经元。
输入神经元缓存605,用于缓存输入到粗粒度选数单元的输入神经元。
神经网络处理器1000还包括预处理模块1001、查找表700、选数单元800以及输出神经元缓存900。
预处理模块1001对原始输入数据进行预处理,包括切分、高斯滤波、二值化、正则化、归一化等等,并将处理后的数据输入存储单元200。
查找表单元700用于解析量化后的神经网络的权值,其接收权值字典和权值密码本,经过查找操作获得权值,对于没量化的权值直接通过旁路传输给运算单元。
选数单元800用于接收输入神经元和非零权值位置信息,选择出需要进行计算的神经元。选数单元,用于接收输入神经元和非零权值位置信息,选出非零权值对应的神经元。也就是说:对于每个输出神经元数据,选数单元去除掉与该输出神经元数据没有对应的非零权值数据的输入神经元数据。
输出神经元缓900,用于缓存运算单元输出的输出神经元。
通过神经网络处理器指令生成过程中的指令复用,尽可能削减了指令生成过程中重复指令的生成开销,减少了神经网络的总执行时间,使得神经网络加速器的硬件优势更加明显。如果采用更大指令调度窗口,在此基础上的指令流水可以进一步减少存储资源的占用。
本发明又一实施例还提供一种处理装置,图5为本发明实施例中处理装置的结构框图,如图5所示,处理装置4000包括前述的复用装置100和通用处理器3000,其中通用处理器3000中包括运算单元。本实施例是一个指令复用装置100和通用处理器3000同时工作的使用场景。输入神经网络层信息可以直接输入指令复用装置,也可以输入通用处理器。指令复用装置接收输入神经网络层信息后可以选择在其内部的计算单元中计算出Hash值,也可以将信息导入通用处理器中,在通用处理器中的运算单元完成Hash值的计算,通用处理器计算出的Hash值将被输出回指令复用装置中存入Hash表,当指令复用单元100调用通用处理器中的运算单元来完成Hash值的计算时,指令复用单元100中的计算单元可以省略。
本发明再一实施例还提供一种处理装置,图6为本发明实施例中处理装置的结构框图,如图6所示,处理装置5000包括前述的复用装置100、通用处理器3000以及神经网络处理器2000,其中通用处理器3000和神经网络处理器2000中均包括运算单元。本实施例是一个指令复用装置100、通用处理器3000以及神经网络处理器2000同时工作的使用场景。指令复用装置接收输入神经网络层信息后可以选择在其内部的计算单元中计算出Hash值,还可以经通用处理器或是神经网络处理器中的运算单元计算得到相应层的Hash值,并将Hash值通过指令复用装置中Hash表的查询确认是否进行指令复用。若确认复用,查找得到Hash值相应的层指令的头地址,进行指令复用。若确认不复用,则不进行指令复用,将当前层Hash值及其相应信息(包括生成指令的头地址)保存在至Hash表中,并采用常规的方式生成该层指令,最后指令都输入神经网络处理器。当指令复用单元100调用通用处理器或神经网络处理器中的运算单元来完成Hash值的计算时,指令复用单元100中的计算单元可以省略。
处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。优选的,采用专用的神经网络处理器。
在一个实施例里,本发明公开了一个芯片,其包括了上述处理装置。
在一个实施例里,本发明公开了一个芯片封装结构,其包括了上述芯片。
在一个实施例里,本发明公开了一个板卡,其包括了上述芯片封装结构。
在一个实施例里,本发明公开了一个电子装置,其包括了上述板卡。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被承载在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (26)
1.一种指令生成过程的复用方法,其中,包括:
基于预设信息计算第i层网络的Hash值;以及
判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。
2.根据权利要求1所述的复用方法,其中,所述基于预设信息计算第i层网络的Hash值的步骤包括:
基于第i层网络的类型和/或规模信息计算第i层网络的Hash值。
3.根据权利要求1所述的复用方法,其中,在判断第i层网络的Hash值是否与在前网络对应的Hash值相同的步骤之前还包括:
建立Hash表存储各个在先网络对应的信息,对于每一在先网络,其对应的域包括:层序号、Hash值和相应层指令的头地址。
4.根据权利要求3所述的复用方法,其中,所述域还包括:层类型和/或层规模。
5.根据权利要求3所述的复用方法,其中,所述采用指令复用的方式生成第i层网络的指令包括:
根据Hash表中存储的Hash值相同的在前网络对应信息中的指令头地址拷贝待复用指令;
修改待复用指令生成第i层网络的指令。
6.根据权利要求3所述的复用方法,其中,若所述第i层网络的Hash值不存在于Hash表中,则将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。
7.根据权利要求1至6中任一所述的复用方法,其中,还包括:
存储所述第i层网络的指令。
8.根据权利要求3所述的复用方法,其中,在判断第i层网络的Hash值是否存在于Hash表中的步骤之前还包括:
判断i是否大于等于a,其中a为正整数,且a≥2:
若i≥a,则判断第i层网络的Hash值是否存在于Hash表中;
否则,将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。
9.根据权利要求7所述的复用方法,其中,在存储所述第i层网络的指令的步骤之后还包括:
令i=i+1,判断i是否小于等于b,其中b为正整数,且b>a:
若i≤b,则返回步骤计算第i层网络的Hash值;
否则,指令生成结束;
其中,b等于神经网络加速器网络层数。
10.根据权利要求1-9中任一所述的复用方法,其中,所述网络为人工神经网络。
11.一种指令生成过程的复用装置,其中,包括:
运行缓存装置(2),用于存放在前网络对应的Hash值;
处理单元(10),用实现指令复用,以及
指令存储装置(5),存储所述各层网络的指令,
其中,所述处理单元(10)执行:
基于预设信息计算第i层网络的Hash值;以及
判断第i层网络的Hash值是否与在前网络对应的Hash值相同,若相同,则利用Hash值相同的在前网络的指令采用指令复用的方式生成第i层网络的指令,其中i为正整数。
12.根据权利要求11所述的复用装置,其中,所述基于预设信息计算第i层网络的Hash值包括:
基于第i层网络的类型和/或规模信息计算第i层网络的Hash值。
13.根据权利要求11所述的复用装置,其中,运行缓存装置(2)还存储有Hash表,Hash表存储各个在先网络对应的信息,对于每一在先网络,其对应的域包括:层序号、Hash值和相应层指令的头地址。
14.根据权利要求13所述的复用装置,其中,所述域还包括:层类型和/或层规模。
15.根据权利要求13所述的复用装置,其中,所述处理单元(10)还执行以下步骤:
根据Hash表中存储的Hash值相同的在前网络对应信息中的指令头地址拷贝待复用指令;
修改待复用指令生成第i层网络的指令。
16.根据权利要求13所述的复用装置,其中,所述处理单元(10)还执行:
若所述第i层网络的Hash值不存在于Hash表中,则将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。
17.根据权利要求11-16中任一所述的复用装置,所述处理单元(10)还执行:
存储所述第i层网络的指令至所述指令存储装置(5)中。
18.根据权利要求13所述的复用装置,其中处理单元(10)在判断第i层网络的Hash值是否存在于Hash表中之前还执行:
判断i是否大于等于a,其中a为正整数,且a≥2:
若i≥a,则判断第i层网络的Hash值是否存在于Hash表中;
否则,将第i层网络Hash值及其指令头地址存入Hash表,并直接生成第i层网络的指令。
19.根据权利要求17所述的复用装置,其中处理单元(10)在存储所述第i层网络的指令至所述指令存储装置(5)中之后还执行:
令i=i+1,判断i是否小于等于b,其中b为正整数,且b>a:
若i≤b,则返回步骤计算第i层网络的Hash值;
否则,指令生成结束;
其中,b等于神经网络加速器网络层数。
20.根据权利要求11-19所述的复用装置,其中所述网络为人工神经网络。
21.一种处理装置,其包括:
权利要求11至20中任一项所述的复用装置;
神经网络处理器(2000);和/或
通用处理器(3000)。
22.根据权利要求21所述的处理装置,其中,所述神经网络处理器(2000)和通用处理器(3000)中的至少一个包括运算单元,所述复用装置调用所述运算单元来进行计算第i层网络的Hash值。
23.根据权利要求22所述的处理装置,其中,所述复用装置中去除计算功能。
24.根据权利要求21-23中的任一所述的处理装置,其中,所述神经网络处理器(2000)还包括:预处理模块(1001)、DMA(500)、存储单元(200)、输入缓存单元(600)、控制单元(300)、查找表(700)、选数单元(800)、运算单元(400)以及输出神经元缓存(900)中的至少一个,所述输入缓存单元包括指令缓存(601)、非零权值密码本缓存(602)、非零权值字典缓存(603)、非零权值位置缓存(604)、输入神经元缓存(605)中的至少一个。
25.一种芯片,其中,所述芯片包括权利要求21至24中任一所述的处理装置。
26.一种电子装置,其中,所述电子装置包括权利要求25所述的芯片。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2016110923727 | 2016-11-30 | ||
CN201611092372.7A CN106557332A (zh) | 2016-11-30 | 2016-11-30 | 一种指令生成过程的复用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977229A true CN107977229A (zh) | 2018-05-01 |
CN107977229B CN107977229B (zh) | 2023-05-16 |
Family
ID=58445732
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611092372.7A Pending CN106557332A (zh) | 2016-11-30 | 2016-11-30 | 一种指令生成过程的复用方法及装置 |
CN201711247175.2A Active CN107977229B (zh) | 2016-11-30 | 2017-11-30 | 一种指令生成过程的复用方法及装置、处理装置 |
CN201711247174.8A Active CN108008948B (zh) | 2016-11-30 | 2017-11-30 | 一种指令生成过程的复用装置及方法、处理装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611092372.7A Pending CN106557332A (zh) | 2016-11-30 | 2016-11-30 | 一种指令生成过程的复用方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711247174.8A Active CN108008948B (zh) | 2016-11-30 | 2017-11-30 | 一种指令生成过程的复用装置及方法、处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11263520B2 (zh) |
EP (1) | EP3550429B1 (zh) |
CN (3) | CN106557332A (zh) |
WO (2) | WO2018099151A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108008948A (zh) * | 2016-11-30 | 2018-05-08 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用装置及方法、处理装置 |
CN110503596A (zh) * | 2019-08-12 | 2019-11-26 | 北京中科寒武纪科技有限公司 | 视频处理方法、装置、电子设备以及计算机可读存储介质 |
CN111047021A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
WO2021000281A1 (en) * | 2019-07-03 | 2021-01-07 | Huaxia General Processor Technologies Inc. | Instructions for operating accelerator circuit |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734288B (zh) * | 2017-04-21 | 2021-01-29 | 上海寒武纪信息科技有限公司 | 一种运算方法及装置 |
CN109389210B (zh) * | 2017-08-09 | 2021-06-18 | 上海寒武纪信息科技有限公司 | 处理方法和处理装置 |
GB2568776B (en) * | 2017-08-11 | 2020-10-28 | Google Llc | Neural network accelerator with parameters resident on chip |
CN110968532B (zh) * | 2018-09-29 | 2021-09-21 | 上海寒武纪信息科技有限公司 | 数据传输方法及相关产品 |
CN111079925B (zh) * | 2018-10-19 | 2021-04-09 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN111079907B (zh) * | 2018-10-19 | 2021-01-26 | 安徽寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111915003B (zh) * | 2019-05-09 | 2024-03-22 | 深圳大普微电子科技有限公司 | 一种神经网络硬件加速器 |
JP6834097B1 (ja) * | 2020-05-15 | 2021-02-24 | エッジコーティックス ピーティーイー. リミテッド | 推論のニューラルネットワークアクセラレータのハードウェア固有分割 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6064660A (en) * | 1996-12-12 | 2000-05-16 | Optimay Corporation | GSM transceiver with portable protocol stack |
US6308320B1 (en) * | 1999-01-15 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking |
CN102165789A (zh) * | 2008-09-29 | 2011-08-24 | 诺基亚公司 | 实现物理载体和oma-bcast之间的适配的方法和系统 |
CN102662830A (zh) * | 2012-03-20 | 2012-09-12 | 湖南大学 | 一种基于动态二进制翻译框架的代码复用攻击检测系统 |
US20130336320A1 (en) * | 2012-06-15 | 2013-12-19 | Vivekanand Rangaraman | Systems and methods for reassembly of packets distributed across a cluster |
US20150098470A1 (en) * | 2013-10-04 | 2015-04-09 | Broadcom Corporation | Hierarchical hashing for longest prefix matching |
CN104750560A (zh) * | 2015-03-06 | 2015-07-01 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN105409150A (zh) * | 2013-10-31 | 2016-03-16 | 华为技术有限公司 | 无线通信系统中采用自适应分层调制实现均等差错保护的方法和节点 |
US9294282B1 (en) * | 2013-07-01 | 2016-03-22 | Amazon Technologies, Inc. | Cryptographically verified repeatable virtualized computing |
CN105719001A (zh) * | 2014-12-19 | 2016-06-29 | 谷歌公司 | 使用散列的神经网络中的大规模分类 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7882499B2 (en) * | 2005-10-24 | 2011-02-01 | Microsoft Corporation | Caching dynamically compiled code to storage |
US7831531B1 (en) * | 2006-06-22 | 2010-11-09 | Google Inc. | Approximate hashing functions for finding similar content |
KR100962653B1 (ko) * | 2008-07-24 | 2010-06-11 | 이화여자대학교 산학협력단 | 블룸 필터 및 복수 해싱 구조를 사용한 ip 주소 검색방법 및 장치 |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
CN101567006B (zh) * | 2009-05-25 | 2012-07-04 | 中兴通讯股份有限公司 | 一种数据库系统及分布式sql语句执行计划重用方法 |
US9009149B2 (en) * | 2011-12-06 | 2015-04-14 | The Trustees Of Columbia University In The City Of New York | Systems and methods for mobile search using Bag of Hash Bits and boundary reranking |
CN102546624A (zh) * | 2011-12-26 | 2012-07-04 | 西北工业大学 | 一种网络多路入侵检测防御方法及系统 |
US20130339649A1 (en) * | 2012-06-15 | 2013-12-19 | Intel Corporation | Single instruction multiple data (simd) reconfigurable vector register file and permutation unit |
US9449257B2 (en) * | 2012-12-04 | 2016-09-20 | Institute Of Semiconductors, Chinese Academy Of Sciences | Dynamically reconstructable multistage parallel single instruction multiple data array processing system |
JP6028567B2 (ja) * | 2012-12-28 | 2016-11-16 | 富士通株式会社 | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 |
US9141554B1 (en) * | 2013-01-18 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques |
US20140219279A1 (en) * | 2013-02-07 | 2014-08-07 | The Royal Institution For The Advancement Of Learning / Mcgill University | Methods and systems for network address lookup engines |
US9172756B2 (en) * | 2013-03-12 | 2015-10-27 | Cisco Technology, Inc. | Optimizing application performance in a network environment |
US9367454B2 (en) * | 2013-08-15 | 2016-06-14 | Applied Micro Circuits Corporation | Address index recovery using hash-based exclusive or |
US20150109024A1 (en) * | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
US9256549B2 (en) * | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US9385954B2 (en) * | 2014-03-31 | 2016-07-05 | Nicira, Inc. | Hashing techniques for use in a network environment |
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
CN104346440B (zh) * | 2014-10-10 | 2017-06-23 | 浙江大学 | 一种基于神经网络的跨媒体哈希索引方法 |
US9299347B1 (en) * | 2014-10-22 | 2016-03-29 | Google Inc. | Speech recognition using associative mapping |
US9626299B2 (en) * | 2015-05-01 | 2017-04-18 | Intel Corporation | Changing a hash function based on a conflict ratio associated with cache sets |
CN104834748B (zh) * | 2015-05-25 | 2018-08-03 | 中国科学院自动化研究所 | 一种利用基于深度语义排序哈希编码的图像检索方法 |
US9734436B2 (en) * | 2015-06-05 | 2017-08-15 | At&T Intellectual Property I, L.P. | Hash codes for images |
US11244225B2 (en) * | 2015-07-10 | 2022-02-08 | Samsung Electronics Co., Ltd. | Neural network processor configurable using macro instructions |
US10726328B2 (en) * | 2015-10-09 | 2020-07-28 | Altera Corporation | Method and apparatus for designing and implementing a convolution neural net accelerator |
US11216720B2 (en) * | 2015-10-08 | 2022-01-04 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that manages power consumption based on memory accesses per period |
US10346351B2 (en) * | 2015-10-08 | 2019-07-09 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with output buffer feedback and masking capability with processing unit groups that operate as recurrent neural network LSTM cells |
US11029949B2 (en) * | 2015-10-08 | 2021-06-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit |
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
CN105512273A (zh) * | 2015-12-03 | 2016-04-20 | 中山大学 | 一种基于可变长深度哈希学习的图像检索方法 |
US9979648B1 (en) * | 2015-12-28 | 2018-05-22 | Amazon Technologies, Inc. | Increasing entropy across routing table segments |
US10846591B2 (en) * | 2015-12-29 | 2020-11-24 | Synopsys, Inc. | Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks |
CN106991073B (zh) * | 2016-01-20 | 2020-06-05 | 中科寒武纪科技股份有限公司 | 用于向量运算的数据读写调度器及保留站 |
WO2017136081A1 (en) * | 2016-02-05 | 2017-08-10 | Google Inc. | Augmenting neural networks with hierarchical external memory |
GB201607713D0 (en) * | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
CA2990709C (en) * | 2016-05-26 | 2018-09-04 | The Governing Council Of The University Of Toronto | Accelerator for deep neural networks |
CN106126235B (zh) * | 2016-06-24 | 2019-05-07 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
US10528864B2 (en) * | 2016-08-11 | 2020-01-07 | Nvidia Corporation | Sparse convolutional neural network accelerator |
GB2554711B (en) * | 2016-10-06 | 2020-11-25 | Imagination Tech Ltd | Buffer addressing for a convolutional neural network |
US10482336B2 (en) * | 2016-10-07 | 2019-11-19 | Noblis, Inc. | Face recognition and image search system using sparse feature vectors, compact binary vectors, and sub-linear search |
US10043095B2 (en) * | 2016-10-10 | 2018-08-07 | Gyrfalcon Technology, Inc. | Data structure for CNN based digital integrated circuit for extracting features out of an input image |
US9940534B1 (en) * | 2016-10-10 | 2018-04-10 | Gyrfalcon Technology, Inc. | Digital integrated circuit for extracting features out of an input image based on cellular neural networks |
CN106557332A (zh) * | 2016-11-30 | 2017-04-05 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用方法及装置 |
US11036677B1 (en) * | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
WO2023030507A1 (zh) * | 2021-09-03 | 2023-03-09 | 寒武纪(西安)集成电路有限公司 | 编译优化方法、装置、计算机设备以及存储介质 |
-
2016
- 2016-11-30 CN CN201611092372.7A patent/CN106557332A/zh active Pending
-
2017
- 2017-08-31 WO PCT/CN2017/099936 patent/WO2018099151A1/zh unknown
- 2017-08-31 EP EP17875111.1A patent/EP3550429B1/en active Active
- 2017-11-30 CN CN201711247175.2A patent/CN107977229B/zh active Active
- 2017-11-30 CN CN201711247174.8A patent/CN108008948B/zh active Active
- 2017-12-15 WO PCT/CN2017/116627 patent/WO2018099490A1/zh active Application Filing
-
2019
- 2019-05-29 US US16/425,931 patent/US11263520B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6064660A (en) * | 1996-12-12 | 2000-05-16 | Optimay Corporation | GSM transceiver with portable protocol stack |
US6308320B1 (en) * | 1999-01-15 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking |
CN102165789A (zh) * | 2008-09-29 | 2011-08-24 | 诺基亚公司 | 实现物理载体和oma-bcast之间的适配的方法和系统 |
CN102662830A (zh) * | 2012-03-20 | 2012-09-12 | 湖南大学 | 一种基于动态二进制翻译框架的代码复用攻击检测系统 |
US20130336320A1 (en) * | 2012-06-15 | 2013-12-19 | Vivekanand Rangaraman | Systems and methods for reassembly of packets distributed across a cluster |
US9294282B1 (en) * | 2013-07-01 | 2016-03-22 | Amazon Technologies, Inc. | Cryptographically verified repeatable virtualized computing |
US20150098470A1 (en) * | 2013-10-04 | 2015-04-09 | Broadcom Corporation | Hierarchical hashing for longest prefix matching |
CN105409150A (zh) * | 2013-10-31 | 2016-03-16 | 华为技术有限公司 | 无线通信系统中采用自适应分层调制实现均等差错保护的方法和节点 |
CN105719001A (zh) * | 2014-12-19 | 2016-06-29 | 谷歌公司 | 使用散列的神经网络中的大规模分类 |
CN104750560A (zh) * | 2015-03-06 | 2015-07-01 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
Non-Patent Citations (2)
Title |
---|
叶峰: "数字电视复用调制器网管软件及单频网适配器软件的设计与实现" * |
周波;张源;杨珉;周曦;: "用代码缓存复用技术提升Android即时编译器效率" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108008948A (zh) * | 2016-11-30 | 2018-05-08 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用装置及方法、处理装置 |
CN108008948B (zh) * | 2016-11-30 | 2023-08-25 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用装置及方法、处理装置 |
CN111047021A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
CN111047021B (zh) * | 2018-10-12 | 2023-11-24 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
WO2021000281A1 (en) * | 2019-07-03 | 2021-01-07 | Huaxia General Processor Technologies Inc. | Instructions for operating accelerator circuit |
CN110503596A (zh) * | 2019-08-12 | 2019-11-26 | 北京中科寒武纪科技有限公司 | 视频处理方法、装置、电子设备以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190311251A1 (en) | 2019-10-10 |
EP3550429A1 (en) | 2019-10-09 |
CN108008948A (zh) | 2018-05-08 |
WO2018099151A1 (zh) | 2018-06-07 |
CN106557332A (zh) | 2017-04-05 |
CN108008948B (zh) | 2023-08-25 |
WO2018099490A1 (zh) | 2018-06-07 |
CN107977229B (zh) | 2023-05-16 |
EP3550429B1 (en) | 2021-10-06 |
US11263520B2 (en) | 2022-03-01 |
EP3550429A4 (en) | 2020-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977229A (zh) | 一种指令生成过程的复用方法及装置、处理装置 | |
CN106233224B (zh) | 多处理器片上系统中的能效感知热管理的方法和系统 | |
CN103959192B (zh) | 用于估算超越函数的数学电路 | |
CN107819569A (zh) | 登录信息的加密方法及终端设备 | |
CN107957976A (zh) | 一种计算方法及相关产品 | |
JP7110278B2 (ja) | 負荷を均衡化するための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム | |
Teshome et al. | Comprehensive mixed‐integer linear programming model for distribution system reconfiguration considering DGs | |
CN107402905A (zh) | 基于神经网络的计算方法及装置 | |
Singh et al. | Artificial Bee Colony algorithm with improved search mechanism | |
CN105095515A (zh) | 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备 | |
CN104778088B (zh) | 一种基于减少进程间通信开销的并行i/o优化方法与系统 | |
CN108255703A (zh) | 一种sql脚本的故障修复方法及其终端 | |
US10209765B2 (en) | Method for achieving low power consumption of three-dimensional measurement chip | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
Kang et al. | Low‐complexity twiddle factor generation for FFT processor | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
Abed et al. | Hybrid approach based on partial tag comparison technique and search methods to improve cache performance | |
CN107621972A (zh) | 大数据任务动态管理方法、装置及服务器 | |
US9459999B2 (en) | Memory control method for a computer system | |
CN110647516A (zh) | 文件副本存储方法、装置、可读存储介质及电子设备 | |
CN105630896A (zh) | 一种快速导入海量数据的方法 | |
Wang et al. | BFT: a placement algorithm for non‐rectangle task model in reconfigurable computing system | |
CN111831095A (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 |