CN113721839B - 用于处理图数据的计算***和存储分层方法 - Google Patents

用于处理图数据的计算***和存储分层方法 Download PDF

Info

Publication number
CN113721839B
CN113721839B CN202110835596.7A CN202110835596A CN113721839B CN 113721839 B CN113721839 B CN 113721839B CN 202110835596 A CN202110835596 A CN 202110835596A CN 113721839 B CN113721839 B CN 113721839B
Authority
CN
China
Prior art keywords
data
volatile memory
node
nodes
root
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.)
Active
Application number
CN202110835596.7A
Other languages
English (en)
Other versions
CN113721839A (zh
Inventor
薛菲
周杨杰
段立德
郑宏忠
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.)
Alibaba Damo Institute Hangzhou Technology Co Ltd
Original Assignee
Alibaba Damo Institute Hangzhou Technology Co Ltd
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 Alibaba Damo Institute Hangzhou Technology Co Ltd filed Critical Alibaba Damo Institute Hangzhou Technology Co Ltd
Priority to CN202110835596.7A priority Critical patent/CN113721839B/zh
Publication of CN113721839A publication Critical patent/CN113721839A/zh
Priority to US17/866,304 priority patent/US20230026824A1/en
Application granted granted Critical
Publication of CN113721839B publication Critical patent/CN113721839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/301In special purpose processing node, e.g. vector processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种用于处理图数据的计算***和存储分层方法。计算***可以包括用于高速缓存处理当前根节点所需数据的主机上的芯片存储器。该计算***还包括所述主机和非易失性存储器之间的易失性存储器接口。所述易失性存储器可被配置为保存下一组或多组根节点、邻居节点和对应属性。所述非易失性存储器可具有足够的容量来存储整个图数据。所述非易失性存储器还可被配置为预置所述下一组或多组根节点、邻居节点和对应属性以存储在所述易失性存储器中。

Description

用于处理图数据的计算***和存储分层方法
技术领域
本公开涉及芯片领域,尤其涉及一种用于处理图数据的计算***和存储分层方法。
背景技术
图数据库被用于在线购物引擎、社交网络、知识图、推荐引擎、映射引擎、故障分析、网络管理、生命科学、搜索引擎等许多应用中。图数据库可以用来确定大数据集中的依赖、聚类、相似性、匹配、类别、流、成本、中心性等。
图数据库使用具有节点、边和属性的图结构来表示和存储数据,用于语义查询。图将数据项与节点、边和属性的集合联系起来。节点,也可以称为顶点,可以表示实体、实例等。边可以表示节点之间的关系,并且允许数据直接联系在一起。属性可以是与节点或边密切相关的信息。图数据库允许简单且快速地提取在关系***中难以建模的复杂层次结构。如图1所示,图(G)可以包括由一个或多个边(E)125-130耦合的多个顶点(V)105-120,并且可表示为G=(V,E)。在较高的层次上,节点的表示向量可以通过对根向量的邻居节点的表示向量进行递归聚合和转换来计算。图数据的大尺寸是图神经网络(GNN)训练或影响硬件实现的一个问题。在一些实施例中,图数据可以是10TB或更多。传统的图神经网络(GNN)可以在分布式中央处理单元(CPU)或图形处理单元(GPU)***中实现,在分布式中央处理单元(CPU)或图形处理单元(GPU)***中,大尺寸的图数据首先被加载到位于分布式服务器上的动态随机存取器(DRAM)中。在传统***中有两个主要问题。第一,通过分布式动态随机存取器进行的数据采样会影响***时延。例如,数据采样时延可能比计算时延高10倍。第二,动态随机存取器和分布式***的高成本也会产生问题。
图形处理通常会引起较大的处理利用率和较大的内存访问带宽利用率。因此,需要改进图处理平台,从而降低与大处理利用率相关的时延,提高存储器带宽利用率,等等。
发明内容
参照以下描述和附图可以最佳地理解本公开,所述附图用于说明本公开实施例的加速图神经网络(GNN)处理的存储***。
本公开的一个目的是实现加速图神经网络处理的计算***。
在一个实施例中,一种用于处理图数据的计算***可以包括:易失性存储器、与所述易失性存储器通信耦合的主机、以及与所述主机和所述易失性存储器通信耦合的非易失性存储器。所述主机包括预取控制单元,所述预取控制单元被配置为请求多个根节点的数据。所述非易失性存储器可以被配置为存储图数据。所述非易失性存储器可包括节点预置控制单元,所述节点预置控制单元被配置为响应于对所述多个根节点的对应请求,从所述图数据中提取多组根节点和邻居节点以及对应的属性。所述节点预置控制单元还被配置为以预设数据结构将所述多组根节点和邻居节点以及对应的属性写入所述易失性存储器。
在另一实施例中,一种用于图神经网络处理的存储分层方法,包括:由主机请求根节点的数据。由非易失性存储器提取所述根节点和对应邻居节点的分组的结构数据和属性数据。也由所述非易失性存储器将所述根节点和对应邻居节点的分组的结构数据和属性数据以预设数据结构写入易失性存储器。由所述主机从所述易失性存储器将所述根节点和对应邻居节点的分组的结构数据和属性数据读出,放入所述主机的高速缓存中。由所述主机处理所述根节点和对应邻居节点的分组的结构数据和属性数据。
通过上述方案,使得可以提高计算***的图神经网络处理速度。
提供发明内容部分是为了以简要形式介绍发明构思的选择,在下面的具体实施例中将进一步描述发明构思。本发明内容部分的目的并非指明所要求保护的主题的关键特征或基本特征,也不是要用来限制所要求保护的主题的范围。
附图说明
在附图中,以示例的方式而不是以限制的方式示出本公开的实施例,其中,类似的附图标记表示类似的元件,并且,其中:
图1示出根据现有技术的示例性图数据库。
图2示出根据本公开实施例的图神经网络处理***。
图3A和图3B示出根据本公开实施例的用于图神经网络处理的存储分层方法。
图4示出根据本公开实施例的图神经网络处理***的非易失性存储器。
图5示出根据本公开实施例的图神经网络处理***的主机和易失性存储器。
具体实施例
现在将详细说明本公开的实施例,其示例在附图中示出。尽管将结合实施例来描述本公开,但是应当理解,其目的并非将本公开限制于这些实施例。相反,本公开旨在覆盖所附权利要求限定的本公开的范围内的替代方案、修改方案和等同方案。此外,在下面对本公开实施例的详细描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,应当理解,本公开可以在无需这些具体细节的情况下实施。在另一些情况下,为了避免模糊本公开的方面,公知的方法、过程、部件和电路未进行详细描述。
下文中本公开的一些实施例是按照例程、模块、逻辑块、以及对一个或多个电子设备内的数据的操作的其他符号形式来呈现的。这些描述和形式是本领域技术人员采用的将工作实质最有效地传达给本领域技术人员的方式。在本文中,例程、模块、逻辑块和/或类似物通常认为是导致期望结果的过程或指令的自洽序列。这些过程包括对物理量的物理操作。尽管并非必要,通常这些物理操作采取的形式是能够在电子设备中存储、传输、比较和以其他方式操作的电或磁信号。为方便起见,以及参考公共用法,参考本公开实施例,这些信号称为数据、比特、值、要素、符号、字符、术语、数字、字符串等。
然而,应当记住,这些术语将解释为提及物理操作和物理量,并且仅仅是方便的标记,并且将根据本领域中常用的术语进一步解释。除非在下面的讨论中显而易见地特别说明,否则应当理解,在本公开实施例的全部讨论中,使用诸如“接收”等术语的讨论指的是电子设备的动作或过程,电子设备例如是操纵和转换数据的电子计算设备。数据表示为电子设备的逻辑电路、寄存器、存储器等内部的物理(例如,电子)量,并被转换成类似地表示为电子设备内的物理量的其他数据。
在本公开中,析取词的使用意在包括合取词。定冠词或不定冠词的使用并非意在指示基数。特别地,对“所述”对象或“一个”对象的引述意在也表示可能存在的多个这种对象之一。术语“包括”、“包含”等的使用指定存在所述元件,但不排除存在或添加一个或多个其他元件和/或元件组。还应理解,尽管术语第一、第二等可用于描述不同元件,然而,这些元件不应受到这些术语的限制。这些术语用来将一个元件与另一个元件彼此区分。例如,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件,而不脱离实施例的范围。还应当理解,当一个元件被称为“耦合”到另一个元件时,它可以直接或间接地连接到另一个元件,或者可以存在一个中间元件。相反,当一个元件被称为“直接连接”到另一个元件时,则不存在中间元件。还应理解,术语“和/或”包括一个或多个相关联元件的任何组合和所有组合。还应理解,这里使用的短语和术语是出于描述的目的,而不应被视为限制性的。
参照图2,图2示出根据本公开实施例的图神经网络(GNN)处理***。图神经网络处理***200可以包括主机210、易失性存储器(VM)220和非易失性存储器(NVM)230,主机210、易失性存储器(VM)220和非易失性存储器(NVM)230通过一个或多个通信链路240通信地耦合在一起。主机210可以包括一个或多个处理单元、加速器等(图中未示出)、节点预取控制单元250和高速缓存260。在一个实施例中,高速缓存260可以是静态随机存取器(SRAM)等。主机210可以包括与本公开的理解方面不相关的许多其他子***,在此不对其进行描述。
易失性存储器220可以包括一个或多个控制单元和一个或多个存储单元阵列(图中未示出)。易失性存储器220的一个或多个存储单元阵列可以组织在一个或多个通道、多个块、多个页,等等中。在一个实施例中,易失性存储器220可以是动态随机存取器(DRAM)等。易失性存储器220可以包括与本公开的理解方面不相关的许多其他子***,在此不对其进行描述。
非易失性存储器230可包括节点预置控制单元270和一个或多个存储单元阵列280。非易失性存储器230的一个或多个存储单元阵列280可以组织在一个或多个通道、多个块、多个页,等等中。在一个实施例中,非易失性存储器230可以是闪存存储器等。非易失性存储器230可以包括与本公开的理解方面不相关的许多其他子***,在此不对其进行描述。非易失性存储器230可被配置为存储包括多个节点和相关联的节点属性的图数据。
图神经网络(GNN)处理***可配置为处理图数据。在一个图中,数据被设置为节点、边和属性的集合。节点可以表示实体、实例等,边可以表示节点之间的关系并允许数据关联在一起。属性可以是与节点和边密切相关的信息。图中的任何节点都可以被认为是对图数据执行的给定处理的根节点。通过对应的边直接连接到给定的根节点的这些节点可以认为是第一级邻居节点。通过对应的边通过第一级邻居节点耦合到给定根节点的那些节点可以被认为是第二级邻居节点,以此类推。对给定节点的处理可以在包括作为根节点的给定节点、根节点的一个或多个级别的邻居节点、以及对应属性的分组上执行。
主机210的节点预取控制单元250可被配置为从非易失性存储器230为多个根节点请求数据。非易失性存储器230的节点预置控制单元270可被配置为为每个被请求的根节点提取多组根节点和邻居节点数据。接着,节点预置控制单元270可以被配置为以预设数据结构将所述多组根节点和邻居节点数据写入易失性存储器220。可选地,多组根节点和邻居节点数据可以缓存在非易失性存储器230的存储单元阵列280中,直到所述多组根节点和邻居节点数据被写入易失性存储器220。
图3A至图3B示出了本公开实施例的用于图神经网络(GNN)处理的存储分层方法。参见图3A至图3B,下面将进一步说明根据本公开实施例的用于图神经网络处理***的操作。用于图神经网络处理的存储分层方法包括:在步骤310中,将对根节点的数据请求从主机210发送到非易失性存储器220。在一个实施例中,主机210的节点预取控制单元250可以生成对给定根节点相关数据的请求,并且通过一个或多个通信链路240将该请求发送到非易失性存储器230的节点预置控制单元270。在步骤320中,可以由非易失性存储器220从主机210接收对根节点的数据的请求。
在步骤330中,提取包括被请求的根节点和所述被请求的根节点的对应邻居节点的分组的结构数据和属性数据。在一个实施例中,非易失性存储器230的节点预置控制单元270可以从非易失性存储器230的一个或多个存储单元阵列280提取所述根节点和对应邻居节点的分组的结构数据和属性数据。在步骤340中,可以从非易失性存储器230将所述根节点和对应邻居节点的分组的结构数据和属性数据读出,放入易失性存储器220。在一个实施例中,节点预置控制单元270可以将包括被请求的根节点和对应的邻居节点的分组的结构数据和属性数据写入易失性存储器220。在步骤350中,可以由易失性存储器220以预设数据结构存储所述根节点和对应邻居节点的分组的结构数据和属性数据。在一个实施例中,所述预设数据结构可以包括易失性存储器220的用于存储所述根节点和邻居节点的编号的第一部分以及包括所述对应节点的属性数据的第二部分。在一个实施例中,所述给定根节点、对应的邻居节点和对应的属性数据的分组可以以所述预设数据结构存储在一个或多个页中。
在步骤360中,可以由主机210从易失性存储器220将所述根节点和对应邻居节点的分组的结构数据和属性数据读出。在一个实施例中,对于当前要处理的根节点,可以从易失性存储器220将包括所述根节点和对应邻居节点的分组的结构数据和属性数据读出,放入主机210中。在步骤370中,在主机210的高速缓存260中保存所述根节点和对应邻居节点的分组的结构数据和属性数据。在步骤380中,为当前根节点处理所述根节点和对应邻居节点的分组的结构数据和属性数据。在一个实施例中,根据在线购物引擎、社交网络、知识图、推荐引擎、映射引擎、故障分析、网络管理、生命科学和搜索引擎等应用,主机210可以对当前根节点的包括所述根节点和对应邻居节点的分组的结构数据和属性数据执行一个或多个处理。对于由主机210处理的多个根节点中的每一个根节点,可以重复步骤310-步骤380的处理。
现参考图4,图4示出了本公开实施例的图神经网络处理***的非易失性存储器。如上所述,非易失性存储器230可包括一个或多个存储器单元阵列410-430和节点预置控制单元270。节点预置控制单元270可以包括配置引擎440、结构物理页地址(physical pageaddress,PPA)解码器450、属性收集引擎460和传输引擎470。配置引擎440、结构物理页地址解码器450、属性收集引擎460和传输引擎470可以由状态机、嵌入式控制器等实现。在一个实施例中,图数据可以包括结构数据带和属性数据带。结构数据带可以包括关于每个节点以及每个给定节点的一个或多个级别的邻居节点的识别数据。属性数据带可以包括每个节点的属性数据。在一个实施例中,结构数据带可以存储在单级单元(single level cell,SLC)存储器阵列410中,属性数据带可以存储在多级单元(multilevel cell,MLC)存储器阵列420中。单级单元存储器阵列410具有相对较快的读/写速度、较低的存储器容量的特征,可用于存储结构数据,结构数据通常占图数据总量的约10%-30%。多级单元存储器阵列420具有相对较慢的读/写速度、较高的存储器容量的特征,可用于存储属性数据,属性数据通常占图数据总量的约70%-90%。
现参考图5,图5示出了本公开实施例的图神经网络(GNN)处理***的主机和易失性存储器。如上所述,主机210可以包括节点预取控制单元250和高速缓存260。节点预取控制单元250可以包括预取控制引擎510、访问引擎520和键值高速缓存引擎530。预取控制引擎510、访问引擎520和键值高速缓存引擎530可以由状态机、嵌入式控制器等实现。在一个实施例中,预取控制引擎510可以被配置为生成用于对多个节点中的每一个节点进行采样的命令。每个命令都可以标识预设的给定节点。预取控制引擎510可以将节点采样命令发送到非易失性存储器230的节点预置控制单元270的配置引擎440。
再次参考图4,配置引擎440可以接收用于对多个节点中的每一个节点进行采样的节点采样命令。配置引擎440可以对结构数据和属性数据进行采样,以确定命令的给定节点和图数据的一个或多个级别的邻居节点的属性。结构物理页地址解码器450可以被配置为从对应节点的节点编号中确定图数据的属性数据带中一个或多个级别的邻居节点的物理地址。属性收集引擎460可以被配置为在确定的物理地址读取根节点和邻居节点的编号以及其属性,并将所述根节点和邻居节点的编号以及其属性打包以存储在易失性存储器220的块中。例如,属性收集引擎460可以对根节点的第一级邻居节点进行采样。属性收集引擎460还可以从第一级邻居节点对第二级邻居节点进行采样,并对预定数量个级别的邻居节点进行类似操作。然后,属性收集引擎460可以收集根节点和预定数量个级别的对应邻居节点的对应属性。在一个示例性的实施例中,一个属性可以包括128个元素,每个元素为32比特并且包括512字节的数据。512字节的数据可以是一个逻辑块地址(logical blockaddress,LBA)的大小。八个属性可以组合成一个4千字节的块,一个16千字节的页可以容纳32个属性。因此,在这样的实施例中,两级的图神经网络邻居节点可以平均共有25个邻居节点,这样,一个页可以容纳所有的属性。但是,如果两级的邻居节点包括超过25个邻居节点,则可以利用额外的页。因此,根节点和邻居节点以及对应的属性的分组数据可以在每个不同根节点的新页上开始存储。传输引擎470可以被配置为在易失性存储器220的给定块中存储根节点和邻居节点的编号及其属性的打包分组。可选地,如果易失性存储器220当前已满,则传输引擎470将根节点和邻居节点的编号及其属性的打包分组写入非易失性存储器230中的预设节点带。在一个实施例中,预设节点带可以存储在单级单元存储器阵列430中。配置引擎440还可以被配置为发送每个节点采样命令的完成指示给主机210。
再次参考图5,访问引擎520可被配置为将根节点和邻居节点的编号及其属性的打包分组加载至易失性存储器220的给定块中。访问引擎520还可被配置为从易失性存储器220读出下一组根节点和对应邻居节点以及对应属性,放入高速缓存260中,以供主机210处理。预取控制单元510可以从节点预置控制单元270的配置引擎440接收每个采样完成的指示。只要易失性存储器220未满,预取控制单元510可以继续发送用于采样另外节点的命令。键值高速缓存引擎530可以被配置为维护最近访问节点的表。在一个实施例中,信息可以包括具有设置为节点编号的键和设置为节点属性的值的表。然后,可以查表以查看是否高速缓存260中已经具有给定节点的数据。该表还可用于剔除最近最少使用的根节点和邻居节点以及对应的属性的分组,以便在高速缓存260中为新的一组根节点和邻居节点以及对应的属性腾出空间。
根据本公开实施例,对于主机接下来要处理的多个根节点,易失性存储器可以有利地保存多组根节点和邻居节点以及对应属性。而且,所述多组根节点和邻居节点以及对应的属性被准备在易失性存储器中,因此,可以有利地被顺序访问,从而提高非易失性存储器的读取带宽。本公开实施例有利地允许节点信息从高容量非易失性存储器加载到易失性存储器中,然后加载到主机的高速缓存中,这可以节省时间和功耗。因为非易失性存储器通常比易失性存储器便宜大约20倍,所以在非易失性存储器中存储图数据,并且仅在易失性存储器中存储接下来的多组根节点和邻居节点以及对应的属性,有利于降低***的成本。与易失性存储器相比,因为不需要刷新非易失性存储器,所以将图数据存储在非易失性存储器中也利于节省功耗。非易失性存储器的大容量也可利于使整个图数据能够被存储。根据本公开实施例,节点采样方便地在非易失性存储器中完成,然后预取到易失性存储器220中,然后高速缓存,通过以较少的数据移动进行近数据处理来提高性能。
对于本公开实施例的前述描述是为了说明和描述的目的而呈现的。前述描述并非意在排他或限制本公开为所公开的精确形式,在上述教导的启示下显然可能实现许多修改和变化。实施例的选择和描述是为了最好地解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本公开以及利用对于预期的特定用途合适的各种修改的各种实施例。本公开的范围由所附权利要求及其等同物限定。

Claims (13)

1.一种用于处理图数据的计算***,所述图数据包括根节点和邻居节点,所述计算***包括:
易失性存储器;
主机,与所述易失性存储器通信耦合,所述主机包括预取控制单元,所述预取控制单元被配置为请求所述图数据的多个根节点的数据;
非易失性存储器,与所述主机和所述易失性存储器通信耦合,其中,所述非易失性存储器被配置为存储所述图数据,所述非易失性存储器包括节点预置控制单元、单级单元存储器阵列和多级单元存储器阵列,所述图数据中结构数据存储在所述单级单元存储器阵列中,属性数据存储在所述多级单元存储器阵列中,所述节点预置控制单元被配置为响应于对所述多个根节点的对应请求,从所述图数据中提取多组根节点和邻居节点以及对应的属性,并以预设数据结构将所提取的多组根节点和邻居节点以及对应的属性写入所述易失性存储器。
2.根据权利要求1所述的计算***,其中,所述主机还包括高速缓存,所述高速缓存被配置为存储来自所述易失性存储器的所述根节点和邻居节点数据的当前组,以供所述主机处理。
3.根据权利要求1所述的计算***,其中,所述非易失性存储器还被配置为在将所述多组根节点和邻居节点写入所述易失性存储器之前,对所述多组根节点和邻居节点中的一组或多组进行缓存。
4.根据权利要求2所述的计算***,其中,所述预取控制单元包括预取控制引擎,所述预取控制引擎被配置成生成针对为多个节点中的每一个节点的节点采样命令。
5.根据权利要求4所述的计算***,其中,所述预取控制单元还包括访问引擎,所述访问引擎被配置为将根节点和邻居节点的编号及其属性的打包分组加载至所述易失性存储器的给定块中,并从所述易失性存储器中读出下一组根节点、邻居节点和对应属性,放入所述高速缓存中。
6.根据权利要求4所述的计算***,其中,所述预取控制单元还包括键值高速缓存引擎,所述键值高速缓存引擎被配置为维护最近访问节点的表。
7.根据权利要求1所述的计算***,其中,所述节点预置控制单元包括配置引擎,所述配置引擎被配置为对结构数据和属性数据进行采样,以确定节点采样命令的给定节点的属性。
8.根据权利要求7所述的计算***,其中,所述节点预置控制单元还包括结构物理页地址解码器,所述结构物理页地址解码器被配置为确定邻居节点的物理地址。
9.根据权利要求7所述的计算***,其中,所述节点预置控制单元还包括属性收集引擎,所述属性收集引擎被配置为采样一个或多个级别的邻居节点并收集对应的属性。
10.根据权利要求7所述的计算***,其中,所述节点预置控制单元还包括传输引擎,所述传输引擎被配置为存储包括所述根节点和邻居节点、以及对应属性的打包分组。
11.一种用于图神经网络处理的存储分层方法,包括:
由主机请求根节点的数据;
由非易失性存储器提取包括所述根节点和所述根节点的对应邻居节点的图数据分组的结构数据和属性数据,所述非易失性存储器包括单级单元存储器阵列和多级单元存储器阵列,所述图数据中结构数据存储在所述单级单元存储器阵列中,属性数据存储在所述多级单元存储器阵列中;
由所述非易失性存储器将包括所述根节点和对应邻居节点的所述图数据分组的结构数据和属性数据以预设数据结构写入易失性存储器;
由所述主机从所述易失性存储器将包括所述根节点和对应邻居节点的所述图数据分组的结构数据和属性数据读出,放入所述主机的高速缓存中;
由所述主机处理包括所述根节点和对应邻居节点的所述图数据分组的结构数据和属性数据。
12.根据权利要求11所述的存储分层方法,其中,所述存储分层方法还包括:
将所述图数据的结构数据存储在所述非易失性存储器的单级单元存储器阵列中;
将所述图数据的属性数据存储在所述非易失性存储器的多级单元存储器阵列中。
13.根据权利要求11所述的存储分层方法,其中,在所述易失性存储器中所述预设数据结构包括一个或多个页,所述页包括结构数据,所述结构数据包括根节点和邻居节点的编号、以及属性数据。
CN202110835596.7A 2021-07-23 2021-07-23 用于处理图数据的计算***和存储分层方法 Active CN113721839B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110835596.7A CN113721839B (zh) 2021-07-23 2021-07-23 用于处理图数据的计算***和存储分层方法
US17/866,304 US20230026824A1 (en) 2021-07-23 2022-07-15 Memory system for accelerating graph neural network processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110835596.7A CN113721839B (zh) 2021-07-23 2021-07-23 用于处理图数据的计算***和存储分层方法

Publications (2)

Publication Number Publication Date
CN113721839A CN113721839A (zh) 2021-11-30
CN113721839B true CN113721839B (zh) 2024-04-19

Family

ID=78673823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110835596.7A Active CN113721839B (zh) 2021-07-23 2021-07-23 用于处理图数据的计算***和存储分层方法

Country Status (2)

Country Link
US (1) US20230026824A1 (zh)
CN (1) CN113721839B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105612503A (zh) * 2013-08-09 2016-05-25 桑迪士克科技股份有限公司 持久性数据结构
CN108268391A (zh) * 2016-12-30 2018-07-10 三星电子株式会社 半导体***及其控制方法
CN108475235A (zh) * 2016-01-11 2018-08-31 高通股份有限公司 利用dram程序高速缓存的非易失性随机存取***存储器
CN108874701A (zh) * 2017-05-09 2018-11-23 三星电子株式会社 用于混合存储器中的写入和刷新支持的***和方法
WO2020019314A1 (zh) * 2018-07-27 2020-01-30 浙江天猫技术有限公司 一种图数据存储方法、***及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819078B2 (en) * 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
US10084877B2 (en) * 2015-10-22 2018-09-25 Vmware, Inc. Hybrid cloud storage extension using machine learning graph based cache
WO2018059656A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Main memory control function with prefetch intelligence

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105612503A (zh) * 2013-08-09 2016-05-25 桑迪士克科技股份有限公司 持久性数据结构
CN108475235A (zh) * 2016-01-11 2018-08-31 高通股份有限公司 利用dram程序高速缓存的非易失性随机存取***存储器
CN108268391A (zh) * 2016-12-30 2018-07-10 三星电子株式会社 半导体***及其控制方法
CN108874701A (zh) * 2017-05-09 2018-11-23 三星电子株式会社 用于混合存储器中的写入和刷新支持的***和方法
WO2020019314A1 (zh) * 2018-07-27 2020-01-30 浙江天猫技术有限公司 一种图数据存储方法、***及电子设备

Also Published As

Publication number Publication date
US20230026824A1 (en) 2023-01-26
CN113721839A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
US10318434B2 (en) Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US10176113B2 (en) Scalable indexing
US9563658B2 (en) Hardware implementation of the aggregation/group by operation: hash-table method
US9966152B2 (en) Dedupe DRAM system algorithm architecture
US20120066473A1 (en) Memory Architecture with Policy Based Data Storage
CN112000846B (zh) 基于gpu分组lsm树索引的方法
US11281585B2 (en) Forward caching memory systems and methods
US20220171711A1 (en) Asynchronous forward caching memory systems and methods
CN108959113A (zh) 用于闪存感知堆存储器管理的方法和***
CN108052541B (zh) 基于多级页表目录结构的文件***的实现、访问方法、终端
US12001716B2 (en) Key-value data storage system using content addressable memory
US10705762B2 (en) Forward caching application programming interface systems and methods
CN115033185A (zh) 访存处理方法和装置、存储装置、芯片、板卡、电子设备
CN104714898B (zh) 一种Cache的分配方法和装置
US9261946B2 (en) Energy optimized cache memory architecture exploiting spatial locality
CN115249057A (zh) 用于图形节点采样的***和由计算机实现的方法
US20230385258A1 (en) Dynamic random access memory-based content-addressable memory (dram-cam) architecture for exact pattern matching
US10339052B2 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
CN113721839B (zh) 用于处理图数据的计算***和存储分层方法
KR101967857B1 (ko) 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법
CN111695685A (zh) 一种面向图神经网络应用的片上存储***及方法
WO2020237409A1 (en) Technologies for memory-efficient key-value lookup
US9720970B2 (en) Efficient storage and retrieval of fragmented data using pseudo linear dynamic byte array
US11995005B2 (en) SEDRAM-based stacked cache system and device and controlling method therefor
CN118331923A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240305

Address after: 311121 Room 516, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba Dharma Institute (Hangzhou) Technology Co.,Ltd.

Country or region after: China

Address before: 200131 floor 5, No. 366, Shangke road and No. 2, Lane 55, Chuanhe Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant before: Pingtouge (Shanghai) semiconductor technology Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant