CN111523655A - 处理装置及方法 - Google Patents
处理装置及方法 Download PDFInfo
- Publication number
- CN111523655A CN111523655A CN201910153980.1A CN201910153980A CN111523655A CN 111523655 A CN111523655 A CN 111523655A CN 201910153980 A CN201910153980 A CN 201910153980A CN 111523655 A CN111523655 A CN 111523655A
- Authority
- CN
- China
- Prior art keywords
- neural network
- voltage
- sparsity
- frequency
- operation result
- 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 45
- 238000012545 processing Methods 0.000 title claims abstract description 45
- 238000013528 artificial neural network Methods 0.000 claims description 346
- 210000002569 neuron Anatomy 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 39
- 210000004205 output neuron Anatomy 0.000 claims description 34
- 210000002364 input neuron Anatomy 0.000 claims description 33
- 210000004027 cell Anatomy 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000001105 regulatory effect Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001276 controlling effect Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 4
- 230000002035 prolonged effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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
-
- 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)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Power Sources (AREA)
Abstract
本公开提供一种处理装置和方法,所述装置用于计算获得电压频率控制信息,并根据电压频率控制信息调整处理装置的工作电压或工作频率。本申请实施例通过调整处理装置的工作频率和工作电压,有效降低处理装置的功耗并提升其稳定性,延长处理装置的使用寿命。
Description
技术领域
本公开涉及人工智能领域,具体涉及一种处理装置及方法。
背景技术
神经网络(neural network)已经获得了非常成功的应用。但是用神经网络处理器处理神经网络应用时会消耗巨大的能耗,包括访存能耗和计算能耗,电路中较大的电流使得神经网络处理器的稳定性和寿命降低,因此如何减少神经网络应用的能耗成为一个亟待解决的问题。
动态电压频率调整(Dynamic Voltage Frequency Scaling,DVFS)根据处理器的实时负载需求动态调整处理器的工作频率和工作电压,从而降低芯片功耗。但是传统的DVFS并没有考虑到神经网络的拓扑结构,网络规模,容错能力等特性,对于神经网络应用不能有效降低芯片功耗,因此如何结合神经网络的特性进一步扩大频率和电压调整范围从而进一步降低处理神经网络的功耗成为一个亟待解决的问题。
公开内容
有鉴于此,本公开的目的在于提供一种处理装置及方法,通过神经网络相关参数运算获得电压频率控制信息,以达到根据电压频率控制信息调整处理装置的工作电压或工作频率的目的,有效降低处理装置的功耗并提升其稳定性,延长处理装置的使用寿命。
为了解决上述技术问题,本申请实施例第一方面提供了一种处理装置,所述装置包括调压调频装置和运算装置,所述调频调压装置和所述运算装置连接,其中:
所述运算装置,用于进行神经网络运算;
所述调压调频装置,用于获取所述运算装置中的神经网络相关参数,并根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
本申请实施例第二方面提供了一种芯片,包括第一方面提供的处理装置。
本申请实施例第三方面提供了一种芯片封装结构,该封装结构包括上述第二方面所述的芯片;
本申请实施例第四方面提供了一种板卡,该板卡包括上述第三方面所述的芯片封装结构。
本申请实施例第五方面提供了一种电子装置,该电子装置包括上述第三方面所述的芯片封装结构或者上述第四方面所述的板卡。
本申请实施例第六方面提供了一种运算方法,应用于上述运算装置,所述方法包括:
所述调压调频装置获取所述运算装置中的神经网络相关参数;
所述调压调频装置根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
本申请实施例第七方面提供了一种存储介质,用于存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第六方面方法所述的步骤的指令。
可以看出,本申请实施例公开了一种处理装置和方法,其中处理装置包括调压调频装置和运算装置,运算装置用于进行神经网络运算,调压调频装置用于获取神经网络相关参数,并根据神经网络相关参数运算获得电压频率控制信息,向运算装置发送电压频率控制信息,用于指示运算装置调整其工作电压或工作频率。这个过程中,通过对运算装置工作频率和工作电压的动态调节,有效降低运算装置的功耗并提升其稳定性,延长运算装置的使用寿命。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种处理装置结构示意图。
图1B为本申请实施例提供的一种调压调频装置的结构示意图。
图1C为本申请实施例提供的另一种处理装置的结构示意图。
图1D为本申请实施例提供的另一种调压调频装置的结构示意图。
图2位本申请实施例提供的一种处理方法的流程示意图。
图3是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先介绍本申请涉及的处理装置,请参阅图1A,图1A为本申请实施例提供的一种处理装置结构示意图,如图1A所示,处理装置10包括调压调频装置100和运算装置200,所述调频调压装置100和所述运算装置200连接,其中:
所述运算装置200,用于进行神经网络运算;
所述调压调频装置100,用于获取所述运算装置中的神经网络相关参数,并根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
具体地,调压调频装置100中集成了DVFS算法,用于运算装置200进行神经网络运算的时候,动态调整其工作电压和工作频率。调压调频装置100为一个硬件结构,可以封装在处理装置10中,处理装置10可以是中央处理器(Central Processing Unit,CPU),图形处理器(英语:Graphics Processing Unit,GPU)等可用于进行神经网络运算的装置。调频调压装置100与运算装置200进行连接,包括逻辑连接或物理连接。
请参阅图1B,图1B为本申请实施例提供的一种调压调频装置的结构示意图,如图1B所示,所述调压调频装置包括信息采集单元101和调压调频单元102,其中:
所述信息采集单元101,用于获取所述运算装置的神经网络相关参数;
所述调压调频单元102,用于根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,所述电压频率调控信息用于指示所述运算装置调整其工作电压或者工作频率。
可选的,在根据所述神经网络相关参数向所述运算装置发送电压频率控制信息方面,所述调压调频单元102具体用于:
根据所述神经网络相关参数获取所述运算装置的工作电压;
根据所述运算装置的工作电压获取所述运算装置的工作频率;
将所述运算装置10的工作电压和工作频率作为所述电压频率控制信息向所述运算装置100发送。
具体地,神经网络相关参数包括神经网络的规模参数、神经网络稀疏度和神经网络运算结果等,这些神经网络相关参数的改变将引起运算装置运算过程的改变,包括运算速度、运算正确度或运算时间的改变,运算装置运算过程的改变需要进行电压或频率的调整。
可选的,所述神经网络相关参数包括神经网络规模参数,所述运算装置还包括运算单元201和存储单元202,运算装置201用于进行神经网络运算,在根据所述神经网络相关参数获取所述运算装置的工作电压方面,所述调压调频单元102用于:
根据所述神经网络规模参数得到所述运算单元201的工作电压;
根据所述神经网络规模参数得到所述存储单元202的工作电压。
可选的,所述神经网络规模参数包括不同神经网络类型对应的输入神经元、输出神经元、权值对应的多个规模参数和多个被访问次数。
具体地,深度学习架构对应的神经网络模型包括卷积网络,在卷积网络层中,包括的神经网络类型有卷积层和全连接层,神经网络规模参数包括卷积层和全连接层各自对应的输入神经元规模、输出神经元规模、权值规模,以及输入神经元被访问次数,输出神经元被访问次数和权值被访问次数等。在运算装置进行神经网络运算时,运算单元201用于进行神经网络运算,存储单元202用于存储外部获取数据或运算过程中产生的数据,以及运算指令等,可见运算单元201和存储单元202的运行过程中,都与神经网络规模参数相关,因此可以根据神经网络规模参数运算获得电压频率控制信息,该电压频率控制信息中可以包括运算单元201和存储单元202的工作电压或工作频率信息。
可选的,在根据所述神经网络规模参数得到所述运算单元201的工作电压方面,所述调压调频单元102具体用于:
对所述多个规模值相乘获得参数乘积,根据所述参数乘积确定所述运算单元的工作电压,所述运算单元的工作电压与所述参数乘积成正比关系;
在所述根据所述神经网络规模参数得到所述存储单元202的工作电压方面,所述调压调频单元102具体用于:
将所述多个规模值与其对应的被访问次数相乘,获得多个访问乘积;对所述多个访问乘积求和获得访问乘积之和,根据所述访问乘积之和确定所述存储单元的工作电压,所述存储单元的工作电压与所述多个访问乘积之和成正比关系。
具体地,在根据神经网络参数和运算指令处理得到运算单元201的工作电压的过程中,对于卷积层网络,假设输入神经元规模为(Nfin,Hfin,Wfin),输出神经元规模为(Nfout,Hfout,Wfout),权值规模为(Nfout,Hfin,Ky,Kx),那么神经网络规模值相乘获得的参数乘积为r1=Nfout*Hfout*Wfout*Nfin*Ky*Kx,根据参数乘积得到运算单元201的工作电压,公式为U1=Ucomp0+r1*hcomp,卷积层的神经网络规模值相乘获得的参数乘积与运算单元201的工作电压成正比,其中U1为运算单元201的输出电压,Ucomp0为保证运算单元201能够运行的基本电压,hcomp表示运算单元201比例因子,为大于零的正实数。在全连接层中,假设输入神经元规模为Nin,输出神经元规模为Nout,权值规模为Nin*Nout,神经网络规模值的参数乘积为r2=Nfout*Nfin,根据参数乘积得到运算单元201的工作电压,对应公式为:U1=Ucomp0+r2*hcomp,全连接层的参数乘积与运算单元201的工作电压成正比关系。
在根据神经网络规模参数和运算指令处理得到存储单元202的工作电压的过程中,对于卷积层网络,根据上述过程已经获得神经网络规模,然后获取神经网络结构对应的被访问次数,例如输入神经元被访问次数为T_fout,输入神经元被访问次数为T_fin,权值被访问次数为T_kernel,那么神经网络规模值与其对应的神经网络结构访问次数的多个访问乘积为:t1=Nfout*Hfout*Wfout*T_fout,t2=Nfin*Hfin*Wfin*T_fin,t3=Nfout*Nfin*Ky*Kx*T_kernel,然后对t1,t2,t3求和,并根据多个访问乘积之和得到存储单元202的工作电压,公式为U2=Umem0+(t1+t2+t3)*hmem,其中U2为存储单元202的输出电压,Umem0为保证存储单元202能够运行的基本电压,hmem为存储单元202比例因子,是大于零的实数,卷积层的多个访问乘积之和与存储单元202的工作电压成正比关系。对于全连接层,输入神经元被访问次数为T_in,输出神经元被访问次数为T_out,权值被访问次数为T_weight,那么神经网络规模值与其对应的神经网络结构被访问次数的多个访问乘积为:t4=Nin*T_in,t5=Nout*T_out,t6=Nin*Nout*T_weight,然后对t4,t5,t6求和,并根据多个访问乘积之和得到存储单元202的工作电压,公式为U2=Umem0+(t4+t5+t6)*hmem,全连接层的多个访问乘积之和与存储单元202的工作电压成正比关系。
可选的,所述神经网络相关参数还包括神经网络稀疏度,在根据所述神经网络相关参数获取所述运算装置10的工作电压方面,所述调压调频单元102用于:
根据所述神经网络规模参数和神经网络稀疏度得到所述运算单元201的工作电压;根据所述神经网络规模参数和神经网络稀疏度得到所述存储单元202的工作电压。
可选的,在根据所述神经网络规模参数和神经网络稀疏度获取所述运算装置的工作电压方面,所述调压调频单元102具体用于:
根据所述神经网络规模参数和神经网络稀疏度得到所述运算单元201的工作电压;
根据所述神经网络规模参数和神经网络稀疏度得到所述存储单元202的工作电压。
具体地,除了根据神经网络规模参数运算获得运算装置的工作电压外,神经网络稀疏度也会影响运算装置的运算过程,进而影响运算装置的工作电压,因此还可以由神经网络规模参数结合神经网络稀疏度运算获得运算装置10的工作电压。神经网络稀疏度与神经网络规模参数相同,都与神经网络的输入数据相关,因此同样地,可以根据神经网络规模参数和神经网络稀疏度运算获得运算单元201和存储单元202的工作电压。
可选的,所述神经网络的神经网络稀疏度包括神经元稀疏度和权值稀疏度;
所述神经元稀疏度为绝对值大于或等于第一预设阈值的神经元占总神经元的比例;所述权值稀疏度为绝对值大于或等于第二预设阈值的权值占总权值的比例,所述第一预设阈值和所述第二预设阈值大于零。
具体地,在神经网络中,有一些神经元的值为0,或者神经元的绝对值小于第一预设阈值,第一预设阈值是一个很小的值,这些神经元占总神经元的比例即为神经元稀疏度。同理,权值为0,或者权值小于第二预设阈值,第二预设阈值是一个很小的值,这些权值占总权值的比例,即为权值稀疏度。当神经元稀疏度和权值稀疏度不同时,会导致卷积层和全连接层的计算量不同,因此也会影响到动态调整电压的过程。
可选的,在根据所述神经网络规模参数和神经网络稀疏度得到所述运算单元201的工作电压方面,所述调压调频单元102具体用于:
计算所述参数乘积与所述神经网络稀疏度的乘积,作为近似计算量,根据所述近似计算量得到所述运算单元的工作电压,所述运算单元的工作电压与所述近似计算量成正比关系;
在根据所述神经网络参数和神经网络稀疏度得到所述存储单元202的工作电压方面,所述调压调频单元102具体用于:
计算所述多个访问乘积与其对应神经网络稀疏度的乘积,获得多个神经网络稀疏度乘积;对所述多个神经网络稀疏度乘积求和,获得近似访存量,根据所述近似访存量得到所述存储单元的工作电压,所述存储单元的工作电压与所述近似访存量成正比关系。
具体地,根据神经网络规模值和神经网络稀疏度可以得到运算单元201和存储单元202的工作电压。在获取运算单元201工作电压的过程中,对于卷积层网络,已经获得了输入神经元、输出神经元、权值对应的多个规模值相乘的参数乘积r1,假设神经元稀疏度为Sn,权值稀疏度为Sw,那么根据r1与神经网络稀疏度的乘积获得卷积层的近似计算量:comp1=r1*Sn*Sw,然后根据卷积层的近似计算量得到运算单元201工作电压,公式为:U3=Ucomp0+comp1*hcomp,其中U3为运算单元201的输出电压,卷积层的近似计算量与运算单元201工作电压成正比关系。对于全连接层网络,已经获得多个规模值的参数乘积为r2,神经元稀疏度为Sn,权值稀疏度为Sw,那么根据r2与神经网络稀疏度的乘积获得全连接层的近似计算量:comp2=r2*Sn*Sw,根据全连接层的近似计算量得到运算单元201工作电压,公式为:U3=Ucomp0+comp2*hcomp,全连接层的近似计算量与运算单元201工作电压成正比关系。
在根据神经网络规模参数和神经网络稀疏度得到存储单元202的工作电压的过程中,对于卷积层网络,已经获得了多个访问乘积t1,t2以及t3,神经元稀疏度为Sn,权值稀疏度为Sw,对多个访问乘积与其对应稀疏度求乘积,获得多个稀疏度乘积,分别为:s1=t1*Sn,s2=t2*Sn,s3=t3*Sw,然后对s1,s2,s3求和,获得近似访存量mem1=s1+s2+s3,根据近似访存量得到存储单元202的工作电压,公式为U4=Umem0+mem1*hmem,卷积层的近似访存量与存储单元202的工作电压成正比关系。对于全连接层,已经获得了多个访问乘积t4,t5和t6,神经元稀疏度为Sn,权值稀疏度为Sw,获取多个访问乘积与其对应稀疏度的多个稀疏度乘积,分别为:s4=t4*Sn,s5=t5*Sn,s6=t6*Sw,对多个稀疏度乘积求和,获得近似访存量mem2=s4+s5+s6,根据近似访存量调整存储单元202的工作电压,调整公式为U4=Umem0+mem2*hmem,全连接层的近似访存量与存储单元202的工作电压成正比关系。
可选的,所述神经网络规模和/或所述稀疏度是离线统计的或者在线实时统计的。
具体地,神经网络规模和稀疏度可以是调压调频装置100、运算装置10的其他模块或者其他处理设备离线统计的,在对运算装置10进行工作电压调整的过程中,信息采集单元101可以直接获取神经网络规模和稀疏度,并根据公式对工作电压进行调整。或者,神经网络规模和稀疏度可以由信息采集单元101在运算装置10进行神经网络计算的时候,实时统计获得。前一种方式效率高,后一种方式获取数据准确率高,可根据需要进行设置。
可选的,神经网络相关参数还包括神经网络运算结果,所述运算装置还包括控制单元203,在根据所述神经网络相关参数获取所述运算装置10的工作电压方面,所述调压调频单元102用于:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元201的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元202的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元203的工作电压。
具体地,运算装置10在持续进行神经网络运算,在这个过程中,有可能产生错误的运算结果和正确的运算结果,如果为正确的运算结果,表面运算装置正常运行,那么可以保持根据神经网络规模参数和/或神经网络稀疏度调整运算装置的工作电压或工作频率;如果为错误的运算结果,例如控制单元出现错误,包括取指错误或者译码错误,导致整个运算器运行错误;或者存储部件发生错误,包括从存储器中读取出的数据发生ECC(ErrorCorrecting Code,错误检查和纠正)错误;或者计算部件发生错误,例如计算结果溢出等;此时运算装置将会进行一些纠错处理,包括减速运行、冗余丢弃或重新开始运算等,运算过程将会发生变化,那么运算装置10中的运算单元201、存储单元202和控制单元203都会受到影响,因此将会产生这三者相关电压频率调控信息。
另外,请参阅图1C,图1C为本申请实施例提供的另一种处理装置的结构示意图,如图1C所示,该处理装置包括调压调频装置317、寄存器单元312、互连模块313、运算单元314、控制单元315和数据访问单元316。
其中,运算单元314包括加法计算器、乘法计算器、比较器和激活运算器中的至少二种。
互连模块313,用于控制运算单元314中计算器的连接关系使得该至少二种计算器组成不同的计算拓扑结构。
寄存器单元312(可以是寄存器单元,指令缓存,高速暂存存储器),用于存储该运算指令、数据块的在存储介质的地址、运算指令对应的计算拓扑结构。
可选地,上述运算装置还包括存储介质311。
存储介质311可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据块,该数据块具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维数据。
控制单元315,用于从寄存器单元312内提取运算指令、该运算指令对应的操作域以及该运算指令对应的第一计算拓扑结构,将该运算指令译码成执行指令,该执行指令用于控制运算单元314执行运算操作,将该操作域传输至数据访问单元316,将该计算拓扑结构传输至互连模块313。
数据访问单元316,用于从存储介质311中提取该操作域对应的数据块,并将该数据块传输至互连模块313。
互连模块313、用于接收第一计算拓扑结构的数据块。
可选的,请参阅图1D,图1D为本申请实施例提供的另一种调压调频装置的结构示意图,如图1D所示,调压调频装置100中还包括与调压调频单元102连接的错误检测单元103,用于检测神经网络处理器200中是否发生运算错误,如果是,则向调压调频单元102发送中止调压的信号,调压调频单元102调节神经网络处理器200以基础电压进行工作。
可选的,在所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压方面,所述调压调频单元102具体用于:
根据第一预设公式得到所述运算单元的工作电压,所述第一预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Ucomp0;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Ucomp0+comp*hcomp,所述Ucomp0为保证所述运算单元运行的基本电压,所述comp为神经网络的运算量,所述hcomp为所述运算单元比例因子。
当所述运算单元对卷积层网络进行运算时,所述comp=Nfout*Hfout*Wfout*Nfin*Ky*Kx*Sn*Sw,其中,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度;
当所述运算单元对全连接层进行运算时,所述comp=Nin*Nout*Sn*Sw,其中Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度。
根据上述内容可知,在神经网络运算过程正确的情况下,调压调频单元102对于运算单元201的工作电压调节即是根据神经网络规模和稀疏度进行调节,对于卷积层和全连接层,由于神经网络规模和稀疏度的差异,因此电压调节公式有所差异。在神经网络运算过程发生错误的情况下,运算单元的输出公式即为保证运算单元能够运行的基本电压Ucomp0。
可选的,在所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压方面,所述调压调频单元102具体用于:
根据第二预设公式得到所述存储单元的工作电压,所述第二预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Umem;当所述神经网络运算结果为正确运算结果时,所述存储单元的工作电压为Umem0+mem*hmem,所述Umem0为保证所述存储单元运行的基本电压,所述mem为神经网络的运算量,所述hmem为存储单元比例因子。
当所述运算单元对卷积层网络进行运算时,所述+meNnfin=*NKfyou*tK*xH*foSuwt**TW_fokuetr*nSenl*T_fout+Nfin*Hfin*Wfin*Sn*T_fin,其中(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_fout为输出神经元被访问次数,T_fin为输入神经元被访问次数,T_kernel为权值被访问次数;
当所述运算单元对全连接层进行运算时,所述men=Nout*Sn*T_out+Nin*Sn*T_in+Nin*Nout*Sw*T_weight,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_in为输入神经元被访问次数,T_out为输出神经元被访问次数,T_weight为权值被访问次数。
同样的,根据上述内容可知,在神经网络运算过程正确的情况下,调压调频单元102对于存储单元202的工作电压即是根据神经网络规模和稀疏度进行获取,对于卷积层和全连接层,由于神经网络规模及其对应的神经网络结构的被访问次数以及稀疏度的差异,因此工作电压获取公式有所差异。在神经网络运算过程发生错误的情况下,运算单元的输出电压即为保证运算单元能够运行的基本电压Umem0。
可选的,在所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元的工作电压方面,所述调压调频单元102具体用于:
根据第三预设公式得到所述控制单元的工作电压,所述第三预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述控制单元的工作电压为Ucontrol0;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Ucontrol1,所述Ucontrol0为保证所述控制单元能够运行的基本电压,所述Ucontrol1为所述控制单元正常运行的电压。
具体地,当神经网络芯片处理器中其他单元的运行需要控制单元进行控制时,控制单元203按照Ucontrol1运行,当所述神经网络运算结果为错误运算结果时,神经网络芯片处理器中其他单元处于停滞状态,或者低功耗恢复状态,那么控制单元203按照保证控制单元能够Ucontrol0运行,以便控制单元保持低功耗或休眠状态。Ucontrol1大于Ucontrol0。
可选的,在所述根据所述运算装置的工作电压获取所述运算装置的工作频率方面,所述调压调频单元102具体用于:
根据所述工作电压正相关地获得所述工作频率,即工作频率随着工作电压的增大而正大,随着工作电压的减小而减小;
所述神经网络处理器根据所述工作电压调整自身的工作电压,根据所述工作频率调整自身的工作频率包括:
当根据所述工作电压和所述工作频率进行由高到低的调整时,所述神经网络处理器先调低频率,再调低电压;当根据所述工作电压和所述工作频率进行由低到高的调整时,所述神经网络处理器先升高电压,再升高频率。
工作频率需要跟随工作电压同步变化,以使得两者相适配。
可见,本申请实施例公开了一种处理装置,该处理装置包括调压调频装置和运算装置,运算装置用于进行神经网络运算,调压调频装置用于获取神经网络相关参数,并根据神经网络相关参数运算获得电压频率控制信息,向运算装置发送电压频率控制信息,用于指示运算装置调整其工作电压或工作频率。这个过程中,通过对运算装置工作频率和工作电压的动态调节,有效降低运算装置的功耗并提升其稳定性,延长运算装置的使用寿命。
请参阅图2,图2位本申请实施例提供的一种处理方法的流程示意图,应用于图1A-图1D对应的实施例中的处理装置中,该方法包括如下步骤:
211、所述运算装置进行神经网络运算;
212、所述调压调频装置获取所述运算装置中的神经网络相关参数;
213、所述调压调频装置根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
可见,本申请实施例公开的处理方法,应用于处理装置,该处理装置包括调压调频装置和运算装置,运算装置用于进行神经网络运算,调压调频装置用于获取神经网络规模参数和神经网络稀疏度,并根据神经网络规模参数和神经网络稀疏度获得电压频率控制信息,向运算装置发送电压频率控制信息,用于指示运算装置调整其工作电压或工作频率。这个过程中,通过对运算装置工作频率和工作电压的动态调节,有效降低运算装置的功耗并提升其稳定性,延长运算装置的使用寿命。
在一个可选的实施例中,所述根据所述神经网络相关参数向所述运算装置发送电压频率控制信息,包括:
根据所述神经网络相关参数获取所述运算装置的工作电压;
根据所述运算装置的工作电压获取所述运算装置的工作频率;
将所述运算装置的工作电压和工作频率作为所述电压频率控制信息向所述运算装置发送。
在一个可选的实施例中,所述方法还包括进行神经网络运算,所述神经网络相关参数包括神经网络规模参数,根据所述神经网络相关参数获取所述运算装置的工作电压,包括:
根据所述神经网络规模参数得到所述运算单元的工作电压;
根据所述神经网络规模参数得到所述存储单元的工作电压。
在一个可选的实施例中,所述神经网络规模参数包括不同神经网络类型对应的输入神经元、输出神经元、权值对应的多个规模值和多个被访问次数。
在一个可选的实施例中,所述根据所述神经网络规模参数得到所述运算单元的工作电压,包括:
对所述多个规模值相乘获得参数乘积,根据所述参数乘积确定所述运算单元的工作电压,所述运算单元的工作电压与所述参数乘积成正比关系;
所述根据所述神经网络规模参数得到所述存储单元的工作电压,包括:
将所述多个规模值与其对应的被访问次数相乘,获得多个访问乘积;对所述多个访问乘积求和获得访问乘积之和,根据所述访问乘积之和确定所述存储单元的工作电压,所述存储单元的工作电压与所述多个访问乘积之和成正比关系。
在一个可选的实施例中,所述神经网络相关参数还包括神经网络稀疏度,所述根据所述神经网络相关参数获取所述运算装置的工作电压包括:
根据所述神经网络规模参数和神经网络稀疏度得到所述运算单元的工作电压;
根据所述神经网络规模参数和神经网络稀疏度得到所述存储单元的工作电压。
在一个可选的实施例中,所述神经网络的神经网络稀疏度包括神经元稀疏度和权值稀疏度;
所述神经元稀疏度为绝对值大于或等于第一预设阈值的神经元占总神经元的比例;所述权值稀疏度为绝对值大于或等于第二预设阈值的权值占总权值的比例,所述第一预设阈值和所述第二预设阈值大于零。
在一个可选的实施例中,所述根据所述神经网络规模参数和神经网络稀疏度得到所述运算单元的工作电压,包括:
计算所述参数乘积与所述神经网络稀疏度的乘积,作为近似计算量,根据所述近似计算量得到所述运算单元的工作电压,所述运算单元的工作电压与所述近似计算量成正比关系;
所述根据所述神经网络参数和神经网络稀疏度得到所述存储单元的工作电压,包括:
计算所述多个访问乘积与其对应神经网络稀疏度的乘积,获得多个神经网络稀疏度乘积;对所述多个神经网络稀疏度乘积求和,获得近似访存量,根据所述近似访存量得到所述存储单元的工作电压,所述存储单元的工作电压与所述近似访存量成正比关系。
在一个可选的实施例中,所述神经网络规模参数和/或所述神经网络稀疏度是离线统计的或者在线实时统计的。
在一个可选的实施例中,所述神经网络相关参数还包括神经网络运算结果,在根据所述神经网络相关参数获取所述运算装置的工作电压,包括:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元的工作电压。
在一个可选的实施例中,所述神经网络运算结果包括正确运算结果和错误运算结果,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压,包括:
根据第一预设公式得到所述运算单元的工作电压,所述第一预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Ucomp0;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Ucomp0+comp*hcomp,所述Ucomp0为保证所述运算单元运行的基本电压,所述comp为神经网络的运算量,所述hcomp为所述运算单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述comp=Nfout*Hfout*Wfout*Nfin*Ky*Kx*Sn*Sw,其中,(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度;
当所述运算单元对全连接层进行运算时,所述comp=Nin*Nout*Sn*Sw,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度。
在一个可选的实施例中,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压,包括:
根据第二预设公式得到所述存储单元的工作电压,所述第二预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Umem;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Umem0+mem*hmem,所述Umem0为保证所述存储单元运行的基本电压,所述mem为神经网络的运算量,所述hmem为存储单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述+meNnfin=*NKfyou*tK*xH*foSuwt**TW_fokuetr*nSenl*T_fout+Nfin*Hfin*Wfin*Sn*T_fin,其中(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_fout为输出神经元被访问次数,T_fin为输入神经元被访问次数,T_kernel为权值被访问次数;
当所述运算单元对全连接层进行运算时,所述men=Nout*Sn*T_out+Nin*Sn*T_in+Nin*Nout*Sw*T_weight,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_in为输入神经元被访问次数,T_out为输出神经元被访问次数,T_weight为权值被访问次数。
在一个可选的实施例中,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元的工作电压,包括:
根据第三预设公式得到所述控制单元的工作频率和工作电压,所述第三预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述控制单元的工作电压为Ucontrol0;当所述神经网络运算结果为正确运算结果时,所述控制单元的工作电压为Ucontrol1,所述Ucontrol0为保证所述控制单元能够运行的基本电压,所述Ucontrol1为所述控制单元正常运行的电压。
在一个可选的实施例中,所述根据所述运算装置的工作电压获取所述运算装置的工作频率包括:
根据所述工作电压正相关地获得所述工作频率,即工作频率随着工作电压的增大而正大,随着工作电压的减小而减小;
所述神经网络处理器根据所述工作电压调整自身的工作电压,根据所述工作频率调整自身的工作频率包括:
当根据所述工作电压和所述工作频率进行由高到低的调整时,所述神经网络处理器先调低频率,再调低电压;当根据所述工作电压和所述工作频率进行由低到高的调整时,所述神经网络处理器先升高电压,再升高频率。
在一些实施例里,还申请了一种存储介质,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行上述方法中任一项所述的方法中的步骤的指令。
在一些实施例里,还申请了一种芯片,其包括了上述调压调频装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图3,图3提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (22)
1.一种处理装置,其特征在于,所述装置包括运算装置和调压调频装置,所述调频调压装置和所述运算装置连接,其中:
所述运算装置,用于进行神经网络运算;
所述调压调频装置,用于获取所述运算装置中的神经网络规模参数、神经网络稀疏度和神经网络运算结果,并根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
2.根据权利要求1所述的装置,其特征在于,所述调压调频装置包括信息采集单元和调压调频单元,其中:
所述信息采集单元,用于获取所述运算装置的神经网络规模参数、神经网络稀疏度和神经网络运算结果;
所述调压调频单元,用于根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果向所述运算装置发送电压频率控制信息,所述电压频率调控信息用于指示所述运算装置调整其工作电压或者工作频率。
3.根据权利要求2所述的装置,其特征在于,所述在根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果向所述运算装置发送电压频率控制信息方面,所述调压调频单元具体用于:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果获取所述运算装置的工作电压;
根据所述运算装置的工作电压获取所述运算装置的工作频率;
将所述运算装置的工作电压和工作频率作为所述电压频率控制信息向所述运算装置发送。
4.根据权利要求3所述的装置,其特征在于,所述运算装置包括运算单元、存储单元和控制单元,在根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果获取所述运算装置的工作电压方面,所述调压调频单元用于:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元的工作电压。
5.根据权利要求1-4任一项所述的装置,其特征在于,所述神经网络规模参数包括不同神经网络类型对应的输入神经元、输出神经元、权值对应的多个规模值和多个被访问次数。
6.根据权利要求5所述的装置,其特征在于,所述神经网络的神经网络稀疏度包括神经元稀疏度和权值稀疏度;
所述神经元稀疏度为绝对值大于或等于第一预设阈值的神经元占总神经元的比例;所述权值稀疏度为绝对值大于或等于第二预设阈值的权值占总权值的比例,所述第一预设阈值和所述第二预设阈值大于零。
7.根据权利要求1-6任一项所述的装置,其特征在于,所述神经网络规模参数和/或所述神经网络稀疏度是离线统计的或者在线实时统计的。
8.根据权利要求4所述的装置,其特征在于,所述神经网络运算结果包括正确运算结果和错误运算结果,在所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压方面,所述调压调频单元具体用于:
根据第一预设公式得到所述运算单元的工作频率和工作电压,所述第一预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Ucomp0;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Ucomp0+comp*hcomp,所述Ucomp0为保证所述运算单元运行的基本电压,所述comp为神经网络的运算量,所述hcomp为所述运算单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述comp=Nfout*Hfout*Wfout*Nfin*Ky*Kx*Sn*Sw,其中,(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度;
当所述运算单元对全连接层进行运算时,所述comp=Nin*Nout*Sn*Sw,其中Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度。
9.根据权利要求8所述的装置,其特征在于,在所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压方面,所述调压调频单元具体用于:
根据第二预设公式得到所述存储单元的工作电压,所述第二预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述存储单元的工作电压为Umem;当所述神经网络运算结果为正确运算结果时,所述存储单元的工作电压为Umem0+mem*hmem,所述Umem0为保证所述存储单元运行的基本电压,所述mem为神经网络的运算量,所述hmem为存储单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述其中(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_fout为输出神经元被访问次数,T_fin为输入神经元被访问次数,T_kernel为权值被访问次数;
当所述运算单元对全连接层进行运算时,所述men=Nout*Sn*T_out+Nin*Sn*T_in+Nin*Nout*Sw*T_weight,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_in为输入神经元被访问次数,T_out为输出神经元被访问次数,T_weight为权值被访问次数。
11.根据权利要求3-10任一项所述的装置,其特征在于,在所述根据所述运算装置的工作电压获取所述运算装置的工作频率方面,所述调压调频单元还用于:
根据所述工作电压正相关地获得所述工作频率,即工作频率随着工作电压的增大而正大,随着工作电压的减小而减小;
所述神经网络处理器根据所述工作电压调整自身的工作电压,根据所述工作频率调整自身的工作频率包括:
当根据所述工作电压和所述工作频率进行由高到低的调整时,所述神经网络处理器先调低频率,再调低电压;当根据所述工作电压和所述工作频率进行由低到高的调整时,所述神经网络处理器先升高电压,再升高频率。
12.一种运算方法,应用于如权利要求1-11所述的处理装置中,其特征在于,所述方法包括:
所述运算装置进行神经网络运算;
所述调压调频装置获取所述运算装置中的神经网络规模参数、神经网络稀疏度和神经网络运算结果;
所述调压调频装置根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果向所述运算装置发送电压频率控制信息,所述电压频率控制信息用于指示所述运算装置调整其工作电压或者工作频率。
13.根据权利要求12所述的方法,其特征在于,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果向所述运算装置发送电压频率控制信息,包括:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果获取所述运算装置的工作电压;
根据所述运算装置的工作电压获取所述运算装置的工作频率;
将所述运算装置的工作电压和工作频率作为所述电压频率控制信息向所述运算装置发送。
14.根据权利要求13所述的方法,其特征在于,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果获取所述运算装置的工作电压,包括:
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压;
根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述控制单元的工作电压。
15.根据权利要求12-14任一项所述的方法,其特征在于,所述神经网络规模参数包括不同神经网络类型对应的输入神经元、输出神经元、权值对应的多个规模值和多个被访问次数。
16.根据权利要求15所述的方法,其特征在于,所述神经网络的神经网络稀疏度包括神经元稀疏度和权值稀疏度;
所述神经元稀疏度为绝对值大于或等于第一预设阈值的神经元占总神经元的比例;所述权值稀疏度为绝对值大于或等于第二预设阈值的权值占总权值的比例,所述第一预设阈值和所述第二预设阈值大于零。
17.根据权利要求1-16任一项所述的方法,其特征在于,所述神经网络规模参数和/或所述神经网络稀疏度是离线统计的或者在线实时统计的。
18.根据权利要求14所述的装置,其特征在于,所述神经网络运算结果包括正确运算结果和错误运算结果,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述运算单元的工作电压,包括:
根据第一预设公式得到所述运算单元的工作电压,所述第一预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Ucomp0;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Ucomp0+comp*hcomp,所述Ucomp0为保证所述运算单元运行的基本电压,所述comp为神经网络的运算量,所述hcomp为所述运算单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述comp=Nfout*Hfout*Wfout*Nfin*Ky*Kx*Sn*Sw,其中,(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度;
当所述运算单元对全连接层进行运算时,所述comp=Nin*Nout*Sn*Sw,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度。
19.根据权利要求18所述的方法,其特征在于,所述根据所述神经网络规模参数、神经网络稀疏度和神经网络运算结果得到所述存储单元的工作电压,包括:
根据第二预设公式得到所述存储单元的工作电压,所述第二预设公式为:其中,当所述神经网络运算结果为错误运算结果时,所述运算单元的工作电压为Umem;当所述神经网络运算结果为正确运算结果时,所述运算单元的工作电压为Umem0+mem*hmem,所述Umem0为保证所述存储单元运行的基本电压,所述mem为神经网络的运算量,所述hmem为存储单元比例因子;
当所述运算单元对卷积层网络进行运算时,所述其中(Nfin,Hfin,Wfin)为卷积层网络的输入神经元规模,(Nfout,Hfout,Wfout)为所述卷积层网络的输出神经元规模,(Nfout,Hfin,Ky,Kx)为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_fout为输出神经元被访问次数,T_fin为输入神经元被访问次数,T_kernel为权值被访问次数;
当所述运算单元对全连接层进行运算时,所述men=Nout*Sn*T_out+Nin*Sn*T_in+Nin*Nout*Sw*T_weight,其中Nin为所述全连接层的输入神经元规模,Nout为所述全连接层的输出神经元规模,Nin*Nout为权值规模,Sn为神经元稀疏度,Sw为权值稀疏度,T_in为输入神经元被访问次数,T_out为输出神经元被访问次数,T_weight为权值被访问次数。
21.根据权利要求13-20任一项所述的方法,其特征在于,所述根据所述运算装置的工作电压获取所述运算装置的工作频率包括:
根据所述工作电压正相关地获得所述工作频率,即工作频率随着工作电压的增大而正大,随着工作电压的减小而减小;
所述神经网络处理器根据所述工作电压调整自身的工作电压,根据所述工作频率调整自身的工作频率包括:
当根据所述工作电压和所述工作频率进行由高到低的调整时,所述神经网络处理器先调低频率,再调低电压;当根据所述工作电压和所述工作频率进行由低到高的调整时,所述神经网络处理器先升高电压,再升高频率。
22.一种存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求12-21任一项所述的方法中的步骤的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910153980.1A CN111523655B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910153980.1A CN111523655B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
CN201910109490.1A CN111523653B (zh) | 2019-02-03 | 2019-02-03 | 运算装置及方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910109490.1A Division CN111523653B (zh) | 2019-02-03 | 2019-02-03 | 运算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111523655A true CN111523655A (zh) | 2020-08-11 |
CN111523655B CN111523655B (zh) | 2024-03-29 |
Family
ID=71900884
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910109490.1A Active CN111523653B (zh) | 2019-02-03 | 2019-02-03 | 运算装置及方法 |
CN201910154066.9A Active CN111523656B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
CN201910153943.0A Active CN111523654B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
CN201910153980.1A Active CN111523655B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910109490.1A Active CN111523653B (zh) | 2019-02-03 | 2019-02-03 | 运算装置及方法 |
CN201910154066.9A Active CN111523656B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
CN201910153943.0A Active CN111523654B (zh) | 2019-02-03 | 2019-02-03 | 处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (4) | CN111523653B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230394279A1 (en) * | 2020-10-22 | 2023-12-07 | Nanjing Prochip Electronic Technology Co., Ltd | Method and system for accelerating equilibrium computation on sparse recurrent neural network |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214315B (zh) * | 2020-09-23 | 2024-03-29 | 深圳云天励飞技术股份有限公司 | 一种芯片控制方法、装置、人工智能芯片及终端设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318020A1 (en) * | 2011-11-03 | 2013-11-28 | Georgia Tech Research Corporation | Analog programmable sparse approximation system |
WO2014173631A1 (en) * | 2013-04-26 | 2014-10-30 | Siemens Aktiengesellschaft | A method and a system for reducing power consumption in a processing device |
CN105024390A (zh) * | 2015-07-21 | 2015-11-04 | 清华大学 | 基于bp神经网络的微网电池储能系统调频控制方法 |
CN105027519A (zh) * | 2013-12-30 | 2015-11-04 | 华为技术有限公司 | 一种信号处理方法和装置 |
CN107092961A (zh) * | 2017-03-23 | 2017-08-25 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
US20170368682A1 (en) * | 2016-06-27 | 2017-12-28 | Fujitsu Limited | Neural network apparatus and control method of neural network apparatus |
WO2018058427A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
CN107886166A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
CN107886167A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
JP2018097612A (ja) * | 2016-12-13 | 2018-06-21 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
CN108734279A (zh) * | 2017-04-20 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
US20180373975A1 (en) * | 2017-06-21 | 2018-12-27 | Arm Ltd. | Systems and devices for compressing neural network parameters |
CN208432998U (zh) * | 2018-04-28 | 2019-01-25 | 北京中科寒武纪科技有限公司 | 数据加速处理系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092730B2 (en) * | 2011-08-11 | 2015-07-28 | Greenray Industries, Inc. | Neural network frequency control and compensation of control voltage linearity |
EP3196732B1 (en) * | 2014-12-12 | 2021-03-24 | VIA Alliance Semiconductor Co., Ltd. | System and method for dynamically adjusting voltage frequency |
US20170147053A1 (en) * | 2015-11-23 | 2017-05-25 | Mediatek Inc. | Application driven dynamic voltage and frequency scaling method and associated machine readable medium |
US10839292B2 (en) * | 2016-06-29 | 2020-11-17 | International Business Machines Corporation | Accelerated neural network training using a pipelined resistive processing unit architecture |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN108229654B (zh) * | 2016-12-14 | 2020-08-14 | 上海寒武纪信息科技有限公司 | 神经网络卷积运算装置及方法 |
WO2018112892A1 (zh) * | 2016-12-23 | 2018-06-28 | 北京中科寒武纪科技有限公司 | 一种支持快速人工神经网络运算的装置及方法 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN109284823B (zh) * | 2017-04-20 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 一种运算装置及相关产品 |
CN107229598B (zh) * | 2017-04-21 | 2021-02-26 | 东南大学 | 一种面向卷积神经网络的低功耗电压可调卷积运算模块 |
CN107862380A (zh) * | 2017-10-19 | 2018-03-30 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN107748914A (zh) * | 2017-10-19 | 2018-03-02 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN107844826B (zh) * | 2017-10-30 | 2020-07-31 | 中国科学院计算技术研究所 | 神经网络处理单元及包含该处理单元的处理系统 |
CN107729998B (zh) * | 2017-10-31 | 2020-06-05 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的方法 |
CN107832840B (zh) * | 2017-10-31 | 2020-05-22 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的方法 |
-
2019
- 2019-02-03 CN CN201910109490.1A patent/CN111523653B/zh active Active
- 2019-02-03 CN CN201910154066.9A patent/CN111523656B/zh active Active
- 2019-02-03 CN CN201910153943.0A patent/CN111523654B/zh active Active
- 2019-02-03 CN CN201910153980.1A patent/CN111523655B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318020A1 (en) * | 2011-11-03 | 2013-11-28 | Georgia Tech Research Corporation | Analog programmable sparse approximation system |
WO2014173631A1 (en) * | 2013-04-26 | 2014-10-30 | Siemens Aktiengesellschaft | A method and a system for reducing power consumption in a processing device |
CN105027519A (zh) * | 2013-12-30 | 2015-11-04 | 华为技术有限公司 | 一种信号处理方法和装置 |
CN105024390A (zh) * | 2015-07-21 | 2015-11-04 | 清华大学 | 基于bp神经网络的微网电池储能系统调频控制方法 |
US20170368682A1 (en) * | 2016-06-27 | 2017-12-28 | Fujitsu Limited | Neural network apparatus and control method of neural network apparatus |
WO2018058427A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
CN107886166A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
CN107886167A (zh) * | 2016-09-29 | 2018-04-06 | 北京中科寒武纪科技有限公司 | 神经网络运算装置及方法 |
JP2018097612A (ja) * | 2016-12-13 | 2018-06-21 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
CN107092961A (zh) * | 2017-03-23 | 2017-08-25 | 中国科学院计算技术研究所 | 一种基于模式频率统计编码的神经网络处理器及设计方法 |
CN108734279A (zh) * | 2017-04-20 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
US20180373975A1 (en) * | 2017-06-21 | 2018-12-27 | Arm Ltd. | Systems and devices for compressing neural network parameters |
CN208432998U (zh) * | 2018-04-28 | 2019-01-25 | 北京中科寒武纪科技有限公司 | 数据加速处理系统 |
Non-Patent Citations (3)
Title |
---|
ZHE YUAN ET.AL: "Sticker: A 0.41-62.1 TOPS/W 8Bit Neural Network Processor with Multi-Sparsity Compatible Convolution Arrays and Online Tuning Acceleration for Fully Connected Layers", pages 33 - 34 * |
孙大鹰;徐申;徐玉珉;孙伟锋;陆生礼;: "应用于低功耗嵌入式处理器的功耗动态管理策略设计", no. 04, pages 25 - 30 * |
彭必全;严蔚;王骥;王炜;: "基于压缩感知的EMI信号与神经网络的结构损伤识别研究", 防灾减灾工程学报, no. 02, 15 April 2015 (2015-04-15), pages 33 - 39 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230394279A1 (en) * | 2020-10-22 | 2023-12-07 | Nanjing Prochip Electronic Technology Co., Ltd | Method and system for accelerating equilibrium computation on sparse recurrent neural network |
US12039429B2 (en) * | 2020-10-22 | 2024-07-16 | Nanjing Prochip Electronic Technology Co., Ltd | Method and system for accelerating equilibrium computation on sparse recurrent neural network |
Also Published As
Publication number | Publication date |
---|---|
CN111523656A (zh) | 2020-08-11 |
CN111523653B (zh) | 2024-03-29 |
CN111523655B (zh) | 2024-03-29 |
CN111523654A (zh) | 2020-08-11 |
CN111523656B (zh) | 2024-03-26 |
CN111523653A (zh) | 2020-08-11 |
CN111523654B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750351B (zh) | 多核任务调度器、多核任务调度方法、装置及相关产品 | |
CN111523654B (zh) | 处理装置及方法 | |
US20220188071A1 (en) | Computing apparatus and method, board card, and computer readable storage medium | |
CN111488963B (zh) | 神经网络计算装置和方法 | |
CN112446460A (zh) | 用于处理数据的方法、装置以及相关产品 | |
WO2021082725A1 (zh) | Winograd卷积运算方法及相关产品 | |
CN113031912B (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN109740746B (zh) | 运算方法、装置及相关产品 | |
CN111258537B (zh) | 一种防止数据溢出的方法、装置和芯片 | |
CN112308201A (zh) | 神经网络量化方法、装置、芯片、电子设备及板卡 | |
CN113298843B (zh) | 数据量化处理方法、装置、电子设备和存储介质 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN115329924A (zh) | 神经网络结构确定方法及装置以及相关产品 | |
CN111198714B (zh) | 重训练方法及相关产品 | |
CN111026258A (zh) | 处理器及降低电源纹波的方法 | |
WO2021185261A1 (zh) | 计算装置、方法、板卡和计算机可读存储介质 | |
WO2021037083A1 (zh) | 用于处理数据的方法、装置以及相关产品 | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
CN111381802B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111384944B (zh) | 全加器、半加器、数据处理方法、芯片及电子设备 | |
CN113190209A (zh) | 一种计算装置和计算方法 | |
CN111047023A (zh) | 一种计算装置及相关产品 | |
CN118131888A (zh) | 功耗控制方法、计算装置、芯片和板卡 | |
CN113033787A (zh) | 一种量化神经网络矩阵的方法、设备、计算机产品及板卡 | |
CN111062469A (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 |