买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:三星电子株式会社
摘要:本发明涉及一种使用查找表的计算加速器。所述加速器可通过从查找表检索两个浮点操作数的乘积的小数部分或通过从查找表检索两个浮点操作数的乘积来加速浮点乘法,或者所述加速器可从查找表检索浮点向量的点积。所述加速器可实施在三维存储总成中。所述加速器可使用近似法、乘法查找表的对称性及零跳过来改善性能。也提供计算乘积的方法及系统和计算点积及计算卷积的方法。
主权项:1.一种计算第一浮点数与第二浮点数的乘积的方法,所述方法包括:从以下因数形成地址:第一因数,所述第一因数是所述第一浮点数的因数,以及第二因数,所述第二因数是所述第二浮点数的因数;以及从查找表中的位置检索所述第一因数与所述第二因数的乘积,所述位置是由所述地址标识,其中所述地址是基于确定所述第一因数与所述第二因数中的较大者为所述地址中的较高有效位及较小者为所述地址中的较低有效位来拼接所述第一因数与所述第二因数所形成,以及其中所述查找表的每一单元存储正规化乘积,所述正规化乘积是浮点乘积的小数。
全文数据:计算乘积的方法及系统和计算点积及计算卷积的方法[相关申请的交叉参考]本申请主张在2018年1月9日提出申请且名称为“软件定义的查找计算AI加速器系统架构SOFTWAREDEFINEDLOOKUPCOMPUTINGAIACCELERATORSYSTEMARCHITECTURE”的美国临时专利申请第62615,334号的优先权及权利,所述美国临时专利申请的全部内容并入本文中供参考。技术领域根据本发明的实施例的一个或多个方面涉及计算,且更具体来说,涉及一种使用一个或多个查找表来加速计算的系统及方法。背景技术包括神经网络系统在内的人工智能系统所使用的各种运算可利用例如乘法及矩阵乘法等运算,且每一乘法所消耗的时间或矩阵乘法所消耗的时间可显著影响系统的总体性能。因此,需要一种高效执行例如乘法或矩阵乘法等计算的系统及方法。发明内容本发明各实施例的方面涉及一种使用查找表的计算加速器。所述加速器可通过从查找表检索两个浮点操作数的乘积的小数部分或通过从查找表检索两个浮点操作数的乘积来加速浮点乘法,或者所述加速器可从查找表检索浮点向量的点积。所述加速器可实施在三维存储总成中。所述加速器可使用近似法、乘法查找表的对称性及零跳过来改善性能。根据本发明的实施例,提供一种计算第一浮点数与第二浮点数的乘积的方法,所述方法包括:从以下因数形成地址:第一因数,所述第一因数是所述第一浮点数的因数,以及第二因数,所述第二因数是所述第二浮点数的因数;以及从查找表中的位置检索所述第一因数与所述第二因数的乘积,所述位置是由所述地址标识。在一个实施例中,所述第一因数是所述第一浮点数的小数部分,且所述第二因数是所述第二浮点数的小数部分。在一个实施例中,所述方法包括将所述第一浮点数与所述第二浮点数的所述乘积的指数作为以下的值进行计算:所述第一浮点数的指数与所述第二浮点数的指数的和减去与以下两者的2n位乘积中的前导0个数相等的左移数:通过对所述第一因数附加前导1而形成的第一数与通过对所述第二因数附加前导1而形成的第二数,其中:n是1加上所述第一因数的位长度。在一个实施例中,所述方法包括使用数字逻辑电路确定所述左移数。在一个实施例中,所述方法包括从查找表中的由所述地址标识的位置检索所述左移数。在一个实施例中,所述形成所述地址包括:拼接所述第一因数的一部分与所述第二因数的一部分。在一个实施例中,所述拼接所述第一因数的所述一部分与所述第二因数的所述一部分包括根据所述第一因数的所述一部分与所述第二因数的所述一部分各自的值按顺序拼接所述第一因数的所述一部分与所述第二因数的所述一部分。在一个实施例中,所述第一因数的所述一部分是整个所述第一因数,且所述第二因数的所述一部分是整个所述第二因数。在一个实施例中,所述第一因数的所述一部分:小于整个所述第一因数,且是包括所述第一因数的最高有效位的所述第一因数的位的连续子集;且所述第二因数的所述一部分:小于整个所述第二因数,且是包括所述第二因数的最高有效位的所述第二因数的位的连续子集。在一个实施例中,所述第一因数是整个所述第一浮点数,且所述第二因数是整个所述第二浮点数。在一个实施例中,所述方法包括创建所述查找表,所述创建包括:计算所述查找表的元素;以及将所述元素存储在存储器中。根据本发明的实施例,提供一种计算第一浮点数与第二浮点数的乘积的系统,所述系统包括:处理电路,以及存储器,所述处理电路被配置成:从以下因数形成地址:所述第一浮点数的第一因数,以及所述第二浮点数的第二因数;以及从查找表中的由所述地址标识的位置检索所述第一因数与所述第二因数的乘积,所述查找表存储在所述存储器中。在一个实施例中,所述系统包括:由两个或更多个存储芯片形成的堆叠;以及包括所述处理电路的逻辑芯片。在一个实施例中,所述第一因数是所述第一浮点数的小数部分,且所述第二因数是所述第二浮点数的小数部分。在一个实施例中,所述形成所述地址包括:拼接所述第一因数的一部分与所述第二因数的一部分。在一个实施例中,所述拼接所述第一因数的所述一部分与所述第二因数的所述一部分包括根据所述第一因数的所述一部分与所述第二因数的所述一部分各自的值按顺序拼接所述第一因数的所述一部分与所述第二因数的所述一部分。在一个实施例中,所述第一因数的所述一部分是整个所述第一因数,且所述第二因数的所述一部分是整个所述第二因数。在一个实施例中,所述第一因数的所述一部分:小于整个所述第一因数,且是包括所述第一因数的最高有效位的所述第一因数的位的连续子集;且所述第二因数的所述一部分:小于整个所述第二因数,且是包括所述第二因数的最高有效位的所述第二因数的位的连续子集。在一个实施例中,所述第一因数是整个所述第一浮点数,且所述第二因数是整个所述第二浮点数。根据本发明的实施例,提供一种计算第一浮点向量与第二浮点向量的点积的方法,所述方法包括:从以下元素形成地址:所述第一浮点向量的第一元素,所述第一浮点向量的第二元素,所述第二浮点向量的第一元素,以及所述第二浮点向量的第二元素;以及从查找表中的由所述地址标识的位置检索所述点积。在一个实施例中,以下中的每一者均是8位浮点数:所述第一浮点向量的所述第一元素,所述第一浮点向量的所述第二元素,所述第二浮点向量的所述第一元素,以及所述第二浮点向量的所述第二元素。根据本发明的实施例,提供一种计算第一浮点矩阵与第二浮点矩阵的卷积的方法,所述方法包括:创建包含矩阵卷积运算的结果的查找表;从以下元素形成地址:所述第一矩阵的元素,以及所述第二矩阵的元素;以及从所述查找表中的位置检索所述第一浮点矩阵与所述第二浮点矩阵的所述卷积,所述位置由所述地址标识。附图说明参照说明书、权利要求书及附图,将了解及理解本发明的这些以及其他特征及优点,附图中:图1是示出根据本发明实施例的浮点乘法的方框图。图2是根据本发明实施例的查找表的图示。图3是示出根据本发明实施例的浮点乘法的方框图。图4是根据本发明实施例的可按比例缩放加速器架构的图示。[符号的说明]110:异或电路;120:乘法器;130:正规化电路;210:查找表;405:中央处理器;410:存储堆叠;415:前端控制器;420:逻辑芯片;425:由存储芯片形成的堆叠;A:第一操作数;B:第二操作数。具体实施方式以下结合附图所述的详细说明旨在作为对根据本发明所提供的使用查找表的计算加速器的示例性实施例的说明,而非旨在表示其中可构造或利用本发明的仅有形式。所述说明结合所示的实施例陈述本发明的特征。然而,应理解,可通过也旨在涵盖于本发明的范围内的不同实施例来实现相同的或等效的功能及结构。如本文中别处所示,相同的元件编号旨在指示相同的元件或特征。参照图1,将两个浮点数或“操作数”相乘可涉及若干步骤。每一浮点数可包括正负号位、指数其可为带正负号整数及小数。举例来说,在IEEE标准754浮点表示形式中,浮点数可以32个位来表示,其中的一个位是浮点数的正负号位,八个位是浮点数的指数被表示为带正负号2的补码整数且23个位是浮点数的小数或“小数部分”。小数可为具有隐含前导1的不带正负号的数。由左侧附加有前导1即,其中隐含前导1是被显式地附加的小数组成的位序列在本文中可被称为“增广小数”。在此种表示形式中,浮点数可表示其定点表示形式可通过以下方式而形成的数:在小数部分的左侧附加前导1位,在前导1的右侧放置小数点即,二进制小数点,将数左移即,将小数点右移与指数相等的数目个位位置或如果指数是负的,则将数右移即,将小数点左移与指数的值的相反数相等的数目个位位置,且如果浮点表示形式的正负号位是1,则接着改变所得定点数的正负号。为了如图1所示将两个浮点操作数相乘,可使用异或exclusiveor,XOR电路110来组合所述两个浮点数的正负号位,可将所述两个浮点数的指数相加即,使用带正负号的加法,或如图1所示在具有适当偏差的情况下使用不带正负号的加法,可通过乘法器120将所述两个浮点数的小数相乘。在将小数相乘之前,可在所述两个浮点数的小数的左侧附加隐含前导1,以形成分别与所述两个浮点数的小数对应的两个增广小数。接着,可通过正规化电路130将增广小数的乘积及指数的和正规化,以形成所述两个浮点数的乘积的指数及小数。如果增广小数的乘积并非是零,则正规化可涉及将乘积形成为增广小数的2n位不带正负号整数n是增广小数中的每一者的位宽度,从增广小数的乘积舍去任何前导0,并从增广小数的乘积舍去数个最低有效位以使得在所述舍去之后剩余的位的数目是n,且删除前导1以形成两个浮点操作数的浮点乘积的小数。浮点乘积的小数可被称为两个浮点操作数的小数的“正规化乘积”或者等效地,被称为两个浮点操作数的增广小数的“正规化乘积”。接着,如果需要,则可通过从指数减去“左移数”来调整所述指数,以补偿从增广小数的乘积对任何前导0的舍去。左移数可等于增广小数的乘积中前导0的数目。在每种情形中,前导0的此数目或“前导0个数”均可为1或0。如果增广小数的乘积是0,则正规化可涉及将浮点乘积的小数设定成0并将浮点乘积的指数设定成等于各操作数的指数的和。可通过查找表来执行处理两个浮点操作数的小数以形成两个浮点操作数的浮点乘积的小数。图2显示查找表210,其在与第一操作数A的值对应的一行及与第二操作数B的值对应的一列处的单元中包含乘积A×B。举例来说,对于具有具223=8,388,608个可能值的23位小数部分的浮点表示形式,可使用8,388,608×8,388,608查找表,其中每一行对应于第一浮点操作数的小数的8,388,608个可能值中的一者,且每一列对应于第二浮点操作数的小数的8,388,608个可能值中的一者。可通过在每一单元中存储以下小数值的正规化乘积来创建所述表:i与单元所在的行对应的小数值,以及ii与单元所在的列对应的小数值。在运算中,可通过从以下两者形成地址来“查找”即,从表中读出两个浮点操作数的乘积的小数:i第一浮点数的小数,以及ii第二浮点数的小数,所述地址是包含所述两个浮点操作数的乘积的小数的单元的地址。举例来说,所述表可作为一维阵列存储在具有存储器的处理电路的存储器中或者等效地,存储在与处理电路连接的存储器中,所述一维阵列的前8,388,608个元素是所述表的第一行,所述一维阵列的接下来的8,388,608个元素是所述表的第二行,等等。如果表中所存储的每一小数占据一个地址例如,如果存储器的宽度是32个位且小数的宽度是23个位并且剩余的9个位是未用的或用于另一用途,则可通过拼接第一浮点数的小数的位与第二浮点数的小数的位以形成地址其是位数多达所述两个小数中的任一者的两倍的不带正负号整数来简单地形成所述地址。此种方法也可用于将小数长度不同的呈不同的浮点表示形式的浮点数相乘。在此种情形中,所述表可为矩形的而非正方形的。举例来说,如果第一浮点数是具有23位小数的单精度32位浮点数且第二浮点数是具有52位小数的双精度64位浮点数,则所述表可具有8,388,608个行及252个列。在一些实施例中,通过针对每次查找利用乘法交换律,根据两个小数各自的值按顺序拼接所述两个小数例如,其中较大者为第一个即,在地址的较高有效位中且较小者为第二个即,在地址的较低有效位中,可将表的大小缩减至大约二分之一。在此种情形中,查找表的一部分如果查找表被绘制为正方形二维数据结构,则所述一部分对应于查找表的三角形区可为未使用的且可用于其他用途,或者如果使用适合的存储器电路,则可以不实施这些存储器部分即,可以不存在这些存储器部分。在其他实施例中,可将表存储为一组长度不等例如,单调增加或单调减小的行,且可相应地计算与所寻找的小数对应的单元的地址。参照图3,如果对于两个操作数均使用半精度16位浮点表示形式具有10位小数,则查找表的大小可仅为1024×1024,其中每一单元存储10位小数。在一些实施例中,不执行其中有任一操作数是0的乘法,例如,当任一对的两个浮点操作数中有任一者是0时,将所述两个浮点操作数分流到旁路单元,可实现性能的改进。在一些实施例中,可通过使用近似法来实现性能的改进。这可例如通过对第一浮点操作数的小数及第二浮点操作数的小数进行舍位并从舍位后的小数形成地址来实现,所述地址标识相应更小的表中的单元。对小数中的每一者的舍位可涉及使用小数的仅一部分,所述一部分由小数的位的真子集组成,所述子集是包括小数的最高有效位的连续子集。在一些实施例中,并非将查找表仅用于确定两个浮点操作数的小数的乘积,而是可采用查找表来查找两个浮点操作数的浮点乘积。举例来说,如果对于两个操作数均使用半精度16位浮点表示形式,则可使用216×216即,65,536×65,536查找表,所述查找表的每一单元包含以下浮点数的16位乘积:i与单元所在的行对应的浮点数,以及ii与单元所在的列对应的浮点数。如本文中所使用,浮点数的“因数”意指i浮点数的小数部分,或者ii整个浮点数,且其中在查找表中查找第一浮点数的因数与第二浮点数的因数的乘积的实施例可为:i其中通过在查找表中查找两个浮点操作数的小数部分的乘积来计算所述两个浮点操作数的乘积的实施例,或者ii其中通过在查找表中查找两个浮点操作数的乘积来计算所述两个浮点操作数的乘积的实施例。在其中通过在查找表中查找两个浮点操作数的小数部分的乘积来计算所述两个浮点操作数的乘积的一些实施例中,还可使用查找表例如,与查找小数部分的乘积所使用的查找表并行的查找表、或者同一查找表来获得左移数其中每一单元可具有比小数部分的乘积的宽度大的位宽度,且可使用一个或多个额外位来存储左移数。在其他实施例中,可通过适合的逻辑电路例如,具有2n个输入以及一个或多个用于输出左移数的输出的电路,其中n是第一浮点数及第二浮点数中的每一者的小数部分的长度来计算左移数。在一些实施例中,可使用查找表来执行例如点积或矩阵卷积等的其他运算。举例来说,如果两个2×1向量中的每一向量的每一元素被表示成四分之一精度8位浮点表示形式,则可通过在具有232大约40亿个单元216个行及216个列的查找表中进行单次查找来计算所述两个2×1向量的点积。在此种实施例中,可拼接四个元素两个二元素向量中的每一者有两个元素,以形成包含点积的查找表单元的32位地址。如本文中所使用,用语“矩阵”囊括向量即,向量可被视为1×n矩阵或n×1矩阵。参照图4,在一些实施例中,使用本发明实施例的加速器位于卡上。所述卡上的组件包括基于外围组件互连快速PeripheralComponentInterconnectExpress,PCIe或动态随机存取存储器dynamicrandomaccessmemory,DRAM接口的加速器卡、直接存储器存取directmemoryaccess,DMA引擎、具有流程控制的接口控制器、及功率控制器。中央处理器centralprocessingunit,CPU405充当前端主机,从而例如提供与图形处理器graphicsprocessingunit,GPU或现场可编程门阵列fieldprogrammablegatearray,FPGA所述图形处理器或现场可编程门阵列可位于其他卡上的异构集成。可如图4所示来实现系统按比例缩放,其中多个存储堆叠410支持中央处理器405或图形处理器、现场可编程门阵列或专用集成电路applicationspecificintegratedcircuit,ASIC。中央调度器在多个存储堆叠410之间分配任务、收集结果并计算最终结果。每一存储堆叠410可包括前端控制器415、三维存储总成,所述三维存储总成包括逻辑芯片420例如,高带宽存储器high-bandwidthmemory,HBM逻辑裸片及由存储芯片形成的堆叠425。可配合中央处理器405而在逻辑芯片上实施累加及其他功能。逻辑芯片420可对控制器命令进行解码,且发布内部微运算以起始基于查找的计算。高速缓冲存储器及高速缓存控制器可被实施为子系统也在逻辑芯片420上,例如在逻辑裸片上的静态随机存取存储器staticrandomaccessmemory,SRAM中。高速缓冲存储器可为静态随机存取存储器或嵌入式动态随机存取存储器。存储器接口可为具有具确定性时序规范的单步协议的同步高带宽存储器接口。所述存储器接口可使用同步事务接口或两步事务接口在逻辑芯片420与由存储芯片形成的堆叠425之间。在另一实施例中,存储器接口是异步的且具有两步协议,以在对于新的事务引脚作出物理层physicallayer,PHY修改的情况下使用事务命令。库应用编程接口applicationprogramminginterface,API可包括以可由主机处理器例如,中央处理器405辨识的指令集修改的应用框架。此应用编程接口可用于使中央处理器405能够使用加速器卡。可使用指令集架构instructionsetarchitecture,ISA在逻辑芯片420上调度应用编程接口中的功能的执行。控制流程可如下进行。程序可登记待执行的计算的特定性质。所述程序接着可加载所指定地址范围处的预计算表。此流程可在运行时期间启用基于操作数的查找;还可将异常处理包含于查找表中。浮点异常例如可包括无效运算、除以零、下溢、溢出及不准确。查找表容许在对表自身进行编程的同时处理异常。具体来说,软件控制算法可避免在查找表被编程时将此类将填入查找表中的不正确的值的填入。查找表可用于计算昂贵的结果。各存储堆叠410中的逻辑芯片420可被编程为加速各自的不同运算。举例来说,在图4所示系统中,所示的两个逻辑芯片420中的第一逻辑芯片420可被编程为执行浮点乘法且适合的查找表可存储在与第一逻辑芯片420相关联的存储芯片的堆叠425中,并且所示的两个逻辑芯片420中的第二逻辑芯片420可被编程为计算点积且适合的查找表可存储在与第二逻辑芯片420相关联的存储芯片的堆叠425中。接着,应用框架可直接利用由加速器产生的结果。如本文中所使用,由位序列表示的数的一“部分”例如,浮点数、或浮点数的小数部分、或整数是整个位序列或位序列的连续真子集。如本文中所使用,两个相应浮点操作数的两个小数部分的“乘积”是由所述两个操作数的浮点乘法产生的浮点数呈现与所述两个操作数中的每一者相同的浮点表示形式的小数部分。如果两个操作数呈现不同的浮点表示形式例如,小数长度不等的浮点表示形式,则两个小数部分的“乘积”是以所述两个操作数的浮点表示形式中具有较短小数部分的浮点表示形式而表达的浮点乘积的小数。应理解,一般来说,两个浮点数的乘积被表示为与操作数中的一者具有相同精度的浮点数将为近似值,因为正规化将使得一些非零位被舍去。因此,两个浮点操作数的“乘积”意指i两个浮点数的准确乘积例如,如果舍位使得仅零位被舍去,或者ii两个浮点数的近似乘积。用语“处理电路”在本文中用于意指处理数据或数字信号所采用的硬件、固件及软件的任一组合。处理电路硬件可例如包括专用集成电路ASIC、通用或专用中央处理器CPU、数字信号处理器digitalsignalprocessor,DSP、图形处理器GPU及可编程逻辑装置例如现场可编程门阵列FPGA。在本文所使用的处理电路中,每一功能由被配置即,被硬连线成执行所述功能的硬件执行,或者由被配置成执行存储在非暂时性存储媒体中的指令的更通用硬件例如中央处理器执行。处理电路可制作在单个印刷电路板printedcircuitboard,PCB上,或者分布在若干经互连的印刷电路板上。处理电路可包含其他处理电路;例如,处理电路可包括在印刷电路板上被互连的两个处理电路,即现场可编程门阵列及中央处理器。应理解,虽然本文中可使用用语“第一”、“第二”、“第三”等来阐述各种元件、组件、区、层及或区段,然而这些元件、组件、区、层及或区段不应受这些用语限制。这些用语仅用于将一个元件、组件、区、层或区段与另一元件、组件、区、层或区段区分开。因此,在不背离本发明概念的精神及范围的条件下,本文中所述的第一元件、第一组件、第一区、第一层或第一区段可被称为第二元件、第二组件、第二区、第二层或第二区段。为易于说明,本文中可能使用例如“在...下方beneath”、“在...下面below”、“下部的lower”、“在...之下under”、“在...上方above”、“上部的upper”等空间相对性用语来阐述图中所示出的一个元件或特征与另一些元件或特征的关系。应理解,此类空间相对性用语旨在除图中所绘示的定向以外还囊括装置在使用或操作中的不同定向。举例来说,如果将图中的装置翻转,则被阐述为在其他元件或特征“下面”或“下方”或“之下”的元件将被定向成在所述其他元件或特征“上方”。因此,示例性用语“在…下面”及“在…之下”可囊括在…上方及在…下面两种定向。装置可具有其他定向例如,旋转90度或其他定向,且本文中所用的空间相对性描述语应相应地进行解释。另外,还应理解,当将层称为在两个层“之间”时,所述层可为所述两个层之间的仅有层,或者还可存在一个或多个中间层。本文中所使用的用语仅用于阐述特定实施例,而非旨在限制本发明概念。如本文中所使用,用语“实质上substantially”、“约about”及类似用语用作近似用语而非用作程度用语,且旨在考虑到所属领域中的普通技术人员将认识到的所测量值或所计算值的固有偏差。如本文中所使用,用语“主要组分majorcomponent”指代以比组合物、聚合物或产物中的任何其他单一组分的量大的量存在于所述组合物或产物中的组分。相比之下,用语“主组分primarycomponent”指代构成组合物、聚合物或产物的按重量计至少50%或更多的组分。如本文中所使用,用语“主要部分”在应用于多个项时意指各项的至少一半。如本文中所使用,除非上下文另有清楚指示,否则单数形式“一个a及an旨在也包括复数形式。还应理解,在本说明书中所使用的用语“包括comprises及或comprising”指明所陈述特征、整数、步骤、操作、元件及或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元件、组件及或其群组的存在或添加。如本文中所使用,用语“及或andor”包括相关联所列各项中的一者或多者的任意及所有组合。当位于一系列元件之前时,例如“中的至少一者atleastoneof”等表达语修饰整个所述一系列元件且不修饰所述一系列中的个别元件。此外,在阐述本发明概念的实施例时所使用的“可may”指代“本发明概念的一个或多个实施例”。此外,用语“示例性exemplary”旨在指代实例或例证。如本文中所使用,用语“使用use”、“正使用using”及“被使用used”可被视为分别与用语“利用utilize”、“正利用utilizing”及“被利用utilized”同义。应理解,当将元件或层称为“位于”另一元件或层“上”、“连接到”、“耦合到”或“相邻于”另一元件或层时,所述元件或层可直接位于所述另一元件或层上、直接连接到、直接耦合到或直接相邻于所述另一元件或层,或者可存在一个或多个中间元件或层。相比之下,当将元件或层称为“直接位于”另一元件或层“上”、“直接连接到”、“直接耦合到”或“紧邻于”另一元件或层时,不存在中间元件或层。本文中所述的任一数值范围旨在包括归入所述范围内的具有相同数值精度的所有子范围。举例来说,范围“1.0至10.0”旨在包括介于所述最小值1.0与所述最大值10.0之间且包括所述最小值1.0及所述最大值10.0即,具有等于或大于1.0的最小值及等于或小于10.0的最大值的所有子范围,例如,2.4至7.6。本文中所述的任一最大数值限制旨在包括归入其中的所有较低数值限制,且本说明书中所述的任一最小数值限制旨在包括归入其中的所有较高数值限制。虽然本文中已具体阐述及示出了使用查找表的计算加速器的示例性实施例,然而对于所属领域中的技术人员来说,许多修改及变化形式将为显而易见的。因此,应理解,使用根据本发明原理所构造的查找表的计算加速器可以除本文中所具体阐述的方式之外的方式来实施。本发明还在以上权利要求书及其等效内容中被界定。
权利要求:1.一种计算第一浮点数与第二浮点数的乘积的方法,所述方法包括:从以下因数形成地址:第一因数,所述第一因数是所述第一浮点数的因数,以及第二因数,所述第二因数是所述第二浮点数的因数;以及从查找表中的位置检索所述第一因数与所述第二因数的乘积,所述位置是由所述地址标识。2.根据权利要求1所述的方法,其中所述第一因数是所述第一浮点数的小数部分,且所述第二因数是所述第二浮点数的小数部分。3.根据权利要求2所述的方法,其中所述第一浮点数与所述第二浮点数呈相同的表示形式,所述方法还包括将所述第一浮点数与所述第二浮点数的所述乘积的指数作为以下值的和进行计算:所述第一浮点数的指数,与所述第二浮点数的指数减去:与以下两者的2n位乘积中的前导0个数相等的左移数:通过对所述第一因数附加前导1而形成的第一数,与通过对所述第二因数附加前导1而形成的第二数,其中:n是1加上所述第一因数的位长度。4.根据权利要求3所述的方法,还包括使用数字逻辑电路确定所述左移数。5.根据权利要求3所述的方法,还包括从所述查找表中的由所述地址标识的位置检索所述左移数。6.根据权利要求2所述的方法,其中形成所述地址包括:拼接所述第一因数的一部分与所述第二因数的一部分。7.根据权利要求6所述的方法,其中所述拼接所述第一因数的所述一部分与所述第二因数的所述一部分包括根据所述第一因数的所述一部分与所述第二因数的所述一部分各自的值按顺序拼接所述第一因数的所述一部分与所述第二因数的所述一部分。8.根据权利要求6所述的方法,其中所述第一因数的所述一部分是整个所述第一因数,且所述第二因数的所述一部分是整个所述第二因数。9.根据权利要求6所述的方法,其中:所述第一因数的所述一部分是:小于整个所述第一因数,且包括所述第一因数的最高有效位的所述第一因数的位的连续子集;且所述第二因数的所述一部分是:小于整个所述第二因数,且包括所述第二因数的最高有效位的所述第二因数的位的连续子集。10.根据权利要求1所述的方法,其中所述第一因数是整个所述第一浮点数,且所述第二因数是整个所述第二浮点数。11.根据权利要求1所述的方法,还包括创建所述查找表,所述创建包括:计算所述查找表的元素;以及将所述元素存储在存储器中。12.一种计算第一浮点数与第二浮点数的乘积的系统,所述系统包括:处理电路,以及存储器,所述处理电路被配置成:从以下因数形成地址:所述第一浮点数的第一因数,以及所述第二浮点数的第二因数;以及从查找表中的由所述地址标识的位置检索所述第一因数与所述第二因数的乘积,所述查找表存储在所述存储器中。13.根据权利要求12所述的系统,其中所述系统实施在三维存储总成中,所述三维存储总成包括:由两个或更多个存储芯片形成的堆叠;以及包括所述处理电路的逻辑芯片。14.根据权利要求12所述的系统,其中所述第一因数是所述第一浮点数的小数部分,且所述第二因数是所述第二浮点数的小数部分。15.根据权利要求14所述的系统,其中形成所述地址包括:拼接所述第一因数的一部分与所述第二因数的一部分。16.根据权利要求15所述的系统,其中拼接所述第一因数的所述一部分与所述第二因数的所述一部分包括根据所述第一因数的所述一部分与所述第二因数的所述一部分各自的值按顺序拼接所述第一因数的所述一部分与所述第二因数的所述一部分。17.根据权利要求15所述的系统,其中所述第一因数的所述一部分是整个所述第一因数,且所述第二因数的所述一部分是整个所述第二因数。18.根据权利要求15所述的系统,其中:所述第一因数的所述一部分是:小于整个所述第一因数,且包括所述第一因数的最高有效位的所述第一因数的位的连续子集;且所述第二因数的所述一部分是:小于整个所述第二因数,且包括所述第二因数的最高有效位的所述第二因数的位的连续子集。19.根据权利要求12所述的系统,其中所述第一因数是整个所述第一浮点数,且所述第二因数是整个所述第二浮点数。20.一种计算第一浮点向量与第二浮点向量的点积的方法,所述方法包括:从以下元素形成地址:所述第一浮点向量的第一元素,所述第一浮点向量的第二元素,所述第二浮点向量的第一元素,以及所述第二浮点向量的第二元素;以及从查找表中的由所述地址标识的位置检索所述点积。21.根据权利要求20所述的方法,其中以下中的每一者均是8位浮点数:所述第一浮点向量的所述第一元素,所述第一浮点向量的所述第二元素,所述第二浮点向量的所述第一元素,以及所述第二浮点向量的所述第二元素。22.一种计算第一浮点矩阵与第二浮点矩阵的卷积的方法,所述方法包括:创建包含矩阵卷积运算的结果的查找表;从以下元素形成地址:所述第一浮点矩阵的元素,以及所述第二浮点矩阵的元素;以及从所述查找表中的位置检索所述第一浮点矩阵与所述第二浮点矩阵的所述卷积,所述位置由所述地址标识。
百度查询: 三星电子株式会社 计算乘积的方法及系统和计算点积及计算卷积的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。