买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:三星电子株式会社
摘要:根据本公开的一些示例性实施例,提供一种存储器查找机制的方法与系统以及存储器裸片,所述方法包括:使用存储器裸片、利用查找表方法学通过存取被存储在所述存储器裸片上的查找表来实施乘法运算,所述查找表包括浮点运算结果;由所述存储器裸片向逻辑裸片发送所述乘法运算的结果,所述逻辑裸片包括处理器及缓冲器;以及由所述逻辑裸片使用计算单元实施矩阵乘法运算。
主权项:1.一种在存储系统中用于存储器查找机制的方法,包括:由存储器裸片利用查找表方法学通过存取被存储在所述存储器裸片上的查找表来实施乘法运算,所述查找表包括浮点运算结果,其中所述查找表方法学包括浮点完全乘积乘法方法、浮点部分乘积乘法方法、浮点张量运算方法以及浮点融合层运算方法当中之一者;由所述存储器裸片向逻辑裸片发送所述乘法运算的结果,所述逻辑裸片包括处理器及缓冲器;以及由所述逻辑裸片使用在所述存储器裸片上实施的所述乘法运算的所述结果实施矩阵乘法运算。
全文数据:存储器查找机制的方法与系统以及存储器裸片[相关申请的交叉参考]本申请主张在2017年12月26日提出申请的美国临时专利申请第62610,439号的优先权及权利,所述美国临时专利申请的内容全文并入本申请供参考。技术领域本文所公开的实施例的一个或多个方面涉及一种高带宽存储器查找机制系统。背景技术新兴应用比如,深度神经网络使用大规模计算及存储能力来对不同的数据集进行训练并以高准确度进行学习。此外,随着应用比如,高性能计算HighPerformanceComputing,HPC图形算法变得计算密集,能量高效性及低延迟变得日益重要。因此,对存储及计算资源例如,用于存储权重及中间结果的存储器、以及主要用于基本线性代数子程序BasicLinearAlgebraSubprograms,BLAS内核及一般矩阵对矩阵乘法GeneralMatrixtoMatrixMultiplication,GEMM内核的加速的计算的需求明显增加。发明内容本公开实施例的各个方面涉及一种高带宽存储系统中的存储器查找机制。根据本公开的一些示例性实施例,提供一种在高带宽存储系统中用于存储器查找机制的方法,所述方法包括:使用存储器裸片、利用查找表lookuptable,LUT方法学methodology通过存取被存储在所述存储器裸片上的查找表来实施乘法运算,所述查找表包括浮点运算结果;由所述存储器裸片向逻辑裸片发送所述乘法运算的结果,所述逻辑裸片包括处理器及缓冲器;以及由所述逻辑裸片使用计算单元实施矩阵乘法运算。根据一些示例性实施例,所述查找表方法学包括浮点完全乘积乘法方法,所述浮点完全乘积乘法方法包括:由所述存储器裸片使用完整标量浮点输入从所述查找表检索完整标量乘法结果,所述查找表包括多个完整乘积乘法结果;由所述存储器裸片将所述完整标量乘法结果从所述查找表发送到所述缓冲器;由所述缓冲器将所述完整标量乘法结果发送到所述逻辑裸片上的累加器;以及由所述累加器累加所述完整标量乘法结果。根据一些示例性实施例,所述查找表方法学包括浮点部分乘积乘法方法,所述浮点部分乘积乘法方法包括:由所述存储器裸片使用分数标量浮点输入从包括多个部分乘积乘法结果的所述查找表检索部分乘积乘法结果;由所述存储器裸片将所述部分乘积乘法结果发送到所述缓冲器;由所述缓冲器将所述部分乘积乘法结果发送到所述逻辑裸片上的调整器;由所述调整器将所述乘积乘法结果发送到所述逻辑裸片上的累加器;以及由所述累加器累加所述乘积乘法结果。根据一些示例性实施例,所述查找表方法学包括浮点张量运算方法,所述浮点张量运算方法包括:由所述存储器裸片使用张量浮点输入从所述查找表检索张量乘法结果,所述查找表包括多个张量乘法结果;由所述存储器裸片将所述张量乘法结果发送到所述缓冲器;以及由所述缓冲器将所述张量乘法结果发送到所述逻辑裸片上的张量后处理器。根据一些示例性实施例,所述查找表方法学包括浮点融合层运算方法,所述方法包括:由所述存储器裸片使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;由所述存储器裸片将所述完整乘积乘法结果发送到缓冲器裸片,所述缓冲器裸片包括与所述逻辑裸片的所述缓冲器分开的多个缓冲器;由所述缓冲器裸片将所述完整乘积乘法结果发送到所述逻辑裸片的所述缓冲器;以及由所述逻辑裸片的所述缓冲器将所述完整乘积乘法结果发送到所述逻辑裸片上的张量处理器。根据一些示例性实施例,所述方法还包括:在所述存储器裸片上存储与第一类型的运算相关联的所述查找表;以及在所述存储器裸片上存储与所述第一类型的运算不同的第二类型的运算相关联的所述查找表。根据一些示例性实施例,所述方法还包括:读取第一层输入特征图中的每一个可能位置;将所述第一层输入特征图与第一层内核进行卷积;以及基于所述卷积产生第二层输入特征图的结果。根据本公开的一些示例性实施例,一种高带宽存储器查找机制系统包括:逻辑裸片,包括处理器及缓冲器,其中所述处理器利用计算单元实施矩阵乘法运算;以及存储器裸片,包括查找表LUT,其中所述查找表包括浮点运算结果。根据一些示例性实施例,所述存储器裸片执行包括以下的操作:存取所述查找表;利用查找表方法学实施乘法运算;以及将所述乘法运算的结果发送到所述逻辑裸片。根据一些示例性实施例,所述存储器裸片执行还包括以下的操作:使用完整标量浮点输入从包括多个完整乘积乘法结果的所述查找表检索完整标量乘法结果;以及将所述完整标量乘法结果从所述查找表发送到所述缓冲器。根据一些示例性实施例,所述逻辑裸片还包括累加器,所述累加器执行包括以下的操作:从所述缓冲器接收所述完整标量乘法结果;以及累加所述完整标量乘法结果。根据一些示例性实施例,所述存储器裸片执行还包括以下的操作:使用分数标量浮点输入从包括多个部分乘积乘法结果的所述查找表检索部分乘积乘法结果;以及将所述部分乘积乘法结果发送到所述缓冲器。根据一些示例性实施例,所述逻辑裸片还包括:调整器,所述调整器从所述缓冲器接收所述部分乘积乘法结果;以及累加器,所述累加器执行包括以下的操作:从所述调整器接收所述部分乘积乘法结果;以及累加所述部分乘积乘法结果。根据一些示例性实施例,所述存储器裸片执行还包括以下的操作:使用张量浮点输入从包括多个张量乘法结果的所述查找表检索张量乘法结果;以及将所述张量乘法结果发送到所述缓冲器。根据一些示例性实施例,所述逻辑裸片还包括张量后处理器,所述张量后处理器从所述缓冲器接收所述张量乘法结果。根据一些示例性实施例,所述存储器裸片执行还包括以下的操作:使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;以及将所述完整乘积乘法结果发送到缓冲器裸片。根据一些示例性实施例,所述逻辑裸片还包括张量处理器,所述张量处理器从所述缓冲器裸片接收所述完整乘积乘法结果。根据一些示例性实施例,所述逻辑裸片还包括加速器裸片。根据一些示例性实施例,所述存储器裸片包括动态随机存取存储器dynamicrandomaccessmemory,DRAM裸片。根据本公开的一些示例性实施例,一种存储器裸片包括存储在所述存储器裸片上的查找表LUT且被配置成执行:浮点完全乘积乘法方法,包括:由所述存储器裸片使用完整标量浮点输入从所述查找表检索完整标量乘法结果,所述查找表包括多个完整标量乘法结果;由缓冲器将所述完整标量乘法结果发送到累加器;以及由所述累加器累加所述完整标量乘法结果;浮点部分乘积乘法方法,包括:由所述存储器裸片使用分数标量浮点输入从所述查找表检索部分乘积乘法结果,所述查找表包括部分乘积乘法结果;由所述存储器裸片将所述部分乘积乘法结果发送到所述缓冲器;由所述缓冲器将所述部分乘积乘法结果发送到调整器;由所述累加器累加所述部分乘积乘法结果;浮点张量运算方法,包括:由所述存储器裸片使用张量浮点输入从所述查找表检索张量乘法结果,所述查找表包括多个张量乘法结果;由所述存储器裸片将所述张量乘法结果发送到所述缓冲器;由所述缓冲器将所述张量乘法结果发送到张量后处理器;以及浮点融合层运算方法,包括:由所述存储器裸片使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;由所述存储器裸片将所述完整乘积乘法结果发送到包括多个缓冲器的缓冲器裸片;由所述缓冲器裸片将所述完整乘积乘法结果发送到所述缓冲器;以及由所述缓冲器将所述完整乘积乘法结果发送到张量处理器。附图说明结合附图阅读以下说明可更详细地理解一些实施例,在附图中:图1A及图1B是根据本公开一个或多个实施例的第二代高带宽存储器HBM2系统的架构的方块图;图2A到图2D是示出根据本公开一个或多个实施例的设计选项的方块图;图3提供存储器查找表如何执行标量-向量乘法的例示;图4显示概述浮点floatingpoint,FP的不同分量例如,浮点指数、分数或符号的流程图400;图5示出方块图500及表510,方块图500示出查找表的冗余部分,表510显示由行索引、列索引及结果大小使用的位的数目;图6显示可通过将查找表“折叠folding”来节省存储器空间的算法的视觉表示形式;图7示出方块图700及表710,方块图700表示查找表,表710用于显示由只存储部分乘积乘法结果的查找表的行索引、列索引及结果大小使用的位的数目;图8示出表示包含分数部分乘积结果的查找表的方块图800;图9提供逐层卷积运算的视觉表示形式;附图标号说明:100:第二代高带宽存储器系统HBM2系统;110:主机裸片;120:三维HBM2存储器堆叠HBM2存储器堆叠存储器堆叠堆叠;130:HBM2存储器裸片存储器裸片;150:逻辑裸片;160:运算加速器裸片;210A、210B、210C、210D:DRAM裸片;220A、220B、220C、220D:查找表;230A、230B、230C、230D:缓冲器;240A、240B:累加器;250:调整器;260:张量后处理单元TPU;270:缓冲器裸片;280A、280B、280C、280D:逻辑裸片;290:融合层后处理器FPU;310:存储器查找表;320:行缓冲器;400:流程图;500、700、800:方块图;410、510、710:表;900:层1内核;910:层1输入特征图输入特征图;920:层2内核;930:层2输入特征图输入特征图;950:层3输入特征图输入特征图;A:输入值张量标量;A'、B':输入值;B:输入值张量;B1、B2、…Bn:向量;C':实数值结果值结果张量张量结果;C”:实数值结果;A.fraction:输入值;B.fraction:输入值;C.fraction:结果;C1、C2、…Cn:向量乘积查找结果结果。具体实施方式通过参照对实施例及附图的以下详细说明,可更容易地理解本发明概念的特征及其实现方法。在下文中,将参照附图更详细地阐述实施例,其中在所有附图中相同的参考编号指代相同的元件。然而,本公开可被实施为各种不同形式,而不应被视为仅限于本文所示出的实施例。确切来说,提供这些实施例作为实例是为了使本公开将透彻及完整,并将向所属领域中的技术人员充分传达本公开的各个方面及特征。因此,可不再阐述对于所属领域中的一般技术人员完整地理解本公开实施例的各个方面及特征而言并非必需的工艺、元件及技术。除非另有说明,否则在所有附图及书面说明通篇中相同的参考编号表示相同的元件,且因此,将不再对其予以重复说明。在图中,为清晰起见,可夸大各个元件、各个层及各个区的相对大小。在以下说明中,出于解释目的,阐述各种具体细节来提供对各种实施例的透彻理解。然而,显而易见的是,可不使用这些具体细节或者可使用一种或多种等效配置来实践各种实施例。在其他实例中,以方块图形式示出众所周知的结构及装置以避免不必要地混淆各种实施例。应理解,当称一元件、层、区或组件位于另一元件、层、区或组件“上on”、“连接到connectedto”或“耦合到coupledto”另一元件、层、区或组件时,所述元件、层、区或组件可直接位于所述另一元件、层、区或组件上、直接连接到或直接耦合到所述另一元件、层、区或组件,抑或可存在一个或多个中间元件、层、区或组件。然而,“直接连接直接耦合directlyconnecteddirectlycoupled”则是指一个组件与另一个组件直接连接或直接耦合而不具有中间组件。同时,例如“位于...之间between”、“直接位于...之间immediatelybetween”或者“相邻于...adjacentto”及“紧邻于...directlyadjacentto”等阐述各个组件之间的关系的其他表达可类似地加以解释。另外,还应理解,当称一元件或层位于两个元件或层“之间between”时,所述元件或层可为所述两个元件或层之间的唯一元件或层,抑或也可存在一个或多个中间元件或层。本文所用术语仅是出于阐述特定实施例的目的而并非旨在限制本公开。除非上下文清楚地另外指明,否则本文所用单数形式“一a及an”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括comprises、comprising”、“具有have、having”及“包含includes、including”时,是指明所陈述特征、整数、步骤、操作、元件和或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和或其群组的存在或添加。本文所用用语“和或”包括相关列出项中的一个或多个项的任意及所有组合。本文所用用语“实质上substantially”、“大约about”、“近似地approximately”及类似用语用作近似用语,而并非作为程度用语,并且旨在考虑到所属领域中的一般技术人员将知的测量值或计算值的固有偏差。本文所述“大约”或“近似地”包括所阐述值且意指处于所属领域中的一般技术人员所确定的特定值的偏差的可接受范围内,此考虑到所涉及的测量以及与特定品质的测量相关联的误差即,测量系统的限制。举例来说,“大约”可意指处于一个或多个标准偏差范围内,或处于所述值的±30%、±20%、±10%、±5%内。另外,在阐述本公开的实施例时使用“可may”是指“本公开的一个或多个实施例”。本文所用用语“使用use”、“正使用using”及“被使用used”可被视为分别与用语“利用utilize”、“正利用utilizing”及“被利用utilized”同义。另外,用语“示例性exemplary”旨在指实例或例示。当某一实施例可被以不同方式实施时,可与所阐述的次序不同地执行特定工艺次序。举例来说,两个连续阐述的工艺可实质上同时执行或以与所阐述的次序相反的次序执行。在本文中参照剖视图阐述各种实施例,所述剖视图为实施例和或中间结构的示意性例示。因此,预期会因例如制造技术和或容差而导致相对于例示形状的变化。另外,本文所公开的具体结构说明或功能说明仅是例示性的,目的在于阐述根据本公开概念的实施例。因此,本文所公开的实施例不应被视为仅限于各个区的特定例示形状,而是应包含由例如制造引起的形状偏差。举例来说,被例示为矩形的植入区通常应具有圆形特征或曲线特征和或在其边缘存在植入浓度的梯度而非从植入区到非植入区为二元变化。同样地,通过植入而形成的掩埋区可在所述掩埋区与在进行植入时所经过的表面之间的区中引起一些植入。因此,图中所例示的区为示意性的且其形状并非旨在例示装置的区的实际形状且并非旨在进行限制。根据本文所述本公开的实施例的电子装置或电装置和或任何其他相关装置或组件可利用任何适合的硬件、固件例如,应用专用集成电路application-specificintegratedcircuit、软件或软件、固件及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路integratedcircuit,IC芯片上或分别形成在单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔韧印刷电路膜flexibleprintedcircuitfilm、载带封装tapecarrierpackage,TCP、印刷电路板printedcircuitboard,PCB上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行、执行计算机程序指令并与用于执行本文所述各种功能性的其他系统组件进行交互的过程或线程thread。计算机程序指令存储在存储器中,所述存储器可使用例如举例来说随机存取存储器randomaccessmemory,RAM等标准存储器装置在计算装置中实施。计算机程序指令也可存储在例如举例来说压缩盘只读存储器compactdiscreadonlymemory,CD-ROM、闪存驱动器flashdrive或类似元件等其他非暂时性计算机可读介质中。另外,所属领域中的技术人员应知,在不背离本公开示例性实施例的精神及范围的条件下,可将各种计算装置的功能性组合或整合成单一的计算装置,或者可使一特定计算装置的功能性分布在一个或多个其他计算装置中。除非另外定义,否则本文所用所有用语包括技术及科学用语的含义均与本公开所属领域中的一般技术人员所通常理解的含义相同。还应理解,用语例如在常用词典中所定义的用语应被解释为具有与其在相关技术的上下文和或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。使用大的数据批次大小来缩短总训练时间而不损失准确度。这种方式可通过提高单个高性能进程上的计算利用率存储利用率来扩大规模。作为另外一种选择,这种方式可通过使用模型并行性及数据并行性以使学习分布在多个高性能处理器上来向外扩展。深度学习应用表现出各种计算对存储比率compute-to-memoryratio。卷积层convolutionallayer具有高的计算对存储比率。全连接层fullyconnectedlayer递归层recurrentlayer具有中低medium-low的计算对存储比率。逐一元素标量运算具有低的计算对存储比率。各别应用的计算对存储比率取决于以上组合。对于低的计算对存储比率工作负荷而言,以计算为中心的吞吐量处理器可适当地使用大的存储器容量及带宽。芯片存储器不能包含大的批次大小的数据,也不能包含大的层大小的数据。现有技术处理器例如,图形处理单元graphicsprocessingunit,GPU、中央处理器centralprocessingunit,CPU及现场可编程门阵列field-programmablegatearray,FGPA采用高带宽存储器HighBandwidthMemory,HBM。对于高的计算对存储比率的工作负荷而言,如果所述工作负荷受到计算约束,则存储器带宽及存储器容量未得到充分利用。图1A及图1B是根据本公开一个或多个实施例的第二代高带宽存储器secondgenerationhigh-bandwidthmemory,“HBM2”系统的架构的方块图。图1A提供架构的俯视图。图1B提供架构的侧视图。参照图1A,本公开的实施例提供一种用于存储器查找计算机制的系统,或者第二代高带宽存储器HBM2系统100。HBM2系统100包含与多个三维HBM2存储器堆叠120连接的多个主机裸片110。根据各种实施例,所述多个主机裸片110可连接到多达四个HBM2存储器堆叠120。参照图1B,三维HBM2存储器堆叠120包含多个HBM2存储器裸片130。如图中所示,堆叠120可每一个堆叠120具有4个到8个存储器裸片130。每一个堆叠120可每一个堆叠120包含多达八个信道。在一些实施例中,存储器堆叠120可定位在逻辑裸片150上。在一些实施例中,在堆叠120的顶部上可放置有运算加速器裸片operationalacceleratordie160。存储器堆叠120的一部分被配置成查找表“LUT”以利用库级并行度bank-levelparallelism。查找表存储在存储器裸片130上。查找表包含浮点运算的结果例如,预先计算的结果。所述结果是实数值。存储器裸片130上的查找表中包含的结果可被串流传输到逻辑裸片150。图2A到图2D是示出根据本公开一个或多个实施例的设计选项的方块图。图2A示出存储器查找机制的一个实施例。根据本实施例,查找表220A位于DRAM裸片210A上。查找表220A包含一个或多个预先计算的浮点运算的实数值结果C'。在当前实施例中,实数值结果C'可包括完整标量浮点值。DRAM裸片210A从查找表220A检索值结果C'。DRAM裸片210A使用输入值A及输入值B来标识查找表220A中的结果C'。输入值A表示查找表220A的行地址,且输入值B表示查找表220A的列地址。根据此实施例,输入值A及输入值B可包括完整标量浮点值。DRAM裸片210A将结果C'传送到位于逻辑裸片280A上的缓冲器buffer,“BUF”230A。缓冲器230A存储结果C'。缓冲器230A允许对结果C'进行较快的存取以用于由逻辑裸片280A与DRAM裸片210A结合实施的矩阵乘法运算。缓冲器230A将结果C'传送到累加器accumulator,“ACC”240A。在各种实施例中,累加器240A将收集结果C'以用于由逻辑裸片280A与DRAM裸片210A实施的对矩阵乘法运算的中间结果进行的计算。图2B示出存储器查找机制的第二实施例。根据本实施例,查找表220B位于DRAM裸片210B上。查找表220B存储预先计算的浮点运算的部分乘积乘法结果“C.fraction”。DRAM裸片210B使用输入值“A.fraction”及“B.fraction”在查找表中标识结果C.fraction。A.fraction值表示查找表的行地址且为输入值A的分数部分。B.fraction表示查找表的列地址且为输入值B的分数部分。根据本实施例,A.fraction值及B.fraction值可包括分数标量浮点值。在本实施例中,查找表不实施符号逻辑signlogic以及指数加法及减法逻辑exponentadditionandsubtractionlogic,以实现查找表的大小减小。由于输入值A.fraction与B.fraction对称,因此适宜的是只在查找表220B上存储结果的一半。查找表220B的大小减小使得能够在DRAM裸片210B上具有更多存储空间。DRAM裸片210B将结果C.fraction传送到位于逻辑裸片280B上的缓冲器230B。缓冲器230B存储结果C.fraction。缓冲器230B允许对结果C.fraction进行较快的存取以用于由逻辑裸片280B实施的矩阵乘法运算。缓冲器230B将结果C.fraction串流传输到调整器adjustor,“ADJ”250。调整器250对结果C.fraction进行对齐处理以生成结果C'。在对齐之后,调整器250将结果C'传送到累加器240B,累加器240B能够有效地实现与图2A所示累加器240A相同的任务。累加器240B将收集结果C'以用于由逻辑裸片280B实施的对矩阵乘法运算的中间结果进行的计算。图2C示出存储器查找机制的第三实施例。根据本实施例,查找表220C位于DRAM裸片210C上。查找表220C包含预先计算的浮点运算的张量值结果张量C'。DRAM裸片210C从查找表220C检索张量值结果张量C'。DRAM裸片210C使用查找表220C的行地址及列地址来标识张量值结果张量C'。对于张量A与张量B的乘法而言,行地址是输入值A的每一个行中的每一个元素的级联concatenation,且列地址是输入值B的每一个列中的每一个元素。输入值A及输入值B可包括张量浮点值。行地址等于元素的数目乘以元素的长度。假设行索引及列索引是不带符号的整数。由于输入值A与输入值B对称,因此查找表220C只需要存储张量值结果张量C'的一半。在一些实施例中,查找表220C的大小可进一步减小。在级联之前,DRAM裸片210C上的控制引擎可根据它们的绝对值及根据它们的预先计算的符号位逻辑来对行及列中的张量值结果张量C'进行分类。如果行索引大于列索引,则DRAM裸片210C上的控制引擎可对行索引及列索引进行切换。DRAM裸片210C上的控制引擎可假设行索引及列索引是不带符号的整数。另外,DRAM裸片210C上的控制引擎可使用预先计算的符号位逻辑来选择查找表220C进行行及列地址查找的级联。DRAM裸片210C将张量值结果张量C'传送到位于逻辑裸片280C上的缓冲器230C。缓冲器230C存储张量值结果张量C'。缓冲器230C允许对张量值结果张量C'进行较快的存取以用于由逻辑裸片280C实施的矩阵乘法运算。缓冲器230C将张量结果C'传送到张量后处理单元TensorPostProcessingUnit,“TPU”260,张量后处理单元260可包含一个或多个累加器,例如图2A所示累加器240A及图2B所示累加器240B。TPU260充当用于张量结果例如,张量结果C'的累加器。在各种实施例中,TPU260将收集张量结果C'以用于由逻辑裸片280C实施的对运算的中间结果进行的计算。图2D显示存储器查找机制的第四实施例。根据本实施例,查找表220D位于DRAM裸片210D上。另外,本实施例还包括缓冲器裸片270。查找表220D包含预先计算的浮点运算的实数值结果C”。在当前实施例中,实数值结果C”可包括完整标量浮点值。DRAM裸片210D从查找表220D检索实数值结果C”。DRAM裸片210D使用输入值A'及输入值B'来标识查找表220D中的实数值结果C”。输入值A'表示查找表220D的行地址,且输入值B'表示查找表220D的列地址。根据此实施例,输入值A'及输入值B'可包括完整标量浮点值。DRAM裸片210D将实数值结果C”传送到位于逻辑裸片280D上的缓冲器230D。缓冲器230D存储实数值结果C”。缓冲器230D允许对实数值结果C”进行较快的存取以用于由逻辑裸片280D实施的矩阵乘法运算。缓冲器230D将实数值结果C”传送到融合层后处理器fused-layerpostprocessor,FPU290。在其中实数值结果C”在由逻辑裸片280D实施的一系列运算中是中间值的情形中,FPU290可将实数值结果C”传送到缓冲器裸片270。在一些实施例中,缓冲器裸片270可包含与逻辑裸片280D的缓冲器230D相似的多个缓冲器。单独的缓冲器裸片270将实现对中间结果的更宽的存储,此种存储适合于较大的及更复杂的运算。图3提供存储器查找表如何执行标量-向量乘法的例示。参照图3,在本实施例的过程中,将与输入值A不相关的标量A乘以向量B1-Bn。向量-标量乘法的结果由向量乘积C1-Cn表示。标量A被用作行地址以激活存储器查找表310中的一个行。向量B1-Bn被用作列地址以从行缓冲器320读取对应的查找结果C1-Cn。结果C1-Cn被传输到逻辑裸片280A、280B、280C或280D进行累加,如前面在图2A到图2D中所示。图4显示概述浮点的不同分量例如,浮点指数、分数或符号的流程图400。参照图4,表410显示由浮点的每一个分量使用的位的数目。举例来说,64位浮点将具有52位用于分数分量以及11位用于指数分量。图5示出方块图500及表510,方块图500示出查找表的冗余部分,表510显示由行索引、列索引及结果大小使用的位的数目。参照图5,在本实施例的实例中,64位浮点具有63位的行索引、63位的列索引及63位的结果大小。图6显示可通过将查找表“折叠”来节省存储器空间的算法的视觉表示形式。参照图6,在本实施例的实例中,将输入值表示为A及B。如在前面的图中一样,输入值A表示查找表的行地址且输入值B表示查找表的列地址。在一些情形中,输入值B可大于输入值A。在这些情形中,DRAM裸片上的控制引擎可对输入值A及输入值B进行切换。另外,如果输入值B的第一位等于1,则输入值A等于输入值A的所有位的反转形式,且输入值B等于输入值B的所有位的反转形式。DRAM裸片上的控制引擎可使用A的最终值作为行索引,且使用B的最终值作为列索引。这种算法保证了实际查找表存取是原始表的一半。图7示出方块图700及表710,方块图700表示查找表,表710用于显示由只存储部分乘积乘法结果的查找表的行索引、列索引及结果大小使用的位的数目。参照图7,在本实施例的实例中,64位浮点具有52位的行索引、52位的列索引及54位的结果大小。图8示出表示包含分数部分乘积结果的查找表的方块图800。分数部分可被划分成大小相等的多个节段例如,分数_长度=分数_节段*分数_部分。可能适宜的是使查找表仅实施分数节段乘法的乘法表。中间结果未经舍入及归一化。而是,保持中间结果的全部精度,并将中间结果发送到加法器以对最终结果进行移位或求和。以下提供分数节段乘法的实例:A1*212+A0*B1*212+B0=224*A1*B1+212*A1*B0+B1*A0+A0*B0归一化表达可如以下所显示:24=12+12212=4K图9提供逐层卷积运算的视觉表示形式。参照图9,本实施例的表示形式与图2D所示实施例一致。在传统的卷积运算中,必须逐层地对每一个层进行计算。如图9所示,层1内核900将在层1输入特征图910中沿着每一个可能的位置滑动例如,对每一个可能的位置进行读取,与层1输入特征图910进行卷积并在层2输入特征图930中产生一个结果。由此,层2输入特征图930中的每一个元件是层1内核900与层1输入特征图910的卷积的结果。在下一步骤中,层2内核920将相似地沿着层2输入特征图930中的每一个可能的位置滑动以在层3输入特征图950中产生结果。这种卷积运算将针对N个层逐层继续。然而,这些中间结果例如,层1、层2、层3...层N中的每一者的存储都成为问题。在DRAM裸片上存储所有中间结果可能需要相对大量的能量及存储空间。为解决能量消耗及存储问题,本实施例着重于小计算金字塔smallcomputationpyramid。所述小计算金字塔由输入特征图910、930、950的阴影区域表示。随着每一个层进行,阴影区域减小。当存储中间结果时,仅存储输入特征图的阴影区域。这些中间结果中的每一者被存储在缓冲器裸片上而非DRAM裸片上。缓冲器裸片在图2D中被示出为缓冲器裸片270。从缓冲器裸片检索中间结果比从DRAM裸片检索中间结果使用更少的能量。在一些实施例中,缓冲器可为存储器裸片上的缓冲器、逻辑裸片上的缓冲器或单独的缓冲器裸片。以上是对示例性实施例的例示,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易地理解,在不实质上背离示例性实施例的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含在由权利要求书所界定的示例性实施例的范围内。在权利要求书中,手段附加功能条款旨在将本文所述结构涵盖为执行所述功能,且不仅涵盖结构等效形式且还涵盖等效结构。因此,应理解,以上是对示例性实施例的例示,而不应被视为仅限于所公开的具体实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含于随附权利要求书的范围内。本发明概念是由以上权利要求书界定,其中所述权利要求书的等效形式包含在本文中。
权利要求:1.一种在高带宽存储系统中用于存储器查找机制的方法,包括:使用存储器裸片、利用查找表方法学通过存取被存储在所述存储器裸片上的查找表来实施乘法运算,所述查找表包括浮点运算结果;由所述存储器裸片向逻辑裸片发送所述乘法运算的结果,所述逻辑裸片包括处理器及缓冲器;以及由所述逻辑裸片使用计算单元实施矩阵乘法运算。2.根据权利要求1所述的方法,其中所述查找表方法学包括浮点完全乘积乘法方法,所述浮点完全乘积乘法方法包括:由所述存储器裸片使用完整标量浮点输入从所述查找表检索完整标量乘法结果,所述查找表包括多个完整乘积乘法结果;由所述存储器裸片将所述完整标量乘法结果从所述查找表发送到所述缓冲器;由所述缓冲器将所述完整标量乘法结果发送到所述逻辑裸片上的累加器;以及由所述累加器累加所述完整标量乘法结果。3.根据权利要求1所述的方法,其中所述查找表方法学包括浮点部分乘积乘法方法,所述浮点部分乘积乘法方法包括:由所述存储器裸片使用分数标量浮点输入从包括多个部分乘积乘法结果的所述查找表检索部分乘积乘法结果;由所述存储器裸片将所述部分乘积乘法结果发送到所述缓冲器;由所述缓冲器将所述部分乘积乘法结果发送到所述逻辑裸片上的调整器;由所述调整器将所述部分乘积乘法结果发送到所述逻辑裸片上的累加器;以及由所述累加器累加所述部分乘积乘法结果。4.根据权利要求1所述的方法,其中所述查找表方法学包括浮点张量运算方法,所述浮点张量运算方法包括:由所述存储器裸片使用张量浮点输入从所述查找表检索张量乘法结果,所述查找表包括多个张量乘法结果;由所述存储器裸片将所述张量乘法结果发送到所述缓冲器;以及由所述缓冲器将所述张量乘法结果发送到所述逻辑裸片上的张量后处理器。5.根据权利要求1所述的方法,其中所述查找表方法学包括浮点融合层运算方法,所述浮点融合层运算方法包括:由所述存储器裸片使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;由所述存储器裸片将所述完整乘积乘法结果发送到缓冲器裸片,所述缓冲器裸片包括与所述逻辑裸片的所述缓冲器分开的多个缓冲器;由所述缓冲器裸片将所述完整乘积乘法结果发送到所述逻辑裸片的所述缓冲器;以及由所述逻辑裸片的所述缓冲器将所述完整乘积乘法结果发送到所述逻辑裸片上的张量处理器。6.根据权利要求1所述的方法,其中还包括:在所述存储器裸片上存储与第一类型的运算相关联的所述查找表;以及在所述存储器裸片上存储与所述第一类型的运算不同的第二类型的运算相关联的所述查找表。7.根据权利要求1所述的方法,其中还包括:读取第一层输入特征图中的每一个可能位置;将所述第一层输入特征图与第一层内核进行卷积;以及基于所述卷积产生第二层输入特征图的结果。8.一种高带宽存储器查找机制系统,包括:逻辑裸片,包括处理器及缓冲器,其中所述处理器利用计算单元实施矩阵乘法运算;以及存储器裸片,包括查找表,其中所述查找表包括浮点运算结果。9.根据权利要求8所述的系统,其中所述存储器裸片执行包括以下的操作:存取所述查找表;利用查找表方法学实施乘法运算;以及将所述乘法运算的结果发送到所述逻辑裸片。10.根据权利要求9所述的系统,其中所述存储器裸片执行还包括以下的操作:使用完整标量浮点输入从包括多个完整乘积乘法结果的所述查找表检索完整标量乘法结果;以及将所述完整标量乘法结果从所述查找表发送到所述缓冲器。11.根据权利要求10所述的系统,其中所述逻辑裸片还包括累加器,所述累加器执行包括以下的操作:从所述缓冲器接收所述完整标量乘法结果;以及累加所述完整标量乘法结果。12.根据权利要求9所述的系统,其中所述存储器裸片执行还包括以下的操作:使用分数标量浮点输入从包括多个部分乘积乘法结果的所述查找表检索部分乘积乘法结果;以及将所述部分乘积乘法结果发送到所述缓冲器。13.根据权利要求12所述的系统,其中所述逻辑裸片还包括:调整器,所述调整器从所述缓冲器接收所述部分乘积乘法结果;以及累加器,所述累加器执行包括以下的操作:从所述调整器接收所述部分乘积乘法结果;以及累加所述部分乘积乘法结果。14.根据权利要求9所述的系统,其中所述存储器裸片执行还包括以下的操作:使用张量浮点输入从包括多个张量乘法结果的所述查找表检索张量乘法结果;以及将所述张量乘法结果发送到所述缓冲器。15.根据权利要求14所述的系统,其中所述逻辑裸片还包括张量后处理器,所述张量后处理器从所述缓冲器接收所述张量乘法结果。16.根据权利要求9所述的系统,其中所述存储器裸片执行还包括以下的操作:使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;以及将所述完整乘积乘法结果发送到缓冲器裸片。17.根据权利要求16所述的系统,其中所述逻辑裸片还包括张量处理器,所述张量处理器从所述缓冲器裸片接收所述完整乘积乘法结果。18.根据权利要求8所述的系统,其中所述逻辑裸片还包括加速器裸片。19.根据权利要求8所述的系统,其中所述存储器裸片包括动态随机存取存储器裸片。20.一种存储器裸片,其中所述存储器裸片包括存储在所述存储器裸片上的查找表且被配置成执行:浮点完全乘积乘法方法,包括:由所述存储器裸片使用完整标量浮点输入从所述查找表检索完整标量乘法结果,所述查找表包括多个完整标量乘法结果;由缓冲器将所述完整标量乘法结果发送到累加器;以及由所述累加器累加所述完整标量乘法结果;浮点部分乘积乘法方法,包括:由所述存储器裸片使用分数标量浮点输入从所述查找表检索部分乘积乘法结果,所述查找表包括多个部分乘积乘法结果;由所述存储器裸片将所述部分乘积乘法结果发送到所述缓冲器;由所述缓冲器将所述部分乘积乘法结果发送到调整器;由所述累加器累加所述部分乘积乘法结果;浮点张量运算方法,包括:由所述存储器裸片使用张量浮点输入从所述查找表检索张量乘法结果,所述查找表包括多个张量乘法结果;由所述存储器裸片将所述张量乘法结果发送到所述缓冲器;由所述缓冲器将所述张量乘法结果发送到张量后处理器;以及浮点融合层运算方法,包括:由所述存储器裸片使用完整标量浮点从包括多个完整乘积乘法结果的所述查找表检索完整乘积乘法结果;由所述存储器裸片将所述完整乘积乘法结果发送到包括多个缓冲器的缓冲器裸片;由所述缓冲器裸片将所述完整乘积乘法结果发送到所述缓冲器;以及由所述缓冲器将所述完整乘积乘法结果发送到张量处理器。
百度查询: 三星电子株式会社 存储器查找机制的方法与系统以及存储器裸片
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。