动态变量精度计算制造技术

技术编号:21312452 阅读:31 留言:0更新日期:2019-06-12 12:12
转换单元[115]将运算数[110]从将所述运算数中的每个二进制数表示为一位的常规数制转换为将每个二进制数表示为多位的冗余数制(RNS)运算数[210,215]。算术逻辑单元[205]对所述RNS运算数以从最高有效位(MSB)到最低有效位(LSB)的方向执行算术运算。所述算术逻辑单元在对与所述RNS运算数相关联的动态精度所指示的目标二进制数执行所述算术运算之前停止执行所述算术运算。在一些情况下,功率源[330]提供功率到所述算术逻辑单元中的位片[311,312,313,314,315],并且时钟信号发生器[335]提供时钟信号到所述位片。

Accuracy calculation of dynamic variables

The conversion unit [115] converts the operand [110] from a conventional number system in which each binary number in the operand is represented as one bit to a redundant number system (RNS) operand in which each binary number is represented as multiple bits [210,215]. The arithmetic logic unit [205] performs arithmetic operations on the RNS operands in the direction from the highest significant bit (MSB) to the lowest significant bit (LSB). The arithmetic logic unit stops executing the arithmetic operation before executing the arithmetic operation on the target binary number indicated by the dynamic accuracy associated with the RNS arithmetic number. In some cases, the power source [330] provides power to bitslices [311, 312, 313, 314, 315] in the arithmetic logic unit, and the clock signal generator [335] provides clock signals to the bitslices.

【技术实现步骤摘要】
【国外来华专利技术】动态变量精度计算关于联邦政府赞助的声明研究或开发本专利技术是在政府的支持下根据能源部授予的FastForward-2NodeArchitecture(NA)ProjectwithLawrenceLivermoreNationalLaboratory(基本合同号DE-AC52-07NA27344、分包合同号B609201进行的。政府对本专利技术享有某些权利。
技术介绍
膝上型计算机、平板计算机、智能电话和其他计算设备依赖于内部蓄电池等有限的功率源。尽管蓄电池通常为可再充电的,充电之间的操作时间间隔可通过使用蓄电池的存储功率来有效地延长。由于功率、冷却和热管理的成本,服务器等壁式供电计算机、云计算资源和嵌入式计算机日益受到功率的限制。在计算设备中实现的算术逻辑单元对由不同数目个位表示的运算数执行算术运算,以达成包括双精度浮点(64位)、单精度浮点(32位)和半精度浮点(16位)的不同精度。当算术逻辑单元以较高精度运算时,算术逻辑单元中的功率耗散较高,而当算术逻辑单元以较低精度运算时所述功率耗散较低。附图说明通过参考附图,可更好地理解本公开,并且它的许多特征和优点对本领域技术人员来说变得显而易见。在不同图式中使用的相同附图标号指示类似或完全相同的项目。图1是根据一些实施方案的计算设备的框图图2是根据一些实施方案的计算设备的框图,所述计算设备包括被配置以使用最高有效位优先(MSB优先)算术法对冗余数制(RNS)运算数执行算术运算的算术逻辑单元。图3是根据一些实施方案的计算设备的框图,所述计算设备实现基于动态精度而选择性地启用的算术逻辑单元。图4是根据一些实施方案的计算设备的框图,所述计算设备传播与RNS运算数相关联的误差。图5是根据一些实施方案的对RNS运算数执行动态变量精度算术运算的方法的流程图。具体实施方式数字计算在很多情况下由于不必要地执行精度计算而消耗功率,尽管很多应用程序包括中性网络并且信号处理应用程序可承受一些精度损耗。因此,计算设备中蓄电池的操作时间间隔可通过以较低精度执行一些算术运算来延长。例如,程序员可指定一些运算以半精度执行而不是双精度。然而,算术运算的精度通常在编译代码以供计算设备执行时确定。已编译代码中算术运算的精度在所述代码执行时无法修改。计算设备中蓄电池等功率源的操作时间间隔可通过动态地修改计算设备所执行的算术运算的精度来延长。为了支持算术精度的动态修改,将运算数从将每个二进制数表示为一位的常规数制转换为将每个二进制数表示为多位的冗余数制(RNS),从而允许以从最高有效位(MSB)到最低有效位(LSB)的方向执行计算。RNS运算数中的每个与动态精度相关联,所述动态精度由对应于对RNS运算数执行的运算的目标准确度的位的数目表示。在一些实施方案中,动态精度是基于数据类型(例如,表示包括视频、RGB颜色、场景深度、或顶点位置数据的图形对象或原型的数据类型),或表示数据值(例如,指示数据值聚集在诸如1或0的值周围、数据值在特定范围内,或数据值具有高于或低于阈值的平均值或中值的统计测量值)的统计值而确定。动态精度也可在运行时改变,例如,响应于蓄电池电平的变化、目标准确度的变化,等等。在一些实施方案中,每个RNS运算数的动态精度都不同。每个RNS运算数的动态精度以包括动态精度和RNS运算数的值的数据结构指示。以从最高有效位(MSB)到最低有效位(LSB)的方向对RNS运算数中的二进制数执行算术运算,达RNS运算数的动态精度所指示的二进制数的数目。这称之为“MSB优先”算术法,与以从LSB到MSB的进行方向对位执行运算的常规“LSB优先”算术法相反。执行MSB优先算术法的算术逻辑单元包括独立的硬件部件(本文中称之为位片),以便对RNS运算数中的每个二进制数执行算术运算。提供启用信号以接通对应于动态精度所指示的部分RNS运算数的位片。接着,针对对相比动态精度所指示的部分RNS运算数较低有效性的二进制数执行的位片选通功率或时钟信号。对RNS运算数执行算术运算防止位片之间一位以上的涟波,例如,位片从较低有效位片接收的进位输入位并不确定所述位片提供到更有效位片的进位输出位的值。在一些实施方案中,基于执行转换所需要的开销与动态精度修改所产生的预期功率节省的比较,选择性地执行从常规二进制数到RNS运算数的转换和对RNS运算数执行的算术运算的动态精度修改。图是1根据一些实施方案的计算设备100的框图。计算设备100包括硬件部件105的集合,所述硬件部件105被配置以将常规二进制数转换为RNS运算数,并且使用MSB优先算术法对RNS运算数执行算术运算。可由硬件部件105执行的算术运算的实例包括加法、减法、乘法和除法。此外,包括超越函数的更复杂函数可基于加法、减法、乘法和除法函数而实现。因此,硬件部件105能够使用MSB优先算术法来执行更复杂函数。使用处理单元来实现硬件部件105的一些实施方案,诸如在衬底或管芯上制造的中央处理单元(CPU)、图形处理单元(GPU),或加速处理单元(APU)。硬件部件105可实现为专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP),或晶体管、电容器、电阻器、迹线、导线等硬件部件的其他组合。硬件部件105被配置以接收根据常规数制(CNS)格式化的一个或多个运算数110。通过使用二进制数序列,诸如,1,2,4,8……,运算数110的一些实施方案以二进制格式表示。运算数110中的每个二进制数表示为单个位,并且位的值指示运算数的值。例如,值为1的运算数110可表示为CNS中的0001。转换单元115在硬件部件105中实现,并且被配置以将常规运算数转换为每个二进制数由多个位表示的RNS运算数。例如,运算数110的冗余二进制表示可将每个二进制数表示为两位,并且可使用表1等转换表来确定二进制数的值。通过使用二进制数的不同值,值为1的运算数可表示为RNS运算数,包括01-01-01-11(0+0+0+1=1)、01-01-10-11(0+0+0+1=1)、01-01-11-00(0+0+2-1=1),或11-00-00-00(8-4-2-1=1)。转换单元115的其他实施方案可使用不同的冗余数制将常规运算数转换为RNS运算数。表1二进制数值00-1010100111从常规运算数到RNS运算数的转换允许以从最高有效位(MSB)到最低有效位(LSB)的方向对RNS运算数执行计算。对RNS运算数执行算术运算还可更快速。然而,转换单元115将运算数110转换为RNS运算数引发开销,诸如,执行转换所需要的附加处理时间和功率。因此,转换单元115的一些实施方案基于对RNS运算数执行算术运算的引发开销与有益效果的结果而选择性地执行运算数110的转换。例如,执行转换所需要的资源可与加速算术运算所节省的资源相比较。再例如,执行转换所需要的资源可与仅对RNS运算数中的一组最高有效二进制数执行算术运算并且绕过对RNS运算数中的一组互补的最低有效二进制数执行算术运算所节省的资源相比较。在一些实施方案中,可配置延迟线路等完成检测电路包括在硬件部件105中,并且用于检测在对RNS运算数中的所有二进制数运算之前停止或终止的算术运算的完成,如本文所论述。硬件部件105能够对转换单元115所生成的本文档来自技高网...

【技术保护点】
1.一种装置[100],包括:转换单元[115],所述转换单元[115]用以将运算数[110]从将所述运算数中的每个二进制数表示为一位的常规数制转换为将每个二进制数表示为多位的冗余数制(RNS)运算数[210,215];以及算术逻辑单元[205],所述算术逻辑单元[205]用以对所述RNS运算数以从最高有效位(MSB)到最低有效位(LSB)的方向执行算术运算,并且在对与所述RNS运算数相关联的动态精度[220]所指示的目标二进制数执行所述算术运算之前停止所述算术运算。

【技术特征摘要】
【国外来华专利技术】2016.10.20 US 15/298,9381.一种装置[100],包括:转换单元[115],所述转换单元[115]用以将运算数[110]从将所述运算数中的每个二进制数表示为一位的常规数制转换为将每个二进制数表示为多位的冗余数制(RNS)运算数[210,215];以及算术逻辑单元[205],所述算术逻辑单元[205]用以对所述RNS运算数以从最高有效位(MSB)到最低有效位(LSB)的方向执行算术运算,并且在对与所述RNS运算数相关联的动态精度[220]所指示的目标二进制数执行所述算术运算之前停止所述算术运算。2.如权利要求1所述的装置,其中所述算术逻辑单元还包括:多个位片[311,312,313,314,315],每个位片被配置以对所述RNS运算数中的所述二进制数中的一个执行所述算术运算。3.如权利要求2所述的装置,其中对较高有效二进制数运算的位片从对较低有效二进制数运算的位片接收的进位输入位并不确定对所述较高有效二进制数运算的所述位片所生成的进位输出位的值。4.如权利要求2所述的装置,还包括:控制单元[245],所述控制单元[245]被配置以提供启用信号以便接通所述多个位片的第一子集,其中所述第一子集对所述RNS运算数中相比所述目标二进制数较高有效的二进制数运算。5.如权利要求4所述的装置,其中所述控制单元被配置以基于所述RNS运算数的数据类型、所述RNS运算数中的二进制数的统计表示中的至少一者,或响应于蓄电池电平的变化、或所述算术运算的结果的目标准确度的变化中的至少一者,在运行时确定所述动态精度。6.如权利要求4所述的装置,其中所述算术逻辑单元被配置以接收与所述RNS运算数相关联的累积误差,并且其中所述控制单元被配置以基于所述累积误差而在运行时修改所述动态精度。7.如权利要求4所述的装置,其中所述控制单元并不提供启用信号到所述多个位片的第二子集,所述第二子集对所述RNS运算数中相比所述目标二进制数同样有效或较低有效的二进制数运算。8.如权利要求7所述的装置,还包括:功率源[330],所述功率源[330]用以提供功率到所述多个位片;时钟信号发生器[305],所述时钟信号发生器[305]用以提供时钟信号到所述多个位片;以及选通逻辑[340],所述选通逻辑[340]被配置以选通提供到所述第二子集的所述功率或所述时钟信号中的至少一者。9.如权利要求1所述的装置,其中所述转换单元被配置以基于执行所述转换所要求的开销与通过在对与所述RNS运算数相关联的所述动态精度所指示的所述目标二进制数执行所述算术运算之前停止所述算术运算而产生的预期功率节省的比较,选择性地将所述运算数从所述常规数制转换为所述RNS运算数。10.一种方法,包括:将运算数[110]从将所述运算数中的每个二进制数表示为一位的常规数制转换为将每个二进制数表示为多位的冗余数制(RNS)运算数[210,215];对所述RNS运算数以从最高有效位(MSB)到最低有效位(LSB)的方向执行算术运算;以及在对与所述RNS运算数相关联的动态精度[220]所指示的目标二进制数执行所述算术运算之前停止所...

【专利技术属性】
技术研发人员:格雷格·萨多夫斯基韦恩·伯利森
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1