CN109978167A - 在数据中心中存储和检索用于模型的训练数据 - Google Patents

在数据中心中存储和检索用于模型的训练数据 Download PDF

Info

Publication number
CN109978167A
CN109978167A CN201811373935.9A CN201811373935A CN109978167A CN 109978167 A CN109978167 A CN 109978167A CN 201811373935 A CN201811373935 A CN 201811373935A CN 109978167 A CN109978167 A CN 109978167A
Authority
CN
China
Prior art keywords
model
memory
training data
pond
memory controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811373935.9A
Other languages
English (en)
Inventor
F·甘博纳特
K·库马尔
M·A·施密瑟尔
T·维尔哈姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109978167A publication Critical patent/CN109978167A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了用于存储器控制器的技术。存储器控制器可以接收用于存储训练数据的请求。请求可以包括识别与训练数据相关联的模型的模型标识符(ID)。存储器控制器可以发送用于将与模型ID相关联的训练数据存储在池化存储器中的针对模型ID分配的存储器区域中的写入请求。存储在池化存储器中的存储器区域中的训练数据可基于模型ID寻址。

Description

在数据中心中存储和检索用于模型的训练数据
背景技术
人工智能(AI)可以涉及发现输入数据中的模式,使用在输入数据中发现的模式构建AI模型,以及使用AI模型对随后接收的数据进行预测。在一个示例中,建立AI模型可以涉及收集用于生成AI模型的输入数据。可以从数据提供者接收输入数据。输入数据可以用作训练数据以训练AI模型。例如,可以使用训练数据来训练AI模型以辨识输入数据中的模式并进行关于输入数据的推断。
在一个示例中,建立和训练AI模型可以涉及处理相对大的输入数据集,这可能消耗相对大量的计算资源。因此,通常使用云环境中的专用图形处理单元(GPU)和现场可编程门阵列(FPGA)硬件来执行AI。
附图说明
通过下面结合附图的详细描述,本发明实施例的特征和优点将变得显而易见,附图通过示例的方式一起示出了发明特征;并且,其中:
图1示出了根据示例性实施例的AI对各种行业和用例的适用性;
图2示出了根据示例性实施例的包括存储器控制器的池化存储器子系统;
图3示出了根据示例性实施例的用于将训练数据存储在存储器中的系统;
图4是示出根据示例性实施例的用于在存储器控制器处执行操作的操作的流程图;以及
图5示出了根据示例性实施例的包括数据存储设备的计算系统。
现在将参考示出的示例性实施例,并且本文将使用特定语言来描述它们。然而,应当理解的是,不旨在由此限制本发明的范围。
具体实施方式
在描述所公开的发明实施例之前,应当理解本公开内容不限于本文公开的特定的结构、过程步骤或材料,而是如相关领域的普通技术人员将认识到的那样扩展到其等同物。还应当理解,本文采用的术语仅出于描述特定示例或实施例的目的,而不旨在进行限制。不同附图中的相同附图标记表示相同元素。在流程图和过程中提供的数字是为了清楚地说明步骤和操作而被提供的,并且不一定指示特定的次序或顺序。
此外,所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供了许多具体细节(例如,布局、距离、网络示例等的示例),以提供对各种发明实施例的透彻理解。然而,相关领域的技术人员将认识到,这样的详细的实施例不限制本文所阐述的总体发明构思,而仅仅是其表示。
如在本说明书和所附权利要求中使用的,单数形式的“一”、“一个”和“该”包括复数指示物,除非上下文另有明确指示。因此,例如,对“位线”的引用包括多个这样的位线。
贯穿本说明书对“示例”的引用意指结合示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在示例中”或“实施例”不一定都指代相同的实施例。
如本文使用的,为方便起见,可以在共同列表中呈现多个项目、结构元素、组成元素和/或材料。然而,这些列表应当被解释为如同列表中的每个成员都被个别地标识为单独且唯一的成员。因此,这样的列表中的任何个别成员不应仅仅基于其在共同组中的呈现且没有相反的指示而被解释为相同列表中任何其他成员的事实上的等同物。另外,可以在本文中指代本发明的各种实施例和示例以及其各种组件的替代物。应当理解,这样的实施例、示例和替代不应当被解释为彼此的事实上的等同物,而是应当被认为是本公开内容下的单独且自主的表示。
此外,所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供了许多具体细节(例如,布局、距离、网络示例等的示例),以提供对发明实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有具体细节中的一个或多个的情况下或者用其他方法、组件、布局等来实践技术。在其他实例中,公知的结构、材料或操作可能未被详细示出或描述,以避免模糊本公开内容的各方面。
在本公开内容中,“包括(comprises)”、“包括(comprising)”、“包含(containing)”和“具有(having)”等可以具有美国专利法中赋予它们的含义并且可以意指“包括(includes)”、“包括(including)”等等,并且通常被解释为开放式术语。术语“由……构成(consisting of)”或“由……构成(consists of)”是封闭式术语,并且仅包括结合这样的术语具体列出的组件、结构、步骤等,以及根据美国专利法的那些。“基本上由……构成(consisting essentially of)”或“基本上由……构成(consists essentially of)”具有美国专利法通常赋予它们的含义。具体而言,这样的术语通常是封闭式术语,例外是允许包括不会实质性影响结合其使用的项目的基本和新颖特性或功能的另外的项目、材料、组件、步骤或元素。例如,如果微量元素存在于“基本上由……构成”的语言下,即使没有明确记载于这样术语之后的项目列表中,微量元素存在于组合物中但没有影响组合物本质或特性也将是可允许的。当在本说明书中使用开放式术语(如“包括”或“包含”)时,应当理解也应当对“基本上由……构成”语言以及“由……构成”语言提供直接支持,就如同明确说明的那样,反之亦然。
在说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等(如果有的话)用于在相似的元素之间进行区分而不一定用于描述特定的顺序或按时间顺序的次序。应当理解,如此使用的任何术语在适当的情况下都是可互换的,以使得本文描述的实施例例如能够以不同于本文示出或以其他方式描述的顺序操作。类似地,如果本文将方法描述为包括一系列步骤,则如本文呈现的这样的步骤的次序不一定是可以执行这样的步骤的仅有的次序,并且可能省略某些所述步骤并且/或者本文未描述的某些其他步骤可以添加到方法中。
如本文使用的,诸如“增加的”、“减少的”、“更好”、“更差”、“更高”、“更低”、“增强的”等的比较术语指代设备、组件或活动的属性,其与周围或相邻区域中、在单个设备或在多个类似设备中、在一组或一类中、在多组或多类中、或与现有技术相比的其它设备、组件或活动可测量地不同。例如,具有“增加的”损坏风险的数据区域可以指代存储器设备的区域,其与相同存储器设备中的其他区域相比更可能具有对其写入的错误。多个因素可以导致这样的增加的风险,所述因素包括位置、制造工艺、应用于区域的程序脉冲数等。
如本文使用的,术语“基本上”指代动作、特性、属性、状态、结构、项目或结果的完全或接近完全的程度或等级。例如,“基本上”封闭的对象将意指对象完全封闭或几乎完全封闭。在一些情况下,与绝对完全的确切可允许偏差程度可以取决于具体上下文。然而,概括而言,完全的接近度将具有与如同获得绝对和总体的完全相同的总体结果。当在负面含义中使用时,“基本上”的使用等同地适用于指代完全或接近完全缺乏动作、特性、属性、状态、结构、项目或结果。例如,“基本上不含”颗粒的组合物完全缺乏颗粒,或者如此接近完全缺乏颗粒以至于效果与其完全缺乏颗粒相同。换言之,“基本上不含”成分或元素的组合物实际上仍然可能包含这样的物质(只要没有其可测量的效果)。
如本文使用的,术语“约”用于通过提供给定值可以“略高于”或“略低于”端点来向数值范围端点提供灵活性。然而,应当理解,即使在本说明书中结合特定数值使用术语“约”时,除了“约”术语之外还提供了对精确数值的支持。
数据量和数据可以以范围格式在本文中被表达或呈现。应当理解,这样的范围格式仅仅是为了方便和简洁而被使用的,并且因此应当灵活地解释为不仅包括明确记载为范围界限的数值,而且还包括被包含于该范围内的所有个别的数值或子范围,如同每个数值和子范围被明确记载一样。作为说明,“约1至约5”的数值范围应当被解释为不仅包括明确记载的约1至约5的值,而且还包括在所指示的范围内的个别值和子范围。因此,被包括在该数值范围中的是个别值(例如,2、3和4)以及子范围(例如,1-3、2-4和3-5等),以及个别地1、1.5、2、2.3、3、3.8、4、4.6、5和5.1。
该相同原则应用于将仅一个数值记载为最小值或最大值的范围。此外,无论范围的宽度或正被描述的特性如何,都应当应用这样的解释。
以下提供对技术实施例的初始概述,并且然后稍后更详细地描述特定技术实施例。该初始概括旨在帮助读者更快地理解技术,而不旨在识别关键或基本技术特征,也不旨在限制所要求保护的主题的范围。除非另行定义,否则本文使用的所有技术和科学术语都具有与由本公开内容所属领域的普通技术人员通常理解的含义相同的含义。
近年来,硬件平台的增加的性能和功能已经实现了人工智能(AI)的发展。AI的最新进展可能是由于高密度计算平台,其可以更好地被装备以处理增加的数据集大小。换言之,这些高密度计算平台可以在AI工作负载上实现增加的性能水平。例如,由于训练AI模型(或深度学习网络)涉及移动大量数据,所以用于AI的当前硬件平台可以包括高容量、高速度、高带宽的存储器技术,所述技术可以提供最大水平的片上存储和增加的存储器访问速度。用于AI的当前硬件平台可以提供用于计算和数据管理的单独管线。此外,用于AI的当前硬件平台可以包括双向高带宽链路,其可以使专用集成电路(ASIC)能够互连,从而数据可以在它们之间移动,这可以引起另外的计算资源被指派给任务或模型大小扩展而不降低速度。
在一个示例中,对AI模型执行训练可以涉及大量数据处理。可以使用相对大量的计算能力以及相对大量的存储器容量来生成AI模型,例如深度神经网络。在该大量数据(例如,多个不同数据集)内,数据优先级和值可以针对不同的数据使用而变化。例如,在训练第一AI模型时有益的特定数据集在训练第二AI模型时可能较不有益。然而,在过去的解决方案中,在多个不同数据集内识别和选择较高优先级的数据集将是困难的。作为结果,所有不同的数据集都将用于训练AI模型,这将增加计算和存储器资源,即使当某些数据集在AI模型的训练期间具有较小影响。
因此,在本技术中,不同的数据集可以与特定的AI模型(或AI模型标识符(ID))相关联。与特定AI模型相关联的数据集可以是针对该AI模型的较高优先级数据集,而与特定AI模型不相关联的数据集可以是针对该AI模型的较低优先级数据集。可以以每数据集为基础来配置这些数据集,以使得个别数据集可以与特定的AI模型相关联。作为结果,可以使用较高优先级的数据集来训练某个(某些)AI模型,而较低优先级的数据可以不用于训练某个(某些)AI模型,由此减少计算和存储器消耗。
在本技术中,存储器控制器可以发起池化存储器中的读取和写入操作。存储器控制器和池化存储器可以被包括在池化存储器子系统中。在一个示例中,池化存储器子系统可以被包括在数据中心中的存储机架中。虽然以下大量讨论涉及存储机架、抽屉和数据中心,但这仅仅是为了方便起见,并且不应当被视为进行限制。池化存储器可以提供动态按比例增加附加到在特定节点上运行的特定AI模型的存储器的益处,这可以提高总拥有成本(TCO)。在一个示例中,存储器控制器可以从请求者(例如,处理器、核心、节点、主机或AI硬件平台)接收读取和写入请求,并且存储器控制器可以针对请求者发起读取和写入操作。例如,存储器控制器可以通过生成被发送到双列直插式存储器模块(DIMM)上的介质控制器的存储器命令(例如,读取请求、写入请求或擦除请求)来发起读取和写入操作。处理器和AI硬件平台以及池化存储器可以被包括在池化存储器子系统中的单独抽屉中。在一个示例中,响应于来自处理器的写入请求,存储器控制器可以关于某个AI模型标识符(ID)(或AI模型)将训练数据写入池化存储器。换言之,要被存储在池化存储器中的训练数据可以与某个AI模型ID相关联。在另一示例中,响应于来自AI硬件平台的读取请求,存储器控制器可以从池化存储器中读取训练数据。存储器控制器可以按照AI模型ID来读取训练数据,而不是基于在池化存储器中的特定地址来读取训练数据。此外,AI模型ID可以是通用唯一标识符(UUID),并且AI模型ID可以在先前由设备和数据中心或所有者模型商定。
在一个示例中,池化存储器子系统中的存储器可以是易失性存储器、非易失性存储器(NVM)或其组合。易失性存储器可以包括任何类型的易失性存储器,并且不被认为进行限制。易失性存储器是需要电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括随机存取存储器(RAM),例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)等,包括其组合。SDRAM存储器可以包括其任何变型,例如单数据速率SDRAM(SDR DRAM)、双倍数据速率(DDR)SDRAM(包括DDR、DDR2、DDR3、DDR4、DDR5等,被统称为DDRx)以及低功率DDR(LPDDR)SDRAM(包括LPDDR、LPDDR2、LPDDR3、LPDDR4等,被统称为LPDDRx)。在一些示例中,DRAM符合由JEDEC颁布的标准,例如用于DDR SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F、用于DDR4 SDRAM的JESD79-4A、用于LPDDR SDRAM的JESD209B、用于LPDDR2SDRAM的JESD209-2F、用于LPDDR3 SDRAM的JESD209-3C以及用于LPDDR4 SDRAM的JESD209-4A(这些标准可在www.jedec.org处获得;DDR5 SDRAM即将推出)。这样的标准(和类似标准)可以被称为基于DDR或基于LPDDR的标准,并且实现这样的标准的通信接口可以被称为基于DDR或基于LPDDR的接口。在一个具体示例中,系统存储器可以是DRAM。在另一具体示例中,系统存储器可以是DDRx SDRAM。在又一具体方面中,系统存储器可以是LPDDRx SDRAM。
NVM是不需要电力来维持由介质存储的数据的状态的存储介质。NVM传统上已被用于数据存储或长期持久存储的任务,但新的且演进的存储器技术允许将NVM用于超出传统数据存储的角色。这样的角色的一个示例是使用NVM作为主存储器或系统存储器。非易失性系统存储器(NVMsys)可以将传统存储的数据可靠性与超低延时和高带宽性能相组合,以具有优于传统易失性存储器的许多有点,例如高密度、大容量、更低的功耗和降低的制造复杂性等等。例如,字节可寻址的就地写入NVM(例如,三维(3D)交叉点存储器)可以充当类似于动态随机存取存储器(DRAM)的字节可寻址存储器,或者充当类似于NAND闪存的块可寻址存储器。换言之,这样的NVM可以充当系统存储器或充当持久存储器(NVMstor)。在其中NVM用作系统存储器的一些情况下,当NVMsys的电力中断时,存储的数据可以被丢弃或以其他方式被呈现为不可读。NVMsys还通过提供可以位于更靠近计算设备中的处理器的非易失性、低延时存储器来允许数据管理的增加的灵活性。在一些示例中,NVMsys可以驻留在DRAM总线上,以使得NVMsys可以提供对数据的超快速DRAM类访问。NVMsys还可以在以下环境中是有用的:频繁访问大型复杂数据集的计算环境,以及对由电力故障或系统崩溃导致的停机时间敏感的环境。
NVM的非限制性示例可以包括平面或三维(3D)NAND闪速存储器,包括单门限或多门限级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)(例如,硫属化物玻璃PCM、平面或3D PCM)、交叉点阵列存储器(包括3D交叉点存储器、基于非易失性双列直插存储器模块(NVDIMM)的存储器,例如基于闪存(NVDIMM-F)的存储器、基于闪存/DRAM(NVDIMM-N)的存储器、基于持久存储器(NVDIMM-P)的存储器、基于3D交叉点的NVDIMM存储器)、电阻RAM(ReRAM)(包括基于金属氧化物或基于氧空位的ReRAM,例如基于HfO2、Hf/HfOx、Ti/HfO2、TiOx和TaOx的ReRAM;基于灯丝的ReRAM,例如基于Ag/GeS2、ZrTe/Al2O3和Ag的ReRAM;可编程金属化单元(PMC)存储器,例如导电桥接RAM(CBRAM))、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、铁电RAM(FeRAM)、铁电晶体管RAM(Fe-TRAM)、反铁电存储器、聚合物存储器(例如,铁电聚合物存储器)、磁阻RAM(MRAM)、就地写入非易失性MRAM(NVMRAM)、自旋转移扭矩(STT)存储器、自旋轨道扭矩(SOT)存储器、纳米线存储器、电可擦除可编程只读存储器(EEPROM)、纳米管RAM(NRAM)、其他基于忆阻器和晶闸管的存储器、基于自旋电子磁结的存储器、基于磁隧道结(MTJ)的存储器、基于畴壁(DW)的存储器等,包括其组合。术语“存储器设备”可以指代管芯本身和/或封装的存储器产品。NVM可以是字节或块可寻址的。在一些示例中,NVM可以符合由联合电子设备工程委员会(JEDEC)颁布的一个或多个标准,例如JESD21-C、JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或其他合适的标准(本文中记载的JEDEC标准可在www.jedec.org处获得)。在一个具体示例中,NVM可以是3D交叉点存储器。在另一具体示例中,存储器可以是NAND或3D NAND存储器。在另一具体示例中,系统存储器可以是STT存储器。
图1示出了AI对各种行业和用例的适用性的示例。例如,AI在各种各样的领域中具有广泛的潜在适用性,例如农业(例如,用于将作物个性化到个别条件)、金融(例如,用于识别欺诈性交易或个性化金融产品)、制药(例如,用于优化临床试验)、汽车工业(例如,用于识别和导航道路)、医疗保健(例如,用于预测个性化健康结果或诊断疾病)、公共/社会行业、消费者商品(例如,用于优化商品销售策略)、制造(例如,用于预测性维护)、电信、能源(例如,用于预测性维护)、媒体(例如,用于个性化广告或发现新的消费者趋势)、旅行、运输、物流(例如,用于实时优化定价和调度)等。此外,某些行业和用例可以与增加的影响分数相关联,以指示AI在这些领域的适用性更为重要。
在一种配置中,在本技术中,存储器池化和解聚架构可以用于数据中心架构中,所述数据中心架构托管用于正被训练的多个AI模型的训练和推理AI数据。存储器池化和解聚架构允许在每AI模型粒度上处理各种数据优先级,并且可以被优化以处理AI应用(例如,指定服务级别协议(SLA)或满足服务质量(QoS))。在一个示例中,QoS可以涉及限制用于将数据发送到特定AI模型ID的带宽量,或者QoS可以向某些类型的AI模型或AI模型ID提供另外的优先级。存储器池化和解聚架构可以基于与池化的存储器块或数据单元相关联的AI模型和优先级来管理和调度池化的存储器块或数据单元(例如,存储器行或4千字节(KB)的数据块),这可以允许对面向AI设备的数据中心设备的改进的数据管理。
在当前技术中,存储器池化和解聚架构可以实现训练数据集存储器池,并且该新型存储器池可以以AI模型为基础存储和组织训练数据。在一个示例中,存储器池可以是多个解聚的存储器设备。训练数据集存储器池可以专门用于AI训练模型。作为结果,软件堆栈可以以每AI模型为基础来访问池化存储器中的训练数据。此外,可以每AI模型指定性能和可靠性要求,这可以以每数据集为基础实现优先化。
在当前技术中,存储器池化和解聚架构可以包括分层存储器控制器,其可以取决于AI模型要求而将训练数据分布在某个数量的存储器抽屉中。分层存储器控制器可以确定将训练数据分布给某些存储器抽屉和机架以满足SLA(例如,特定带宽),并且可以将训练数据分布给多个AI数据抽屉(例如,具有不同弹性特性的N个抽屉,其中,N是整数)。
存储器池化和解聚架构可以包括机架池化存储器控制器。给定的存储机架可以取决于存储机架所需的性能水平而包括一个或多个机架池化的存储控制器。机架池化存储器控制器可以为特定的AI模型定义具体的性能和弹性水平。机架池化存储器控制器可以(例如,从处理器、节点、主机、核心等)接收写入请求,并且机架池化存储器控制器可以取决于应用性能要求而跨不同的存储器池分布训练数据(例如,增加的应用性能要求可能意味着训练数据的更多分布)。如下面更详细地描述的,机架池化存储器控制器可以包括用于注册新类型的AI模型的接口。接口可以提供AI模型ID以及包括数据集条目的定义(例如,数据集条目的大小)的元数据。机架池化存储器控制器可以包括用于将新存储器分配给特定AI模型ID的接口。机架池化存储器控制器可以基于性能要求(例如,SLA)来确定现有存储器池中的存储器的分配。机架池化存储器控制器可以包括用于读取和写入用于特定AI模型ID的训练数据集的接口。机架池化存储器控制器可以确定用于读取和写入训练数据集的适用存储器池以优化性能和/或满足SLA。另外,机架池化存储器控制器可以包括用于允许其他计算元素发现当前正被托管在存储器池化和解聚架构中的训练数据集(对应于AI模型ID)以及相关联的元数据的接口。
在当前技术中,在AI硬件平台上运行的AI训练模型可以从用于特定AI模型ID的池化的存储器中拉取训练数据,而不是脉冲具体数据。例如,机架池化存储器控制器可以使用为数据集结构定义特定AI模型的元数据来从端点存储器双列直插式存储器模块(DIMM)收集存储器线,并且机架池化存储器控制器可以向AI训练模型发送对应于存储器线的发送的数据。例如,AI训练模型可以为AI模型会话类型1拉取数据集,而不是读取已知包含会话1的地址X,这可以提供另外的灵活性并且易于跨多个存储器池分布和管理训练数据。换言之,与传统存储器线相反,可以按照AI数据集实例ID来访问训练数据。
存储器池化和解聚架构可以包括抽屉存储器控制器,其可以每AI模型提供用于写入和读取训练数据集的接口。写入接口可以取决于延时要求而直接来自客户端或来自机架池化存储器控制器。例如,来自机架池化存储器控制器的写入接口可以具有较高的延时,但是由于负载平衡而具有较高的带宽。与机架池化存储器控制器类似,抽屉存储器控制器可以具有用于执行以下操作的接口:注册新类型的AI模型,向特定AI模型ID分配新存储器,读取和写入用于特定AI模型ID的训练数据集,以及发现当前正被托管在存储器池化和解聚架构中的训练数据集(对应于AI模型ID)。抽屉存储器控制器可以在托管于相同存储器池中的DIMMS(或其他类型的存储器)内执行负载平衡。抽屉存储器控制器可以包括用于使用用于特定AI模型ID的元数据来从DIMM中读取训练数据的逻辑(其可以指示如何构建训练数据集)。另外,抽屉存储器控制器可以在读取训练数据集之后,根据指定从存储器中删除训练数据集的读取请求中的位来从存储器中移除训练数据集。
图2示出了池化存储器子系统200的示例,其包括机架池化AI模型存储器控制器230(或存储器控制器)。在一个示例中,池化存储器子系统200可以被包括在存储机架中。存储机架可以被包括在数据中心中,并且存储机架可以是数据中心中的多个存储机架中的一个。池化存储器子系统200可以包括多个抽屉,例如第一抽屉210(抽屉1)和第N抽屉220(抽屉N)。每个抽屉可以包括处理器、AI硬件平台、网络接口、抽屉存储器控制器、池化存储器等。
在一个示例中,第一抽屉210可以包括第一处理器214和第二处理器216,其可以连接到网络接口212。第一处理器214和第二处理器216可以与机架池化AI模型存储器控制器230通信。此外,第一处理器214可以包括第一池化存储器接口215,并且第二处理器216可以包括第二池化存储器接口217。第一池化存储器接口215和第二池化存储器接口217可以与抽屉AI模型存储器控制器240和抽屉AI模型存储器控制器250(或者池化存储器子系统中的辅助存储器控制器)进行通信,其分别可以访问池化存储器242和池化存储器252。
在一个示例中,第N抽屉220可以包括第一AI硬件平台224和第二AI硬件平台226,其可以连接到网络接口222。第一AI硬件平台224和第二AI硬件平台226可以与机架池化AI模型存储器控制器230进行通信。此外,第一AI硬件平台224可以包括第三池化存储器接口225,并且第二AI硬件平台226可以包括第四池化存储器接口227。第一AI硬件平台224和第二AI硬件平台226可以与抽屉AI模型存储器控制器240和抽屉AI模型存储器控制器250通信,其分别可以访问池化存储器242和池化存储器252。
在一个示例中,可以分别经由第一抽屉210中的网络接口212和第N抽屉220中的网络接口222实现对池化存储器242和池化存储器252的访问。
在一种配置中,机架池化AI模型存储器控制器230可以从第一处理器214(或者替代地,从主机或节点或核心)接收用于将训练数据存储在池化存储器子系统200中的请求。例如,请求可以是将训练数据存储在池化存储器子系统200中的池化存储器(例如,池化存储器242或池化存储器252)中。请求可以包括要被存储的训练数据和识别与训练数据相关联的AI模型的AI模型ID。换言之,要被存储在池化存储器子系统200中的训练数据可以用于在池化存储器子系统200中训练对应的AI模型(具有AI模型ID)。AI模型可以是训练或推理AI模型。在一个示例中,在接收到请求之后,机架池化AI模型存储器控制器230可以发起存储操作(例如,发送写入请求)以将与模型ID相关联的训练数据存储在池化存储器子系统200中。更具体地,机架池化AI模型存储器控制器230可以将训练数据存储在池化存储器242、252中的针对模型ID分配的存储器区域中。
在一个示例中,机架池化AI模型存储器控制器230可以经由抽屉AI模型存储器控制器240、250将训练数据存储在池化存储器242、252中的存储器区域中。换言之,机架池化AI模型存储器控制器230可以不直接将训练数据存储在池化存储器242、252中,而是机架池化AI模型存储器控制器230可以间接地经由抽屉AI模型存储器控制器240、250将训练数据存储在池化存储器242、252中。另外,池化存储器242、252可以暴露用于增加或减少专用于特定AI模型ID的存储器量的接口。池化存储器242、252可以动态地和自主地增加或减少专用于特定AI模型ID的存储器量,这可以是对先前解决方案的改进。否则,软件堆栈将不期望地使用用于增加或减少池化存储器的量的接口。
作为非限制性示例,第一处理器214可以是例如从物联网(IoT)设备接收车辆传感器数据的数据提供者。第一处理器214可以提供车辆传感器数据以存储在池化存储器子系统200中的池化存储器242、252中。车辆传感器数据可以与在池化存储器子系统200中运行的车辆AI模型(其对应于车辆AI模型ID)相关联。第一处理器214可以发送包括车辆传感器数据和对车辆AI模型的指示的存储请求(或推送数据命令)。响应于接收存储请求,机架池化AI模型存储器控制器230可以将车辆传感器数据存储在池化存储器242、252中的针对车辆AI模型ID分配的存储器区域中。换言之,存储器区域可能先前已针对与车辆AI模型ID相关联的车辆传感器数据被分配。当机架池化AI模型存储器控制器230接收用于存储车辆传感器数据的请求时,机架池化AI模型存储器控制器230可以将车辆传感器数据存储在池化存储器242、252中先前分配的存储器区域中。
在一种配置中,机架池化AI模型存储器控制器230可以从运行AI模型的第一AI硬件平台224接收请求,并且请求可以是从针对(对应于AI模型的)AI模型ID分配的池化存储器242、252中的存储器区域中读取训练数据。在一个示例中,在接收请求之后,机架池化AI模型存储器控制器230可以发起读取操作(例如,发送读取请求)以从池化存储器242、252中的存储器区域中读取训练数据。另外,机架池化AI模型存储器控制器230可以基于AI模型ID来从存储器区域中读取训练数据。机架池化AI模型存储器控制器230可以将检索的训练数据提供给运行AI模型的第一AI硬件平台224,并且训练数据可以用于在第一AI硬件平台224处训练AI模型。
在一个示例中,机架池化AI模型存储器控制器230可以经由抽屉AI模型存储器控制器240、250从池化存储器242、252中的存储器区域中读取训练数据。换言之,机架池化AI模型存储器控制器230可以不直接从池化存储器242、252中读取训练数据,而是机架池化AI模型存储器控制器230可以间接地经由抽屉AI模型存储器控制器240、250从池化存储器242、252中读取训练数据。
作为非限制性示例,第一AI硬件平台224可以是当训练在第一AI硬件平台224处运行的车辆AI模型时消费车辆传感器数据的数据消费者。第一AI硬件平台224可以消费存储在池化存储器子系统200中的车辆传感器数据。例如,第一AI硬件平台224可以发送包括对车辆AI模型的指示的读取请求(或拉取数据命令)。响应于接收读取请求,机架池化AI模型存储器控制器230可以从池化存储器242、252中的针对车辆AI模型ID分配的存储器区域中读取车辆传感器数据。换言之,基于被包括在读取请求中的车辆AI模型ID,机架池化AI模型存储器控制器230可以识别针对车辆AI模型ID分配的池化存储器242、252中的存储器区域,并且然后从存储器区域中读取车辆传感器数据。机架池化AI模型存储器控制器230可以将检索的车辆传感器数据提供给第一AI硬件平台224,并且第一AI硬件平台224可以消费车辆传感器数据以用于训练在第一AI硬件平台224处运行的车辆AI模型。
在一个示例中,机架池化AI模型存储器控制器230可以从第二处理器216接收请求,以从池化存储器242、252中的针对(对应于AI模型的)AI模型ID分配的存储器区域中读取训练数据。在一个示例中,在接收请求之后,机架池化AI模型存储器控制器230可以发起读取操作以从池化存储器242、252中的存储器区域中读取训练数据。机架池化AI模型存储器控制器230可以基于AI模型ID来从存储器区域中读取训练数据。机架池化AI模型存储器控制器230可以将检索的训练数据提供给第二处理器216。第二处理器216可以将训练数据存储在被配置为每AI模型ID存储训练数据的本地存储器或高速缓存中,并且训练数据可以是对于在第二处理器216上运行的应用可访问的。
在一个示例中,机架池化AI模型存储器控制器230可以以每模型ID为基础分别将训练数据存储在池化存储器242、252中的存储器区域中并且从池化存储器242、252中的存储器区域中读取训练数据。在该示例中,机架池化AI模型存储器控制器230可以针对(对应于AI模型的)特定的AI模型ID写入和读取训练数据集。换言之,被写入存储器区域或从池化存储器242、252中的存储器区域中读取的训练数据可以是可基于模型ID寻址的。
另外或替代地,被写入存储器区域或从池化存储器242、252中的存储器区域中读取的训练数据可以是可基于与训练数据相关联的AI模型的AI模型类型寻址的。例如,机架池化AI模型存储器控制器230可以接收用于读取与车辆AI模型类型相关联的训练数据的读取命令(并且可能存在对应于车辆AI模型类型的多个AI模型ID)。因此,机架池化AI模型存储器控制器230可以基于与训练数据相关联的AI模型的AI模型类型来访问训练数据。
在先前的解决方案中,将使用存储器线来寻址存储器。例如,一个存储器线可以是64字节的数据。因此,在先前的解决方案中,当处理器在存储器中执行操作(例如,读取或写入操作)时,处理器将知道要被访问的特定数据的物理存储器地址。处理器将从物理存储器地址取得该数据,并且该数据将被放置在处理器寄存器中并且可由应用访问。在当前解决方案中,不是可用物理存储器地址来寻址池化存储器242、252,而是可用AI模型ID来寻址池化存储器242、252。
在一种配置中,机架池化AI模型存储器控制器230可以从第一处理器214接收用于注册AI模型ID(与AI模型相关联)的请求。此时,当接收到请求时,在池化存储器子系统200中的池化存储器242、252中没有针对与AI模型ID相关联的训练数据的分配。从第一处理器214接收的请求可以包括:与AI模型相关联的AI模型ID、如在服务水平协议(SLA)中定义的用于AI模型的期望服务质量(QoS)、AI模型的弹性水平和用于存储用于AI模型的训练数据的存储器容量(例如,要针对用于AI模型的训练数据的存储而被分配的存储器量)。在一个示例中,请求可以是寄存器模型命令,其包括AI模型ID、弹性水平和期望的QoS。响应于接收请求,机架池化AI模型存储器控制器230可以注册AI模型ID,其可以涉及分配池化存储器242、252中的存储器区域用于存储与AI模型ID相关联的训练数据,其中,存储器区域的分配可以对应于从第一处理器214接收的请求中包括的存储器容量。
在一个示例中,池化存储器子系统200中的抽屉(例如,第一抽屉210(抽屉1)和第N抽屉220(抽屉N))可以包括存储器扩展,其可以包括池化存储器242、252。取决于AI模型的个别要求(在存储器方面),可以针对不同的AI模型分配池化存储器242、252的不同部分。更具体地,池化存储器242、252中的存储器的一部分可以针对特定的AI模型ID进行分配。可以基于用于该AI模型ID的指定大小的训练数据集来分配存储器的部分。作为结果,与该AI模型ID相关的训练数据可以存储在池化存储器242、252中的先前分配的存储器部分中(即,在专门针对该类训练数据分配的存储器的部分中)。在针对AI模型ID分配存储器的部分之后,可以使用AI模型ID(或数据集ID)来访问用于被存储在存储器的部分中的AI模型ID的训练数据,而不是池化存储器242、252中存储器的物理存储器地址。
作为示例,机架池化AI模型存储器控制器230可以接收用于读取与AI模型ID 100相关联的训练数据或AI模型ID 100的数据集ID 15的请求,并且作为响应,机架池化AI模型存储器控制器230可以从针对AI模型ID100在池化存储器242、252中分配的存储器的部分中检索请求的训练数据。机架池化AI模型存储器控制器230可以返回与AI模型ID 100相关联的训练数据或AI模型ID 100的数据集ID 15。
在一个示例中,机架池化AI模型存储器控制器230可以存储用于多个AI模型ID的QoS策略232和弹性策略234。当在机架池化AI模型存储器控制器230处注册特定AI模型ID时,可以定义QoS策略232和弹性策略234。QoS策略232可以指示用于特定AI模型ID的期望的QoS。例如,可以根据满足用于特定AI模型ID的QoS策略232的定义带宽,将用于特定AI模型ID的训练数据写入池化存储器242、252或从池化存储器242、252读取训练数据。换言之,可以为用于该特定AI模型ID的训练数据流提供某个量的带宽,所述某个量的带宽符合用于该特定AI模型ID的QoS策略232。另外,QoS策略232可以是针对带宽基于SLA的或者每数据流基于优先级的。弹性策略234可以指示用于特定AI模型ID的期望的弹性水平。例如,特定模型ID可以具有90%的期望的弹性水平。不同的池化存储器242、252可以具有不同的弹性属性或特性。因此,作为示例,机架池化AI模型存储器控制器230可以在池化存储器242中分配第一存储器区域,并且在池化存储器252中分配第二存储器区域(其可以在不同的抽屉中),这可以使训练数据能够根据期望的弹性水平而被存储和读取。
在一种配置中,机架池化AI模型存储器控制器230可以将发现信息发送到池化存储器子系统200中的第一处理器214和/或第一AI硬件平台224。例如,机架池化AI模型存储器控制器230可以从第一处理器214和/或第一AI硬件平台224接收用于特定AI模型ID的发现可用数据请求,并且作为响应,机架池化AI模型存储器控制器230可以发送用于该特定AI模型ID的发现信息。换言之,发现信息可以使第一处理器214和/或第一AI硬件平台224能够在池化存储器子系统200中的池化存储器242、252中每AI模型ID发现可用训练数据。
作为非限制性示例,第一AI硬件平台224可以托管欺诈检测AI模型。第一AI硬件平台224可以希望获得存储在池化存储器242、252中的欺诈检测训练数据,其可以由第一AI硬件平台224消费以训练欺诈检测AI模型。第一AI硬件平台224可以知道与欺诈检测训练数据相关联的欺诈检测AI模型ID,但是最初可以不知道与欺诈检测AI模型ID相关联的欺诈检测训练数据是否正被存储在池化存储器242、252中。第一AI硬件平台224可以将用于欺诈检测AI模型ID的发现可用数据请求发送到机架池化AI模型存储器控制器230。作为响应,机架池化AI模型存储器控制器230可以提供发现信息,其可以指示与欺诈检测AI模型ID相对应的欺诈检测训练数据当前存储在池化存储器242、252中。基于该发现信息,第一AI硬件平台224可以发送用于欺诈检测AI模型ID的读取请求以从池化存储器242、252中读取欺诈检测训练数据。
在一种配置中,机架池化AI模型存储器控制器230可以从第一处理器214接收用于将训练数据存储在池化存储器242、252中的请求。请求可以包括要被存储的训练数据和识别与训练数据相关联的AI模型的AI模型ID。机架池化AI模型存储器控制器230可以发起存储操作,以跨多个存储器区域将与AI模型ID相关联的训练数据存储在池化存储器子系统200的池化存储器242、252中。机架池化AI模型存储器控制器230可以跨多个存储器区域分布训练数据以满足用于AI模型ID的SLA。例如,跨多个存储器区域分布训练数据可以根据用于AI模型ID的SLA来实现期望的存储时间,并且通过将训练数据写入单个池化存储器中的单个存储器区域可能不能实现该期望的存储时间。另外,机架池化AI模型存储器控制器230可以发起读取操作以从多个存储器区域中的一个或多个中读取训练数据,并且可以从所选择的存储器区域中读取训练数据以满足用于AI模型ID的SLA。
在一种配置中,机架池化AI模型存储器控制器230可以从第一处理器214接收用于将训练数据存储在池化存储器子系统200中的请求。例如,第一处理器214可以请求根据期望的QoS(例如,期望的带宽)、弹性水平等来执行存储操作。机架池化AI模型存储器控制器230可以接收请求,并确定机架池化AI模型存储器控制器230无法用期望的QoS、弹性水平等处理请求。换言之,机架池化AI模型存储器控制器230可能无法满足针对第一处理器214的存储请求(或写入请求)。在该情况下,机架池化AI模型存储器控制器230可以向第一处理器214发送否定确认(NACK),并且机架池化AI模型存储器控制器230可以将请求作为对等(P2P)请求转发给数据中心中的第二机架池化AI模型存储器控制器(或第二存储器控制器)。第二机架池化AI模型存储器控制器可以在池化存储器子系统200外部,但在数据中心内。机架池化AI模型存储器控制器230可以维护关于数据中心中的多个机架池化AI模型存储器控制器的信息及其各自的能力。基于该信息,机架池化AI模型存储器控制器230可以将请求转发给第二机架池化AI模型存储器控制器,并且第二机架池化AI模型存储器控制器可以发起由第一处理器214请求的存储操作。
图3示出了用于在池化存储器330中存储训练数据312的系统300。系统300可以包括可操作以提供训练数据312的处理器310。系统300可以包括运行模型322的硬件平台320。系统300可以包括池化存储器330,所述池化存储器330包括存储器区域332。系统300可以包括存储器控制器340。存储器控制器340可以从处理器310接收用于存储训练数据312的请求。请求可以包括要被存储的训练数据312,以及识别与训练数据312相关联的模型322的模型标识符(ID)。存储器控制器340可以发起用于存储操作以将与模型ID相关联的训练数据312存储在池化存储器330中的针对模型ID分配的存储器区域332中。存储在池化存储器330中的存储器区域332中的训练数据312可基于模型ID寻址。
另一示例提供了用于在存储器控制器处发起操作的方法400,如图4中的流程图所示。方法可以作为机器上的指令来执行,其中,指令被包括在至少一个计算机可读介质或一个非暂时性机器可读存储介质上。方法可以包括以下操作:在存储器控制器处接收用于存储训练数据的请求,其中,请求包括标识与训练数据相关联的模型的模型标识符(ID),如框410中的那样。方法可以包括以下操作:从存储器控制器发送写入请求,以将与模型ID相关联的训练数据存储在针对模型ID分配的池化存储器中的存储器区域中,其中,存储在池化存储器中的存储器区域中的训练数据可基于模型ID寻址,如框420中的那样。
图5示出了可以在当前技术中采用的通用计算系统或设备500。计算系统或设备500可以包括与存储器504通信的处理器502。存储器504可以包括能够存储、访问、组织和/或检索数据的任何设备、设备的组合、电路等。非限制性示例包括SAN(存储区域网络)、云存储网络、易失性或非易失性RAM、相变存储器、光学介质、硬盘驱动器类型介质等,包括其组合。
计算系统或设备500另外包括用于系统的各种组件之间的连接的本地通信接口506。例如,本地通信接口506可以是本地数据总线和/或可以期望的任何相关地址或控制总线。
计算系统或设备500还可以包括I/O(输入/输出)接口508,其用于控制系统的I/O功能以及用于到计算系统或设备500外部的设备的I/O连接。还可以包括网络接口510以用于网络连接。网络接口510可以控制系统内和系统外部二者的网络通信。网络接口可以包括有线接口、无线接口、蓝牙接口、光学接口等,包括其适当的组合。此外,计算系统500还可以另外地包括用户接口512、显示设备514,以及将对这样的系统有益的各种其他组件。
处理器502可以是单个或多个处理器,并且存储器504可以是单个或多个存储器。本地通信接口506可以用作用于促进任何有用的组合中的任何单个处理器、多个处理器、单个存储器、多个存储、各种接口等之间的通信的路径。
各种技术或其某些方面或部分可以采取体现在有形介质中的程序代码(即,指令)的形式,所述有形介质例如CD-ROM、硬盘驱动器、非暂时性计算机可读存储介质或任何其他机器可读存储介质,其中,当程序代码被加载到机器(例如,计算机)中并由机器执行时,机器成为用于实践各种技术的装置。电路可以包括硬件、固件、程序代码、可执行代码、计算机指令和/或软件。非暂时性计算机可读存储介质可以是不包括信号的计算机可读存储介质。在可编程计算机上执行程序代码的情况下,计算设备可以包括处理器、可由处理器读取的存储介质(包括易失性和非易失性存储器和/或存储元素)、至少一个输入设备以及至少一个输出设备。易失性和非易失性存储器和/或存储元素可以是RAM、EPROM、闪存驱动器、光盘驱动器、磁性硬盘驱动器、固态驱动器或用于存储电子数据的其他介质。节点和无线设备还可以包括收发机模块、计数器模块、处理模块和/或时钟模块或定时器模块。可以实现或利用本文描述的各种技术的一个或多个程序可以使用应用编程接口(API)、可重用控件等。这样的程序可以用高级流程或面向对象的编程语言来实现,以与计算机系统进行通信。然而,如果被期望,则程序可以用汇编语言或机器语言来实现。在任何情况下,语言都可以是编译的或解释的语言,并与硬件实施方式相组合。示例性系统或设备可以包括但不限于膝上型计算机、平板计算机、台式计算机、智能电话、计算机终端和服务器、存储数据库以及利用电路和可编程存储器的其他电子产品,例如家用电器、智能电视、数字视频光盘(DVD)播放器、加热、通风和空调(HVAC)控制器、灯开关等。
示例
以下示例涉及具体的发明实施例,并指出可以在实现这样的实施例时使用或以其他方式组合的具体特征、元素或步骤。
在一个示例中,提供了一种存储器控制器,其包括逻辑。逻辑可以在存储器控制器处接收用于存储训练数据的请求,其中,请求包括识别与训练数据相关联的模型的模型标识符(ID)。逻辑可以从存储器控制器发送用于将与模型ID相关联的训练数据存储在池化存储器中的针对模型ID分配的存储器区域中的写入请求,其中,存储在池化存储器中的存储器区域中的训练数据可基于模型ID寻址。
在存储器控制器的一个示例中,存储在池化存储器中的存储器区域中的训练数据还可基于与训练数据相关联的模型的模型类型寻址。
在存储器控制器的一个示例中,逻辑还被配置为:从运行模型的硬件平台接收用于从池化存储器中的针对模型ID分配的存储器区域中读取训练数据的请求;发送用于从池化存储器中的存储器区域中读取训练数据的读取请求,其中,训练数据是基于与训练数据相关联的模型的模型ID或模型类型从存储器区域中读取的;以及向硬件平台提供训练数据,以使硬件平台能够使用训练数据来训练模型。
在存储器控制器的一个示例中,逻辑还被配置为:响应于从处理器接收的请求而注册模型,其中,请求包括与模型相关联的模型ID、如在服务水平协议(SLA)中定义的用于模型的期望服务质量(QoS)、用于模型的弹性水平和用于存储用于模型的训练数据的存储器容量,其中,模型的注册包括分配池化存储器中的存储器区域以针对模型ID存储训练数据,以及存储器区域的分配对应于请求中包括的存储器容量。
在存储器控制器的一个示例中,逻辑还被配置为:向处理器或硬件平台中的一个或多个提供发现信息,以实现在池化存储器中每模型ID发现可用训练数据。
在存储器控制器的一个示例中,逻辑还被配置为:将从处理器接收的请求作为对等(P2P)请求转发给数据中心中的第二存储器控制器,其中,当从处理器接收的请求无法在存储器控制器处处理时,将P2P请求发送到第二存储器控制器,其中,存储器控制器包括识别第二存储器控制器的存在的信息。
在存储器控制器的一个示例中,逻辑还被配置为:发送用于跨池化存储器中的针对模型ID分配的多个存储器区域存储与模型ID相关联的训练数据的写入请求,其中,训练数据跨多个存储器区域分布以满足用于模型ID的服务水平协议(SLA);以及发送用于从多个存储器区域中的一个或多个中读取训练数据的读取请求,其中,从所选择的存储器区域中读取训练数据以满足用于模型ID的SLA。
在存储器控制器的一个示例中,逻辑还被配置为:分别经由与处理器或运行模型的硬件平台中的一个相接的辅助存储器控制器将训练数据存储在池化存储器中并且从池化存储器中读取训练数据。
在存储器控制器的一个示例中,逻辑还被配置为:以每模型ID为基础分别将训练数据存储在池化存储器中并且从池化存储器中读取训练数据。
在存储器控制器的一个示例中,池化存储器被配置为:动态地增加或减少与特定模型ID相关联的数据量。
在存储器控制器的一个示例中,模型是人工智能(AI)模型。
在存储器控制器的一个示例中,使用训练数据来训练的模型是推理人工智能(AI)模型。
在存储器控制器的一个示例中,存储器控制器被包括在数据中心中的存储机架中。
在一个示例中,提供了一种用于将训练数据存储在池化存储器中的系统。系统可以包括处理器,其可操作以提供训练数据。系统可以包括运行模型的硬件平台。系统可以包括池化存储器,所述池化存储器包括存储器区域。系统可以包括存储器控制器,所述存储器控制器包括逻辑。逻辑可以从处理器接收用于存储训练数据的请求,其中,请求包括识别与训练数据相关联的模型的模型标识符(ID)。逻辑可以发送用于将与模型ID相关联的训练数据存储在池化存储器中的针对模型ID分配的存储器区域中的写入请求,其中,存储在池化存储器中的存储器区域中的训练数据可基于模型ID寻址。
在系统的一个示例中,存储在池化存储器中的存储器区域中的训练数据还可基于与训练数据相关联的模型的模型类型寻址。
在系统的一个示例中,模型是人工智能(AI)模型。
在系统的一个示例中,存储器控制器还包括用于执行以下操作的逻辑:响应于从处理器接收的请求而注册模型,其中,请求包括与模型相关联的模型ID、如在服务水平协议(SLA)中定义的用于模型的期望服务质量(QoS)、用于模型的弹性水平和用于存储用于模型的训练数据的存储器容量,其中,模型的注册包括分配池化存储器中的存储器区域用于针对模型ID存储训练数据,以及存储器区域的分配对应于请求中包括的存储器容量。
在系统的一个示例中,存储器控制器还包括用于执行以下操作的逻辑:向处理器或硬件平台中的一个或多个提供发现信息,以实现在池化存储器中每模型ID发现可用训练数据。
在系统的一个示例中,存储器控制器还包括用于执行以下操作的逻辑:将从处理器接收的请求作为对等(P2P)请求转发给第二存储器控制器,其中,当从处理器接收的请求无法在存储器控制器处处理时,P2P请求被发送到第二存储器控制器,其中,存储器控制器包括识别第二存储器控制器的存在的信息。
在系统的一个示例中,存储器控制器还包括用于执行以下操作的逻辑:发送用于跨池化存储器中的针对模型ID分配的多个存储器区域存储与模型ID相关联的训练数据的写入请求,其中,训练数据跨多个存储器区域被分布以满足用于模型ID的服务水平协议(SLA);以及发送用于从多个存储器区域中的一个或多个读取训练数据的读取请求,其中,训练数据从所选择的存储器区域读取以满足用于模型ID的SLA。
在一个示例中,提供了一种用于在存储器控制器处发起操作的方法。方法可以包括以下操作:在存储器控制器处接收用于存储训练数据的请求,其中,请求包括识别与训练数据相关联的模型的模型标识符(ID)。方法可以包括以下操作:从存储器控制器发送用于将与模型ID相关联的训练数据存储在池化存储器中的针对模型ID分配的存储器区域中的写入请求,其中,存储在池化存储器中的存储器区域中的训练数据可基于模型ID寻址。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:从运行模型的硬件平台接收用于从池化存储器中的针对模型ID分配的存储器区域中读取训练数据的请求;发送用于从池化存储器中的存储器区域中读取训练数据的读取请求,其中,训练数据是基于与训练数据相关联的模型的模型ID或模型类型来从存储器区域中读取的;以及向硬件平台提供训练数据,以使硬件平台能够使用训练数据来训练模型。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:响应于从处理器接收的请求而注册模型,其中,请求包括与模型相关联的模型ID、如在服务水平协议(SLA)中定义的用于模型的期望服务质量(QoS)、用于模型的弹性水平和用于存储用于模型的训练数据的存储器容量,其中,模型的注册包括分配池化存储器中的存储器区域用于针对模型ID存储训练数据,以及存储器区域的分配对应于请求中包括的存储器容量。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:向处理器或硬件平台中的一个或多个提供发现信息,以实现在池化存储器中每模型ID发现可用训练数据。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:将从处理器接收的请求作为对等(P2P)请求转发给数据中心中的第二存储器控制器,其中,当从处理器接收的请求无法在存储器控制器处处理时,P2P请求被发送到第二存储器控制器,其中,存储器控制器包括识别第二存储器控制器的存在的信息。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:发送用于跨池化存储器中的针对模型ID分配的多个存储器区域存储与模型ID相关联的训练数据的写入请求,其中,训练数据跨多个存储器区域分布以满足用于模型ID的服务水平协议(SLA);以及发送用于从多个存储器区域中的一个或多个中读取训练数据的读取请求,其中,训练数据从所选择的存储器区域中被读取以满足用于模型ID的SLA。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:分别经由与处理器或运行模型的硬件平台中的一个相接的辅助存储器控制器将训练数据存储在池化存储器中并且从池化存储器中读取训练数据。
在用于在存储器控制器处发起操作的方法的一个示例中,方法还包括:以每模型ID为基础分别将训练数据存储在池化存储器中并且从池化存储器中读取训练数据。
在用于在存储器控制器处发起操作的方法的一个示例中,模型是人工智能(AI)模型。
虽然前述示例在一个或多个特定应用中说明了本发明实施例的原理,但是对于本领域普通技术人员来说将显而易见的是,可以在没有发明人员的练习的情况下对实施方式的形式、使用和细节进行多种修改,而不脱离本公开内容的原理和构思。

Claims (25)

1.一种存储器控制器,包括用于执行以下操作的逻辑:
在所述存储器控制器处,接收用于存储训练数据的请求,其中,所述请求包括标识与所述训练数据相关联的模型的模型标识符(ID);以及
从所述存储器控制器,发送用于将与所述模型ID相关联的所述训练数据存储在池化存储器中的针对所述模型ID分配的存储器区域中的写入请求,其中,存储在所述池化存储器中的所述存储器区域中的所述训练数据能够基于所述模型ID寻址。
2.根据权利要求1所述的存储器控制器,其中,存储在所述池化存储器中的所述存储器区域中的所述训练数据还能够基于与所述训练数据相关联的所述模型的模型类型寻址。
3.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:
从运行所述模型的硬件平台接收用于从所述池化存储器中的针对所述模型ID分配的所述存储器区域中读取所述训练数据的请求;
发送用于从所述池化存储器中的所述存储器区域中读取所述训练数据的读取请求,其中,所述训练数据是基于与所述训练数据相关联的所述模型的所述模型ID或模型类型从所述存储器区域中读取的;以及
向所述硬件平台提供所述训练数据,以使所述硬件平台能够使用所述训练数据来训练所述模型。
4.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:响应于从处理器接收的请求而注册所述模型,其中,所述请求包括与所述模型相关联的所述模型ID、如在服务水平协议(SLA)中定义的针对所述模型的期望服务质量(QoS)、针对所述模型的弹性水平和用于存储针对所述模型的训练数据的存储器容量,其中,所述模型的注册包括在所述池化存储器中分配所述存储器区域以用于存储针对所述模型ID的训练数据,并且对所述存储器区域的所述分配对应于所述请求中包括的所述存储器容量。
5.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:向处理器或硬件平台中的一个或多个提供发现信息,以使得能够在所述池化存储器中发现每模型ID的可用训练数据。
6.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:将从处理器接收的所述请求作为对等(P2P)请求转发给数据中心中的第二存储器控制器,其中,当从所述处理器接收的所述请求无法在所述存储器控制器处被处理时,所述P2P请求被发送到所述第二存储器控制器,其中,所述存储器控制器包括标识所述第二存储器控制器的存在的信息。
7.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:
发送用于跨所述池化存储器中的针对所述模型ID分配的多个存储器区域存储与所述模型ID相关联的所述训练数据的写入请求,其中,所述训练数据跨所述多个存储器区域分布以满足针对所述模型ID的服务水平协议(SLA);以及
发送用于从所述多个存储器区域中的一个或多个中读取所述训练数据的读取请求,其中,所述训练数据是从所选择的存储器区域中读取的以满足针对所述模型ID的所述SLA。
8.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:经由与运行所述模型的处理器或硬件平台中的一个相接的辅助存储器控制器分别将所述训练数据存储在所述池化存储器中以及从所述池化存储器中读取所述训练数据。
9.根据权利要求1所述的存储器控制器,其中,所述逻辑还被配置为:以每模型ID为基础分别将所述训练数据存储在所述池化存储器中以及从所述池化存储器中读取所述训练数据。
10.根据权利要求1所述的存储器控制器,其中,所述池化存储器被配置为:动态地增加或减少与特定模型ID相关联的数据量。
11.根据权利要求1所述的存储器控制器,其中,所述模型是人工智能(AI)模型。
12.根据权利要求1所述的存储器控制器,其中,使用所述训练数据来训练的所述模型是推理人工智能(AI)模型。
13.根据权利要求1所述的存储器控制器,其中,所述存储器控制器被包括在数据中心中的存储机架中。
14.一种用于将训练数据存储在池化存储器中的系统,所述系统包括:
处理器,其能够操作以提供训练数据;
硬件平台,其运行模型;
池化存储器,其包括存储器区域;以及
存储器控制器,其包括用于执行以下操作的逻辑:
从所述处理器接收用于存储所述训练数据的请求,其中,所述请求包括标识与所述训练数据相关联的所述模型的模型标识符(ID);以及
发送用于将与所述模型ID相关联的所述训练数据存储在所述池化存储器中的针对所述模型ID分配的所述存储器区域中的写入请求,其中,存储在所述池化存储器中的所述存储器区域中的所述训练数据能够基于所述模型ID寻址。
15.根据权利要求14所述的系统,其中,存储在所述池化存储器中的所述存储器区域中的所述训练数据还能够基于与所述训练数据相关联的所述模型的模型类型寻址。
16.根据权利要求14所述的系统,其中,所述模型是人工智能(AI)模型。
17.根据权利要求14所述的系统,其中,所述存储器控制器还包括用于执行以下操作的逻辑:响应于从所述处理器接收的请求而注册所述模型,其中,所述请求包括与所述模型相关联的所述模型ID、如在服务水平协议(SLA)中定义的针对所述模型的期望服务质量(QoS)、针对所述模型的弹性水平和用于存储针对所述模型的训练数据的存储器容量,其中,所述模型的注册包括在所述池化存储器中分配所述存储器区域以用于存储针对所述模型ID的训练数据,并且对所述存储器区域的所述分配对应于所述请求中包括的所述存储器容量。
18.根据权利要求14所述的系统,其中,所述存储器控制器还包括用于执行以下操作的逻辑:向所述处理器或硬件平台中的一个或多个提供发现信息,以使得能够在所述池化存储器中发现每模型ID的可用训练数据。
19.根据权利要求14所述的系统,其中,所述存储器控制器还包括用于执行以下操作的逻辑:将从所述处理器接收的所述请求作为对等(P2P)请求转发给第二存储器控制器,其中,当从所述处理器接收的所述请求无法在所述存储器控制器处被处理时,所述P2P请求被发送到所述第二存储器控制器,其中,所述存储器控制器包括标识所述第二存储器控制器的存在的信息。
20.根据权利要求14所述的系统,其中,所述存储器控制器还包括用于执行以下操作的逻辑:
发送用于跨所述池化存储器中的针对所述模型ID分配的多个存储器区域存储与所述模型ID相关联的所述训练数据的写入请求,其中,所述训练数据跨所述多个存储器区域分布以满足针对所述模型ID的服务水平协议(SLA);以及
发送用于从所述多个存储器区域中的一个或多个中读取所述训练数据的读取请求,其中,所述训练数据是从所选择的存储器区域中读取的以满足针对所述模型ID的所述SLA。
21.一种用于在存储器控制器处发起操作的方法,所述方法包括:
在所述存储器控制器处接收用于存储训练数据的请求,其中,所述请求包括标识与所述训练数据相关联的模型的模型标识符(ID);以及
从所述存储器控制器发送用于将与所述模型ID相关联的所述训练数据存储在池化存储器中的针对所述模型ID分配的存储器区域中的写入请求,其中,存储在所述池化存储器中的所述存储器区域中的所述训练数据能够基于所述模型ID寻址。
22.根据权利要求21所述的方法,还包括:
从运行所述模型的硬件平台接收用于从所述池化存储器中的针对所述模型ID分配的所述存储器区域中读取所述训练数据的请求;
发送用于从所述池化存储器中的所述存储器区域中读取所述训练数据的读取请求,其中,所述训练数据是基于与所述训练数据相关联的所述模型的所述模型ID或模型类型从所述存储器区域中读取的;以及
向所述硬件平台提供所述训练数据,以使所述硬件平台能够使用所述训练数据来训练所述模型。
23.根据权利要求21所述的方法,还包括:响应于从处理器接收的请求而注册所述模型,其中,所述请求包括与所述模型相关联的所述模型ID、如在服务水平协议(SLA)中定义的针对所述模型的期望服务质量(QoS)、针对所述模型的弹性水平和用于存储针对所述模型的训练数据的存储器容量,其中,所述模型的注册包括在所述池化存储器中分配所述存储器区域以用于存储针对所述模型ID的训练数据,以及对所述存储器区域的所述分配对应于所述请求中包括的所述存储器容量。
24.根据权利要求21所述的方法,还包括:
发送用于跨所述池化存储器中的针对所述模型ID分配的多个存储器区域存储与所述模型ID相关联的所述训练数据的写入请求,其中,所述训练数据跨所述多个存储器区域分布以满足针对所述模型ID的服务水平协议(SLA);以及
发送用于从所述多个存储器区域中的一个或多个中读取所述训练数据的读取请求,其中,所述训练数据是从所选择的存储器区域中读取的以满足针对所述模型ID的所述SLA。
25.根据权利要求21所述的方法,还包括:以每模型ID为基础分别将所述训练数据存储在所述池化存储器中以及从所述池化存储器中读取所述训练数据。
CN201811373935.9A 2017-12-27 2018-11-19 在数据中心中存储和检索用于模型的训练数据 Pending CN109978167A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/855,891 2017-12-27
US15/855,891 US10915791B2 (en) 2017-12-27 2017-12-27 Storing and retrieving training data for models in a data center

Publications (1)

Publication Number Publication Date
CN109978167A true CN109978167A (zh) 2019-07-05

Family

ID=64572088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811373935.9A Pending CN109978167A (zh) 2017-12-27 2018-11-19 在数据中心中存储和检索用于模型的训练数据

Country Status (3)

Country Link
US (1) US10915791B2 (zh)
EP (1) EP3506107A1 (zh)
CN (1) CN109978167A (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295235B2 (en) 2017-12-28 2022-04-05 Intel Corporation Filtering training data for models in a data center
US20190042488A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Shared memory controller in a data center
US10452955B2 (en) * 2018-01-15 2019-10-22 Gyrfalcon Technology Inc. System and method for encoding data in an image/video recognition integrated circuit solution
CN110874184B (zh) * 2018-09-03 2023-08-22 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关电子装置
US20200202167A1 (en) * 2018-12-20 2020-06-25 Here Global B.V. Dynamically loaded neural network models
US20210064971A1 (en) * 2019-08-29 2021-03-04 Micron Technology, Inc. Transfer data in a memory system with artificial intelligence mode
US11216696B2 (en) 2020-02-06 2022-01-04 Western Digital Technologies, Inc. Training data sample selection for use with non-volatile memory and machine learning processor
US11206316B2 (en) * 2020-03-04 2021-12-21 Hewlett Packard Enterprise Development Lp Multiple model injection for a deployment cluster
CN112784997B (zh) * 2021-01-22 2023-11-10 北京百度网讯科技有限公司 标注复核方法、装置、设备、存储介质以及程序产品
US11573773B2 (en) * 2021-03-03 2023-02-07 Capital One Services, Llc Methods and systems for correlating source code commitments and model result records during model development
US20230139732A1 (en) * 2021-11-01 2023-05-04 Samsung Electronics Co., Ltd. Multi-dimensional memory cluster

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626791B1 (en) 2011-06-14 2014-01-07 Google Inc. Predictive model caching
US10404547B2 (en) 2014-02-27 2019-09-03 Intel Corporation Workload optimization, scheduling, and placement for rack-scale architecture computing systems
EP3198806B1 (en) 2014-09-25 2019-09-25 Intel Corporation Network communications using pooled memory in rack-scale architecture

Also Published As

Publication number Publication date
EP3506107A1 (en) 2019-07-03
US10915791B2 (en) 2021-02-09
US20190034763A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
CN109978167A (zh) 在数据中心中存储和检索用于模型的训练数据
TWI711925B (zh) 多層記憶體系統之預測資料協作
TWI710912B (zh) 記憶體系統及實施於記憶體系統中之方法,以及非暫時性電腦儲存媒體
TWI711930B (zh) 具有嵌入於積體電路記憶體封裝中之控制器之記憶體系統
TWI727253B (zh) 計算系統及資料存取方法
TWI740097B (zh) 多層記憶體系統中之遠程直接記憶體存取
EP3506116A1 (en) Shared memory controller in a data center
CN106471460B (zh) 用于在存储器系统中分割数据结构的系统及方法
CN103946812B (zh) 用于实现多级别存储器分级体系的设备和方法
US11269780B2 (en) Mapping non-typed memory access to typed memory access
CN110321216A (zh) 跨解聚存储器装置的共享存储器池的仲裁
KR102462305B1 (ko) 고체 상태 드라이브의 판독 성능을 개선시키는 방법 및 장치
KR20210019576A (ko) 메모리 액세스 가속화를 위한 예측 페이징
CN103946826A (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
US11295235B2 (en) Filtering training data for models in a data center
US11151052B2 (en) Reading sequential data from memory using a pivot table
CN107608910A (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US11543978B2 (en) Credit-based scheduling of memory commands
CN113692579A (zh) 数据存储装置中的预测性数据预取
US10838647B2 (en) Adaptive data migration across disaggregated memory resources
CN108604168A (zh) 用于基于管芯终止的命令的技术
US10761773B2 (en) Resource allocation in memory systems based on operation modes
CN108780427A (zh) 用于促使内容模式被存储到存储器装置的存储器单元的技术
CN109992528A (zh) 从较快存储器级操作较高优先级用户的多级系统存储器配置
CN113010100A (zh) 用于机器学习框架的并行迭代器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination