用于计算数据的方法和设备的制造方法_2

文档序号:9708268阅读:来源:国知局
确定单元120和计算单元130可由单个处理器或多个处理器实现。处理器可由逻辑门阵列实现,或由微处理器和存储有将被微处理器执行的程序的存储器的组合实现。该示例所属领域的普通技术人员还将理解,处理器可由其他类型的硬件实现。
[0052]获取单元110获取输入的第一数据和先前存储的第二数据之间的差。第一数据和第二数据是与使用浮点方法表示的数相应的数据。例如,第一数据和第二数据可以强烈地彼此相邻。通过强烈地彼此相邻,第一数据的计算结果和第二数据的计算结果可以彼此相同或彼此非常相似。由于第一数据和第二数据分别与使用浮点方法表示的数对应,因此由获取单元110获取的第一数据和第二数据之间的差可被表示为预定数。
[0053]中央处理单元(CPU)或图形处理单元(GPU)可基于输入的数据计算数学函数。换言之,CPU或GPU可输出将使用浮点方法表示的数代入将该数用作操作数的数学函数中的结果。数学函数的示例包括倒数函数、倒数平方根函数、以2为底的对数函数、以2为底的指数函数、三角函数和本领域普通技术人员已知的任何其他数学函数。如果代入数学函数中的多条输入数据在特定范围内,则可获得相同或相似的输出结果。现在将参照图2A和图2B详细描述数学函数的示例。
[0054]图2A和图2B是用于解释数学函数和输入数据的示例的示图。
[0055]图2A示出作为数学函数的示例的以2为底的对数函数210和以2为底的指数函数220。图2A的对数函数210和指数函数220是彼此的反函数。图2B示出作为先前输入到CPU或GPU的数据的第二数据230和作为当前输入到CPU或GPU的数据的第一数据240的示例。
[0056]当多条输入数据的值在特定范围内时,由CPU或GPU将这多条输入数据代入数学函数中所获得的多条输出数据可具有相同或相似的值。例如,假设CPU通过将输入数据代入对数函数210来产生输出数据,则当具有小倾角的对数函数210的区间内的多条数据被输入到CPU或GPU时,分别与多条输入数据相应的多条输出数据可彼此相同或彼此非常相似。
[0057]通常,连续输入到CPU或GPU的多条数据可在特定范围内。例如,假设在第二数据230被输入到GPU之后第一数据240被输入到GPU,则第一数据240和第二数据230可以是在特定范围内的近似数。
[0058]例如,如果第二数据230是与使用浮点方法表示的10.000001相应的8比特数据并且第一数据240是与使用浮点方法表示的10.000010相应的8比特数据,则第二数据230和第一数据240仅在两个较低位250不同,且具有相同的六个较高位。
[0059]因此,CPU或GPU将第二数据230代入数学函数所获得的结果可与CPU或GPU将第一数据240代入数学函数所获得的结果相同或非常近似。因此,CPU或GPU可通过将输入数据代入逼近数学函数的多项式来执行计算。在这种情况下,可将多项式的系数预先存储在查找表中。
[0060]图3是用于解释由包括在CPU或GPU中的计算器基于存储在查找表中的系数执行的计算的示例的框图。
[0061]通常,CPU或GPU通过将输入数据310代入多项式来获取与数学函数相应的结果。例如,假设数学函数是以2为底的对数函数210,则CPU或GPU通过将输入数据310代入逼近对数函数210的多项式来执行计算。在这种情况下,多项式计算所需的系数被存储在查找表320中。
[0062]当输入数据310被输入到CPU或GPU时,从查找表320读取计算输入数据310所使用的系数。计算器330基于输入数据310和从查找表320读取的系数来执行计算,并输出作为计算结果的输出数据340。因此,可通过将与可被输入到CPU或GPU的所有条的输入数据310相应的系数存储在查找表320中来提高由计算器330执行的计算的精度。
[0063]当连续输入到CPU或GPU的多条数据彼此相似时,如果基于先前输入数据和当前输入数据之间的差计算当前输入数据,则可减少需要被存储在查找表320中的信息量。数据计算设备100计算先前输入数据和当前输入数据之间的差,并基于该差计算当前输入数据。因此,数据计算设备100可减少存储在查找表中的信息量,并还可减少由于执行乘法而发生的逻辑门之间的切换的次数。
[0064]返回参照图1,确定单元120基于获取的差确定产生与第一数据的计算结果相应的第三数据的方法。第三数据是当第一数据被输入到数据计算设备100时由数据计算设备100输出的数据。换言之,确定单元120确定当第一数据被输入时产生第三数据的方法。基于第一数据和由获取单元110获取的第二数据之间的差来确定该方法。
[0065]例如,确定单元120从获取单元110接收第一数据和第二数据之间的差,并将接收的差与预定阈值进行比较。之后,确定单元120基于比较的结果确定产生第三数据的方法。
[0066]如果第一数据和第二数据之间的差超过阈值,则确定单元120选择基于第一数据执行计算的方法(下文中被称为整体计算)。如果第一数据和第二数据之间的差小于或等于阈值,则确定单元120选择基于第一数据和第二数据之间的差以及第二数据的计算结果来执行计算的方法(下文中被称为差计算)。
[0067]计算单元130使用至少一个计算器执行与由确定单元120确定的方法相应的计算。换言之,计算单元130可经由整体计算或差计算产生第三数据。
[0068]在差计算中,可使用基于第一数据和第二数据之间的差或第一数据确定的系数。可从包括在数据计算设备100中的查找表读取系数,并可与第一数据和第二数据之间的差或第一数据对应地将系数映射在查找表内。
[0069]计算单元130使用包括在数据计算设备100中的至少一个计算器执行计算。例如,计算单元130可使用单个计算器执行计算,或者可使用用于执行整体计算的第一计算器或用于执行差计算的第二计算器来执行计算。当计算单元130使用单个计算器执行计算时,计算单元130可仅使用单个计算器的一部分来执行计算。在这种情况下,单个计算器可以是能够执行N位乘法和N/2位乘法的多精度计算器,但是不限于此。
[0070]现在将参照图4描述确定单元120确定计算方法和计算单元130执行计算的示例。
[0071]图4是图1的数据计算设备的操作方法的示例的流程图。
[0072]图4中示出的操作是由图1的数据计算设备100按顺序执行的操作。因此,虽然这里省略,但是以上对图1的数据计算设备100的描述还可应用于图4中示出的方法。
[0073]在操作410,获取单元110接收第一数据。换言之,第一数据被输入到数据计算设备100。第一数据是将由数据计算设备100计算的数据,并且可以是例如由包括在GPU中的着色器处理的数据。例如,第一数据可与使用浮点方法表示的数相应,但是不限于此。
[0074]在操作420,将第一数据存储在包括在数据计算设备100中的存储单元中,并从存储单元读取第二数据。第二数据是恰好在第一数据被输入到数据计算设备100之前被输入到数据计算设备100的数据。换言之,第一数据在第二数据被输入到数据计算设备100之后按顺序被输入到数据计算设备100。
[0075]在操作430,获取单元110获取第一数据和第二数据之间的差数据。差数据是与第一数据和第二数据之间的差相应的数据或者与第一数据和第二数据之间的变化相应的数据。由于第一数据和第二数据可以分别是与使用浮点方法表示的数相应的数据,因此获取单元110可基于第一数据和第二数据获取差数据。
[0076]例如,获取单元110可根据下面的等式1获取差数据。
[0077]adlff= an+1-an (1)
[0078]在等式1中,adlff表示差数据,a n+1表示第一数据,a ?表示第二数据。
[0079]在操作440,确定单元120确定差数据是否小于或等于阈值。阈值可以由用户预先设置,或者可由数据计算设备100自动设置而无需用户干预。在这种情况下,可根据数据计算结果期望的精度来设置阈值。
[0080]如果在操作440确定差数据超过阈值,则方法进行到操作450。如果确定差数据小于或等于阈值,则方法进行到操作460。
[0081]在操作450,计算单元130执行整体计算。换言之,确定单元120将基于第一数据执行计算的方法(即,整体计算)确定为产生第三数据的方法,并且计算单元130执行整体计算以产生第三数据。例如,计算单元130可通过将第一数
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1