能量高效的存储器系统和方法技术方案

技术编号:23763366 阅读:19 留言:0更新日期:2020-04-11 18:34
本文描述了增加诸如存储空间和计算时间之类的计算资源的利用率和性能,从而降低计算成本的系统和方法。本发明专利技术的各种实施例提供了一种硬件结构,该硬件结构既允许消除冗余的数据传输的对源数据的流送,又允许进行消除对去往和来自中间存储装置的数据传输的要求的存储器中的计算。在某些实施例中,通过使用硬件结构来降低计算成本,该硬件结构使得能够自动地且高效地执行数学运算,例如,由卷积神经网络采用的逐元素矩阵乘法。

Energy efficient memory system and method

【技术实现步骤摘要】
能量高效的存储器系统和方法相关专利申请的交叉引用本申请根据35U.S.C.§119(e)要求享有以下申请的优先权权益:于2018年10月3日提交的题为“Energy-EfficientTornadoMemorySystemsandMethods”、专利技术人为MarkAlanLovell和RobertMichaelMuchsel的共同未决且共同转让的美国临时专利申请第62/740,679号,该申请以其整体内容通过引用方式合并于此。该专利文档中提及的每个参考文献均以其整体通过引用方式合并与此。
本公开总体上涉及数据处理。更具体地,本公开涉及用于在执行算术运算(例如,卷积运算和池化运算)时改进计算和存储器资源的利用率的系统和方法。
技术介绍
机器学习的最令人兴奋的应用中的一些使用卷积神经网络(CNN)。CNN将多个分层网络层和子层应用于例如输入图像,以确定是否将图像分类为包含人或某种其他物体。CNN使用基于神经网络的图像分类器,该图像分类器可以自动学习复杂特征以用于分类和物体识别任务。针对卷积的算术运算典型地在通用计算设备(例如,常规的微处理器)上操作的软件中执行。这种方法在功率和时间两者方面都非常昂贵,并且对于许多计算密集型应用(例如,实时应用),通用硬件无法以及时的方式执行必要的操作,因为计算速率受到现有硬件设计的计算资源和能力的限制。此外,使用通用处理器的算术功能来生成中间结果由于增加的从各种存储器位置存储并取回中间结果以完成操作的步骤而以牺牲计算时间为代价。例如,许多常规的乘法器都是标量机,这些乘法器使用CPU或GPU作为其计算单元,并使用寄存器和高速缓存依赖于一系列软件和硬件矩阵操纵步骤(例如,地址生成、换位、逐位加法和移位、将乘法转换为加法并且将结果输出到某个内部寄存器中)来处理存储在存储器中的数据。此外,诸如卷积之类的对计算有要求的应用通常要求将软件功能嵌入微处理器中,并且将软件功能用于将卷积运算转换为替代的矩阵乘法运算。这涉及将图像数据和权重数据重新排列并重新格式化为两个矩阵,然后对这两个矩阵进行原始矩阵相乘。不存在高效地选择、使用和重用数据,同时避免生成冗余数据以及避免冗余地访问数据的机制。当执行乘法运算和其他运算时,软件必须一遍又一遍地访问标准存储器的相同位置,并且读取、重新获取并写入相同的数据,这在计算上非常繁琐,并造成了限制机器学习应用快速发展的瓶颈。随着经受卷积运算的数据量的增加以及运算复杂度的持续增长,不能重用与增加的从存储器存储并取回中间结果以完成算数运算的步骤耦合的许多数据仅呈现了现有设计的一些缺点。简而言之,常规的硬件和方法不能很好地适合于对于实时地执行众多涉及大量数据的复杂处理步骤所要求的对速度、性能和能量节约的不断增长的需求。因此,需要当执行算术运算时大大地减少运算数量并且以快速且能量高效的方式移动数据的高计算吞吐量的系统和方法。附图说明将参考本专利技术的实施例,其示例可以在附图中示出。这些附图旨在是说明性的而非限制性的。尽管在这些实施例的上下文中总体上描述了本专利技术,但是应当理解的是并不旨在将本专利技术的范围限制为这些特定实施例。附图中的项目未按比例绘制。图1示出了根据本公开的各种实施例的示例性高速缓存和计算结构。图2示出了应用于存储在存储器设备中的公共图像文件的填充。图3示出了根据本公开的各种实施例的将数据从源存储器读取到示例性高速缓存和计算结构中的读取操作。图4-图6示出了根据本公开的各种实施例的在丢弃数据之前通过高速缓存和计算结构进行的数据移位和旋转。图7示出了根据本公开的各种实施例的通过高速缓存和计算结构丢弃数据。图8-图9示出了根据本公开的各种实施例的在丢弃数据之后通过高速缓存和计算结构进行的数据移位和旋转。图10示出了根据本公开的各种实施例的高速缓存和计算结构对跨步的使用。图11示出了根据本公开的各种实施例的通过高速缓存和计算结构在经填充的存储器上进行的数据移位和旋转。图12示出了根据本公开的各种实施例的计算结构。图13-图14示出了通过图12中所示的计算结构进行的数据移位和旋转。图15示出了根据本公开的各种实施例的使用计算结构的多通道乘法。图16示出了根据本公开的各种实施例的使用计算结构的多通道池化。图17示出了根据本公开的各种实施例的替代的最大池化过程。图18和图19示出了根据本公开的各种实施例的包括集成计算硬件的存储器结构。图20是根据本公开的各种实施例的用于使用计算结构来执行计算的说明性过程的流程图。图21是根据本公开的各种实施例的用于使用计算结构来执行进行中(in-flight)池化的说明性过程的流程图。图22示出了根据本公开的各种实施例的利用高速缓存和计算结构的示例性系统。具体实施方式在以下描述中,出于解释的目的,阐述了具体细节以便于提供对本专利技术的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些细节的情况下实践本专利技术。此外,本领域技术人员将认识到,下面描述的本专利技术的实施例可以以各种方式来实现,例如,过程、装置、系统、设备或有形计算机可读介质上的方法。附图中示出的组件或模块是本专利技术的示例性实施例的说明,并且意在避免模糊本专利技术。还应该理解的是,在整个讨论中,组件可以被描述为可以包括子单元的单独的功能单元,但是本领域技术人员将认识到,各种组件或其部分可以被划分为单独的组件或者可以集成在一起(包括集成在单个系统或组件内)。应当注意,本文所讨论的功能或操作可以被实现为组件。组件可以以软件、硬件或其组合来实现。此外,附图内的组件或系统之间的连接不旨在限于直接连接。而是,可以由中间组件修改、重新格式化或以其他方式改变这些组件之间的数据。另外,可以使用附加的或更少的连接。还应注意,术语“耦合”、“连接”或“通信地耦合”应被理解为包括直接连接、通过一个或多个中间设备的间接连接以及无线连接。在说明书中对“一个实施例”、“优选实施例”、“实施例”或“多个实施例”的引用意味着结合该实施例描述的特定特征、结构、特性或功能至少包括在本专利技术的一个实施例中,并且可以包括在多于一个的实施例中。另外,上述短语在说明书中各个地方的出现不一定全部指代相同实施例或多个实施例。在说明书的各个地方使用某些术语是为了说明并且不应被解释为限制性的。服务、功能或资源不限于单个服务、功能或资源;这些术语的使用可以指代相关服务、功能或资源的分组,这些分组可以是分布式的或聚合的。术语“包括(include)”、“包括有(including)”、“包含(comprise)”和“包含有(comprising)”应被理解为开放术语,并且跟随的任何列表都是示例,并且不意味着限于所列出的项目。本文所使用的任何标题仅出于组织的目的,并且不应该用于限制说明书或权利要求书的范围。本专利文档中提及的每个参考文献均以其整体通过引用方式合并于此。此外,应当注意,本文所描述的实施例是在CNN的上下文中给本文档来自技高网...

【技术保护点】
1.一种用于执行算术计算的高吞吐量计算系统,所述计算系统包括:/n源存储器,其存储用于算术运算的源数据;/n计算高速缓存,其用于缓存所述源数据中的一些源数据;/n计算存储器,其与所述计算高速缓存耦合,所述计算存储器在所述算术运算的一个或多个周期中被使用,所述计算高速缓存和所述计算存储器形成计算结构;/n权重存储器,其与所述计算存储器耦合,所述权重存储器存储用于所述算术运算的权重数据;以及/n控制器,其与所述计算结构耦合,所述控制器执行包括以下各项的步骤:/n响应于位于所述计算结构的第一端处的第一行中的数据已经在所述计算结构的第二端的方向上经历了完整的旋转周期,而丢弃位于所述计算结构的第三端处的第二行中的数据;/n将所述计算结构中的数据元素朝向所述第三端移位;/n在所述第一端处,将来自第三行的数据加载到所述计算结构中以替换所述第一行中的数据;/n将所述计算结构中的所述数据元素朝向所述第二端移位,使得在第四端处新的数据元素被加载到所述计算结构中;以及/n使用所述计算结构中的两个或更多个数据元素来执行所述算术运算。/n

【技术特征摘要】
20181003 US 62/740,6791.一种用于执行算术计算的高吞吐量计算系统,所述计算系统包括:
源存储器,其存储用于算术运算的源数据;
计算高速缓存,其用于缓存所述源数据中的一些源数据;
计算存储器,其与所述计算高速缓存耦合,所述计算存储器在所述算术运算的一个或多个周期中被使用,所述计算高速缓存和所述计算存储器形成计算结构;
权重存储器,其与所述计算存储器耦合,所述权重存储器存储用于所述算术运算的权重数据;以及
控制器,其与所述计算结构耦合,所述控制器执行包括以下各项的步骤:
响应于位于所述计算结构的第一端处的第一行中的数据已经在所述计算结构的第二端的方向上经历了完整的旋转周期,而丢弃位于所述计算结构的第三端处的第二行中的数据;
将所述计算结构中的数据元素朝向所述第三端移位;
在所述第一端处,将来自第三行的数据加载到所述计算结构中以替换所述第一行中的数据;
将所述计算结构中的所述数据元素朝向所述第二端移位,使得在第四端处新的数据元素被加载到所述计算结构中;以及
使用所述计算结构中的两个或更多个数据元素来执行所述算术运算。


2.根据权利要求1所述的计算系统,其中,所述计算高速缓存被实现为RAM单元结构,所述RAM单元结构在不要求多个访问步骤的情况下实现数据访问。


3.根据权利要求1所述的计算系统,其中,所述计算存储器包括基于寄存器的硬件结构,并且所述控制器包括状态机。


4.根据权利要求1所述的计算系统,其中,所述计算高速缓存大于所述计算存储器。


5.根据权利要求1所述的计算系统,其中,所述源存储器具有等于或小于所述计算结构的宽度。


6.根据权利要求1所述的计算系统,其中,移位所述数据元素包括移位数量N个元素,以实现卷积运算中的跨步。


7.一种用于使用高吞吐量计算结构来执行计算的方法,所述方法包括:
响应于位于计算结构的第一端处的第一行中的数据已经在所述计算结构的第二端的方向上经历了完整的旋转周期,而丢弃位于所述计算结构的第三端处的第二行中的数据;
将所述计算结构中的数据元素朝向所述第三端移位;
在所述第一端处,将来自第三行的数据加载到所述计算结构中以替换所述第一行中的数据;
将所述计算结构中的所述数...

【专利技术属性】
技术研发人员:M·A·洛弗尔R·M·马奇塞尔
申请(专利权)人:马克西姆综合产品公司
类型:发明
国别省市:美国;US

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

1