使用紧凑的运算处理元件进行处理的计算设备制造技术

技术编号:13343057 阅读:38 留言:0更新日期:2016-07-13 20:56
本发明专利技术涉及处理器或其它设备,例如可编程和/或大规模并行的处理器或其它设备,包括设计成对低精度但高动态范围(LPHDR运算)的数值执行运算操作(可能但不一定包括例如加法、乘法、减法和除法中的一个或多个)的处理元件。这样的处理器或其它设备可例如在单芯片上实现。不管是否在单芯片上实现,在本发明专利技术的某些实施例中的处理器或其它设备中的LPHDR运算元件的数量都明显超过(例如,大于其3倍至少20个)在处理器或其它设备中的被设计成执行传统精度的高动态范围运算(例如32位或64位浮点运算)的运算元件(如果有的话)的数量。

【技术实现步骤摘要】
使用紧凑的运算处理元件进行处理的计算设备本申请是申请日为2010年6月16日、申请号为201080036873.8,以及专利技术名称为“使用紧凑的运算处理元件进行处理”的中国专利技术专利申请的分案申请。
本专利技术通常涉及数据处理,特别是涉及数据计算。
技术介绍
快速计算的能力已变得对人类非常重要。天气和气候预报、医疗应用(例如药物设计和无创成像)、国防、地理勘探、金融建模、互联网搜索、网络通信、在各种领域中的科学研究,以及甚至新计算硬件的设计,每个都变得依赖于快速执行大量计算的能力。可看到、听到和理解的未来的进步,例如复杂纳米级系统的计算机辅助设计或消费产品的发展,将要求经济地获得甚至更大的计算能力。戈登·摩尔(GordonMoore)的预测(每美元的计算性能将每两年加倍)已证明在过去30年间是有效的,且看起来可能以某种形式继续。但尽管有这个快速的指数增加,事实是,可从硅获得的固有计算能力比从软件可获得的固有计算能力增长得快得多。换句话说,虽然计算硬件的理论计算能力指数地增长,但是,对于任何接近硬件的理论最大计算能力的情况,软件访问硬件所需要的接口限制了软件使用硬件来执行计算的能力。考虑包含大约十亿个晶体管的现代硅微处理器芯片,时钟大约是1GHz。在每个周期上,芯片将大约一个有用的运算操作传送到它正运行的软件。例如,一个值可能在寄存器之间传递,而另一值可能递增,也许实现乘法。这并不与芯片在30年前做的事情十分不同,虽然今天时钟速率也许快1000倍。真正的计算机被构造为物理设备,且由其构造了机器的物理机制常常展示复杂和有意义的行为。例如,硅MOSFET晶体管是能够执行有意义的非线性运算(例如求幂)的设备。两条电线的连接可增加电流。如果被正确地配置,十亿硅晶体管和电线应能够在基本部件的几个传播延迟(如果总体设计是传统的数字设计,则是“周期”)内执行十亿次有意义的计算运算中的相当大的一部分。然而,今天的CPU芯片使用十亿个晶体管来使软件每周期只能够执行几次这样的运算,而不是执行十亿次中的相当大一部分的这样的运算(这本来是有可能的)。
技术实现思路
本专利技术的实施例的目的在于处理器或其它设备,例如可编程的和/或大规模并行的处理器或其它设备,其包括设计成对低精度但高动态范围的数值(“LPHDR运算”)执行运算操作(可能但不一定包括例如加法、乘法、减法和除法中的一个或多个)的处理元件。这样的处理器或其它设备可例如在单个芯片上实现。不管是否在单个芯片上实现,在本专利技术的某些实施例中的处理器或其它设备中的LPHDR运算元件的数量都明显超过处理器或其它设备中被设计成执行传统精度的高动态范围运算(例如32位或64位浮点运算)的运算元件的数量(例如,超过后者的数量的三倍加至少20个之和)。在一些实施例中,“低精度”处理元件执行运算操作,其产生的结果常常与精确结果相差至少0.1%(1%的十分之一)。这是比广泛使用的IEEE754单精度浮点标准差得多的精度。本专利技术的可编程实施例可使用即使对于这些异乎寻常地大的相对误差也能合适地起作用的算法来编程。在一些实施例中,处理元件具有“高动态范围”,其含意是,它们能够在跨越至少高达从百万分之一到一百万的范围上执行输入操作和/或产生输出。附图说明图1是根据本专利技术的一个实施例的SIMD处理器的示例性总体设计。图2是根据本专利技术的一个实施例的SIMD处理器的处理元件阵列的例子。图3是根据本专利技术的一个实施例,处理元件阵列中的处理元件如何与处理器的其它部分通信的例子。图4是根据本专利技术的一个实施例的处理元件的示例性设计。图5是根据本专利技术的一个实施例的示例性LPHDR数据字格式。图6是根据本专利技术的一个实施例的LPHDR运算单元的示例性设计。图7是初始图像。图8是根据本专利技术的一个实施例通过模糊核模糊的图像。图9是根据本专利技术的一个实施例使用浮点运算通过重叠合法(RichardsonLucy)去卷积产生的图像。图10是根据本专利技术的一个实施例,添加了噪声(fp+噪声)的使用LPHDR浮点运算通过RichardsonLucy去卷积产生的图像。图11是根据本专利技术的一个实施例使用LPHDR对数运算(Ins)通过RichardsonLucy去卷积产生的图像。具体实施方式如上所述,今天的CPU芯片没有充分地利用其晶体管。例如,包含十亿个晶体管的常规CPU芯片可能使软件能够每时钟周期只执行几次运算。虽然这是高度低效的,但由于被广泛接受的有效的原因,本领域的普通技术人员以这种方式设计CPU。例如,这样的设计满足与早期设计的软件兼容的(常常必要的)要求。此外,它们提供极大的精度,使用一般32或64位长的整数执行精确的运算,并使用32和64位浮点数执行相当准确和广泛归一化的运算。很多应用需要这种精度。作为结果,常规CPU一般被设计成使用大约百万量级的晶体管来执行运算操作,以提供这样的精度。有很多经济上重要的应用,然而,其不是对精度特别敏感的,且如果有能力大大提高对那些百万量级的晶体管中的固有的计算能力的利用比率(以每晶体管的应用性能的形式),将会是非常有利的。用于一般用途计算的当前结构未能提供这个能力。由于常规计算机(例如一般微处理器)的弱点,其它类型的计算机被发展以获得更高的性能。这些机器包括单指令流多数据流(SIMD)设计、多指令流多数据流(MIMD)设计、可重构结构(例如现场可编程门阵列(FPGA))和图形处理单元设计(GPU),其在应用于一般用途计算时,可被视为单指令流多线程(SIMT)设计。SIMD机器遵循顺序的程序,每个指令对一组数据执行运算。它们以两种主要类型出现:矢量处理器和阵列处理器。矢量处理器通过一个处理元件(或小量这样的元件)使数据涌出。数据流的每个部分都被类似地处理。矢量机器通过消除很多指令获取/解码运算并通过对处理器采用流水线技术来增加速度,从而使得运算的时钟速度增加。阵列处理器将数据分布在处理元件(PE)的栅格各处。每个元件具有其自己的存储器。指令被从中央控制单元顺序地广播到PE。每个PE对其本地数据执行广播指令(常常有使该周期保持空闲的选择)。阵列处理器通过有效地使用硅(使用仅仅一个指令获取/解码单元,以并行地驱动很多小的简单执行单元)来增加速度。使用定点运算在多种位宽(例如1、4、8和更宽)构造阵列处理器,并使用浮点运算来构造阵列处理器。小的位宽允许小的处理元件,这允许将它们中的更多个装配在计算机中,但很多运算必须被顺序地实施以执行常规运算计算。较宽的宽度允许常规运算操作在单个周期中完成。实际上,较宽的宽度是合乎需要的。最初设计有小位宽的机器,例如连接机器-1和Goodyear大规模并行处理器(每个使用1位宽处理元件),朝着更宽的数据路径发展,以更好地支持快速运算,产生例如连接机器-2和MasPar机器的机器,连接机器-2包括32位浮点硬件,MasPar机器继Goodyear机器之后,并在MasPar-1中提供4位处理元件和在MasPar-2中提供32位处理元件。阵列处理器还被设计成使用数字的模拟表示和模拟电路来执行计算。SCAMP是这样的机器。这些机器提供低精度运算,其中每个运算可能在其结果中引入也许几个百分点的误差。它们还将噪声引入其计算中,所以该计算是不可重复的。此外,它们只代表例如相应于8位定本文档来自技高网
...

【技术保护点】
一种计算设备,所述计算设备包括至少一个运算元件;其中所述至少一个运算元件能被配置成对一组输入信号执行运算操作,以产生输出信号;其中所述一组输入信号中的每个信号代表根据数字表示的数值;其中所述输出信号代表根据所述数字表示的数值;其中由所述数字表示所代表的所述数值的数值范围至少是从1/10000至10000;其中对于可能的多组输入信号的F%,所述F至少等于5,当所述至少一个运算元件对所述多组输入信号执行所述运算操作时,由所述输出信号代表的数值与对由所述多组输入信号代表的数值执行所述运算操作所得的数学上正确的结果相比,具有相对误差E%,所述E至少等于0.2;其中对于可能的多组输入信号的至少50%,当所述至少一个运算元件对所述多组输入信号执行所述运算操作时,由所述输出信号代表的数值与对由所述多组输入信号代表的数值采用IEEE754单精度浮点运算执行所述运算操作所得的结果相比,具有不大于50%的相对误差;并且,其中在所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行具有至少32位字长的浮点数的浮点运算加法、减法、乘法和除法的运算元件的数量。

【技术特征摘要】
2009.06.19 US 61/218,691;2010.06.15 US 12/816,2011.一种计算设备,所述计算设备包括至少一个运算元件;其中所述至少一个运算元件能被配置成对一组输入信号执行运算操作,以产生输出信号;其中所述一组输入信号中的每个信号代表根据数字表示的数值;其中所述输出信号代表根据所述数字表示的数值;其中由所述数字表示所代表的所述数值的数值范围至少是从六万五千分之一至六万五千;其中对于所述运算操作的有效的输入的特定比例X%,所述X至少等于5,当所述至少一个运算元件对所述有效的输入的特定比例X%的输入信号执行所述运算操作时,由所述输出信号代表的数值与对由所述有效的输入的特定比例X%的输入信号代表的数值执行所述运算操作所得的数学上正确的结果相比,具有相对误差E%,所述E至少等于0.2;并且,其中在所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行具有至少32位字长的浮点数的浮点运算加法、减法、乘法和除法的运算元件的数量。2.如权利要求1所述的设备,其中所述至少一个运算元件包括现场可编程门阵列FPGA的至少一部分。3.如权利要求1所述的设备,其中所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的三倍加20个之和。4.如权利要求3所述的设备,其中所述至少一个运算元件包括现场可编程门阵列FPGA的至少一部分。5.如权利要求1所述的设备,其中所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加50个之和。6.如权利要求1所述的设备,其中在所述设备中的所述至少一个运算元件的数量超过在设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加1000个之和。7.如权利要求1所述的设备,其中所述设备中的所述运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加100个之和。8.如权利要求1所述的设备,其中在所述设备中的所述至少一个运算元件的数量超过在设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加5000个之和。9.如权利要求1所述的设备,其中所述X至少等于10。10.如权利要求1所述的设备,其中所述运算操作是乘法。11.如权利要求1所述的设备,还包括:数字处理器,其用于控制所述至少一个运算元件的操作。12.如权利要求11所述的设备,还包括:存储器,所述至少一个运算元件能够对所述存储器进行本地访问。13.如权利要求12所述的设备,其中所述设备使用数字技术在硅芯片上实现。14.一种计算设备,所述计算设备包括至少一个运算元件;其中所述至少一个运算元件能被配置成对一组输入信号执行运算操作,以产生输出信号;其中所述一组输入信号中的每个信号代表根据混合信号表示的数值,所述混合信号表示由使用模拟表示代表的尾数和使用二进制数值表示代表的指数组成;其中所述输出信号代表根据混合信号表示的数值;其中由所述混合信号表示代表的所述数值的数值范围至少是从六万五千分之一至六万五千;其中对于所述运算操作的有效的输入的特定比例X%,所述X至少等于5,当所述至少一个运算元件对所述有效的输入的特定比例X%的输入信号执行所述运算操作时,由所述输出信号代表的数值与对由所述有效的输入的特定比例X%的输入信号代表的数值执行所述运算操作所得的数学上正确的结果相比,具有相对误差E%,所述E至少等于0.2;并且,其中在所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行具有至少32位字长的浮点数的浮点运算加法、减法、乘法和除法的运算元件的数量。15.如权利要求14所述的设备,其中所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的三倍加20个之和。16.如权利要求14所述的设备,其中所述设备中的所述至少一个运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加50个之和。17.如权利要求14所述的设备,其中在所述设备中的所述至少一个运算元件的数量超过在设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加1000个之和。18.如权利要求14所述的设备,其中所述设备中的所述运算元件的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加100个之和。19.如权利要求14所述的设备,其中在所述设备中的所述至少一个运算元件的数量超过在设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加5000个之和。20.如权利要求14所述的设备,其中所述X至少等于10。21.如权利要求14所述的设备,其中所述运算操作是乘法。22.如权利要求14所述的设备,还包括:数字处理器,其用于控制所述至少一个运算元件的操作。23.如权利要求22所述的设备,还包括:存储器,所述至少一个运算元件能够对所述存储器进行本地访问。24.一种计算设备,包括至少一个第一低精度高动态范围LPHDR执行单元,其适合于对代表第一数值的第一输入信号执行第一运算,以产生代表第二数值的第一输出信号,其中,对所述第一运算的有效的输入的动态范围是至少宽至从1/65,000到65,000,和对于所述第一运算的有效的输入的特定比例X%,所述X大于等于5,当对来自所述第一运算的有效的输入的所述特定比例X%内的每一个特定输入重复地执行所述第一运算时,其中,对所述特定输入执行所述第一运算的所述低精度高动态范围LPHDR单元的所述第一输出信号所代表的数值的统计平均为所产生的结果,对所述特定输入的数值的利用IEEE754单精度浮点运算进行的所述第一运算的数学计算的结果为正确的结果,所述所产生的结果与所述正确的结果之间的差的绝对值不小于所述正确的结果的绝对值的Y,其中Y=0.05%;其中所述计算设备使用三维制造技术实现。25.如权利要求24所述的设备,其中所述至少一个第一低精度高动态范围LPHDR执行单元包括现场可编程门阵列FPGA的至少一部分。26.如权利要求24所述的设备,其中,在所述设备中的所述低精度高动态范围LPHDR执行单元的总的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的三倍加20个之和。27.如权利要求24所述的设备,其中所述至少一个第一低精度高动态范围LPHDR执行单元包括现场可编程门阵列FPGA的至少一部分。28.如权利要求24所述的设备,其中在所述设备中的低精度高动态范围LPHDR执行单元的总的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加50个之和。29.如权利要求24所述的设备,其中在所述设备中的低精度高动态范围LPHDR执行单元的总的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加100个之和。30.如权利要求24所述的设备,其中在所述设备中的低精度高动态范围LPHDR执行单元的总的数量超过在所述设备中的被设计成执行传统精度的具有32位或更多位的字长的浮点运算加法、减法、乘法和除法的执行单元的总的数量,超过后者的执行单元的总的数量的五倍加100个之和,其中所述设备包括所述至少一个低精度高动态范围LPHDR执行单元局部可访问的存储器,且其中所述设备使用数字技术在硅芯片上实现。31.一种计算设备,包括至少一个第一低精度高动态范围LPHDR执行单元,其适合于对代表第一数值的第一输入信号执行第一运算,以产生代表第二数值的第一输出信号,其中,对所述第一运算的有效的输入的动态范围是至少宽至从1/...

【专利技术属性】
技术研发人员:约瑟夫·贝茨
申请(专利权)人:奇异计算有限公司
类型:发明
国别省市:美国;US

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

1