CN112925627A - 基于图形处理器的图采样和随机游走加速方法及系统 - Google Patents

基于图形处理器的图采样和随机游走加速方法及系统 Download PDF

Info

Publication number
CN112925627A
CN112925627A CN202110318094.7A CN202110318094A CN112925627A CN 112925627 A CN112925627 A CN 112925627A CN 202110318094 A CN202110318094 A CN 202110318094A CN 112925627 A CN112925627 A CN 112925627A
Authority
CN
China
Prior art keywords
thread
sampling
vertex
gpu
graph
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.)
Granted
Application number
CN202110318094.7A
Other languages
English (en)
Other versions
CN112925627B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202110318094.7A priority Critical patent/CN112925627B/zh
Priority to PCT/CN2021/084847 priority patent/WO2022198713A1/zh
Publication of CN112925627A publication Critical patent/CN112925627A/zh
Application granted granted Critical
Publication of CN112925627B publication Critical patent/CN112925627B/zh
Priority to US17/661,663 priority patent/US11875426B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

一种基于图形处理器的图采样和随机游走加速方法及系统,通过CPU从存储介质中读取图数据并转化为CSR格式后输出至GPU,GPU根据设定的工作模式:实时生成别名表并进行采样;或离线判断是否已有预先生成的别名表并进行采样。本发明能够高效、并行地执行别名方法,能够在相同硬件平台上显著提升图数据处理的性能,包括提高采样吞吐量吞吐量,以及减少整体运行时间。

Description

基于图形处理器的图采样和随机游走加速方法及系统
技术领域
本发明涉及的是一种数据处理领域的技术,具体是一种针对人工智能应用的基于图形处理器的图采样和随机游走加速方法及系统。
背景技术
图采样、随机游走通过一定的评判标准,选取原图数据的子图。图采样、随机游走是对图数据的常用处理技术,可以显著降低对大图处理的开销,同时在人工智能应用中保持较高的准确率等指标,但是图采样和随机游走本身在计算过程中也需要消耗大量的时间,对其进行加速有利于整体性能的提高。
有偏图采样、随机游走是指:在选取图中某顶点的邻居顶点的过程中,依据与邻居顶点相连边的权重对邻居顶点进行随机挑选的过程。有偏图采样、随机游走通常需要计算邻居顶点的转移概率来保证挑选的随机性。别名方法(Alias Method)是计算转移概率的一种方法,但是其一般被认为难以被高效并行化,因而并无利用GPU处理别名方法的系统。
发明内容
本发明针对现有有偏图采样、随机游走系统的复杂度高、加速器执行效率低、整体运行时间较长等缺点,提出一种基于图形处理器的图采样和随机游走加速方法及系统,能够高效、并行地执行别名方法,能够在相同硬件平台上显著提升图数据处理的性能,包括提高采样吞吐量吞吐量,以及减少整体运行时间。
本发明是通过以下技术方案实现的:
本发明涉及一种基于图形处理器的图采样和随机游走加速方法,通过中央处理器(Central Processing Unit,CPU)从存储介质中读取图数据并转化为压缩稀疏行(Compressed Sparse Row,CSR)格式后输出至GPU,GPU根据设定的工作模式:实时生成别名表(Alias Table)并进行采样;或离线判断是否已有预先生成的别名表并进行采样。
所述的中央处理器发起在GPU执行的核函数,该核函数的线程块在其生命周期中不断地参与可变大小的线程工作组,以处理任务队列中的任务,实现随机游走的执行模式。
所述的线程不断参与可变大小的线程工作组是指:采样任务存储在全局任务队列中,线程块中的线程不断地处理任务队列中的任务,根据线程块的不同状态,其中的线程分别参与线程子束、线程束或线程块以协同进行采样。
所述的线程块的不同状态包括:线程子束协同、线程束协同和线程块协同。
所述的采样,通过采用根据待采样顶点的度数将待处理顶点分配给一个不同大小的图形处理器线程组的负载均衡策略实现,具体为:根据出度数组中顶点的出度大小和阈值将顶点分类,然后分别用线程子束(subwarp)、线程束(thread warp)或线程块(threadblock)进行处理。
所述的顶点分类,包括:①当待采样顶点出度d數T1,则该顶点采用一个线程子束进行处理;②当T1數d數T2,则该顶点采用一个线程束进行处理;③当T2數d,则该顶点采用一个线程块进行处理,其中:顶点的出度为有向图中各顶点的指向其他顶点的边的数目d,两个阈值T1和T2分别为8和32。
所述的线程子束,通常大小为4或8个线程;线程束,通常大小为32个线程;线程块,通常大小为256,512或1024个线程。
所述的指定线程束处理阈值小于线程块处理阈值。
本发明涉及一种实现上述方法的系统,包括:CPU主控模块、数据管理模块、GPU执行模块和GPU调度模块,其中:数据管理模块与CPU主控模块相连并根据控制指令管理数据移动,CPU主控模块与GPU执行模块相连并传输任务执行信息,GPU调度模块与GPU执行模块相连并传输调度信息。
技术效果
本发明整体解决了现有技术的并行度低、加速器执行效率低、整体运行时间较长等不足;与现有技术相比,本发明低运行时开销、负载均衡的执行调度策略,以及对实时和离线负载的支持。
附图说明
图1为本发明系统结构图;
图2为本发明流程图;
图3为GPU迭代执行示意图;
图4为不同大小任务组在实时工作模式下进行采样的示意图。
具体实施方式
如图2所示,为本实施例涉及一种基于图形处理器的图采样和随机游走加速方法,通过CPU从存储介质中读取图数据并转化为CSR格式后输出至GPU,GPU根据设定的工作模式:实时生成别名表并进行采样;或离线判断是否已有预先生成的别名表并进行采样,其中:起始阶段图结构数据储存在图形处理器的内存中,待处理的顶点存储在全局任务队列中;迭代执行阶段,核函数中的线程组各自独立地处理全局任务队列中的任务,直到全局任务队列为空。
所述的离线判断是指:当无预先生成的别名表时,先为全图生成别名表后再进行采样,否则利用已有别名表进行采样。
所述的为全图生成别名表,具体包括:
步骤1.1:每个GPU核函数的线程子束向全局任务队列请求任务,当取得任务中的待采样顶点出度d數T1,则此线程子束中的线程对该顶点进行协同处理,即多个GPU线程在同一时间,共同的为一个顶点计算别名表;当T1數d數T2,则将该顶点暂时加入本地任务队列待后续处理;当T2數d,则将该顶点加入全局高度顶点任务队列,其中T1、T2为两个可调节的阈值,在实践中为32和256;d为顶点的出度,即顶点发出的边的个数。
所述的全局任务队列由主控CPU线程在起始阶段生成,包含D个子任务队列,其中D是采样深度,每个子队列各包含一个待处理顶点,其中采样深度为0的队列初始化为本次采样任务的根顶点。
所述的待处理顶点的度数高于所述可调节的阈值T2
在迭代处理过程中,核函数可以向子队列中添加任务。
所述的本地任务队列由每个线程块各自生成并维护,其存储了线程子束获得的满足T1數d數T2的顶点。
所述的线程子束是指:在运行时多个相邻GPU线程的集合,大小通常为4、8或16。
步骤1.2:当本轮迭代对应的全局任务队列为空,则一个线程束中已完成的线程等待同一个线程束中的其他线程,以参与对本地任务队列的处理过程。
步骤1.3:当本轮迭代对应的本地任务队列为空,则一个线程块中已完成的线程等待同一个线程块中的其他线程,以参与对全局高度顶点任务队列的处理过程。
步骤1.4:由每个线程束对采样深度进行判断,检查当前采样深度是否等于目标采样深度,当采样未达到目标深度,则重复步骤1.1-1.4进行迭代,否则处理结束。
如图4所示,所述的实时生成别名表并进行采样,具体包括:
步骤2.1:每个GPU核函数的工作组向对应任务队列请求任务,获取一个待采样顶点。
步骤2.2:各工作组检查图形处理器的内存中当存在已有待采样顶点的别名表(Alias Table)时直接进入下一步骤,否则多个GPU线程协同地在同一时间为待采样顶点构建别名表。
步骤2.3:各工作组使用min(|WG|,k)个线程进行采样,其中:min表示取最小值,|WG|表示工作组中线程的个数,k表示每个点在当前深度采样的大小。
步骤2.4:各工作组将构建的别名表存储到图形处理器的内存,以备未来使用。
经过具体实际实验,在配备有两个2.40GHz Intel Xeon 6148CPU,256GB内存,1个NVIDIA RTX 2080Ti GPU的测试服务器平台上,以T1=8、T2=256、线程子束大小为4、线程子束大小为32、线程块大小为256运行上述方法,在Arabic-2005数据集上,实时、离线两种工作模式下的采样的吞吐量分别为536、2545百万边每秒(million sampled edge persecond),实时、离线两种工作模式下的随机游走的吞吐量分别为65、3399、8175百万边每秒。相当于基于CPU的KnightKing系统,实时、离线随机游走吞吐量提升499、33倍;相对于基于GPU的C-SAW系统,实时、离线采样吞吐量提升83和65倍,实时、离线随机游走吞吐量提升18和13倍。
与现有技术相比,本方法充分利用GPU的高并行度,保证了负载均衡,减少了运行时的开销。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (9)

1.一种基于图形处理器的图采样和随机游走加速方法,其特征在于,通过CPU从存储介质中读取图数据并转化为CSR格式后输出至GPU,GPU根据设定的工作模式:实时生成别名表并进行采样;或离线判断是否已有预先生成的别名表并进行采样;
所述的中央处理器发起在GPU执行的核函数,该核函数的线程块在其生命周期中不断地参与可变大小的线程工作组,以处理任务队列中的任务,实现随机游走的执行模式;
所述的离线判断是指:当无预先生成的别名表时,先为全图生成别名表后再进行采样,否则利用已有别名表进行采样。
2.根据权利要求1所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的线程不断参与可变大小的线程工作组是指:采样任务存储在全局任务队列中,线程块中的线程不断地处理任务队列中的任务,根据线程块的不同状态,其中的线程分别参与线程子束、线程束或线程块以协同进行采样。
3.根据权利要求2所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的线程块的不同状态包括:线程子束协同、线程束协同和线程块协同。
4.根据权利要求1所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的采样,通过采用根据待采样顶点的度数将待处理顶点分配给一个不同大小的图形处理器线程组的负载均衡策略实现,具体为:根据出度数组中顶点的出度大小和阈值将顶点分类,然后分别用线程子束、线程束或线程块进行处理。
5.根据权利要求1~4中任一所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的顶点分类,包括:①当待采样顶点出度d<T1,则该顶点采用一个线程子束进行处理;②当T1<d<T2,则该顶点采用一个线程束进行处理;③当T2<d,则该顶点采用一个线程块进行处理,其中:顶点的出度为有向图中各顶点的指向其他顶点的边的数目d,两个阈值T1和T2
6.根据权利要求5所述的基于图形处理器的图采样和随机游走加速方法,其特征是,通过全局任务队列来指示GPU核函数线程在线程子束协同、线程束协同和线程块协同三种状态间切换,而无需多次启动核函数。
7.根据权利要求1所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的为全图生成别名表,具体包括:
步骤1:每个GPU核函数的线程子束向全局任务队列请求任务,当取得任务中的待采样顶点出度d<T1,则此线程子束中的线程对该顶点进行协同处理,即多个GPU线程在同一时间,共同的为一个顶点计算别名表;当T1<d<T2,则将该顶点暂时加入本地任务队列待后续处理;当T2<d,则将该顶点加入全局高度顶点任务队列,其中T1、T2为两个可调节的阈值,在实践中为32和256;d为顶点的出度,即顶点发出的边的个数;
步骤2:当本轮迭代对应的全局任务队列为空,则一个线程束中已完成的线程等待同一个线程束中的其他线程,以参与对本地任务队列的处理过程;
步骤3:当本轮迭代对应的本地任务队列为空,则一个线程块中已完成的线程等待同一个线程块中的其他线程,以参与对全局高度顶点任务队列的处理过程;
步骤4:由每个线程束对采样深度进行判断,检查当前采样深度是否等于目标采样深度,当采样未达到目标深度,则重复步骤1-4进行迭代,否则处理结束。
8.根据权利要求1所述的基于图形处理器的图采样和随机游走加速方法,其特征是,所述的实时生成别名表并进行采样,具体包括:
步骤①:每个GPU核函数的工作组向对应任务队列请求任务,获取一个待采样顶点;
步骤②:各工作组检查图形处理器的内存中当存在已有待采样顶点的别名表时直接进入下一步骤,否则多个GPU线程协同地在同一时间为待采样顶点构建别名表;
步骤③:各工作组使用min(|WG|,k)个线程进行采样,其中:min表示取最小值,|WG|表示工作组中线程的个数,k表示每个点在当前深度采样的大小;
步骤④:各工作组将构建的别名表存储到图形处理器的内存,以备未来使用。
9.一种实现权利要求1~8中任一所述方法的系统,其特征在于,包括:CPU主控模块、数据管理模块、GPU执行模块和GPU调度模块,其中:数据管理模块与CPU主控模块相连并根据控制指令管理数据移动,CPU主控模块与GPU执行模块相连并传输任务执行信息,GPU调度模块与GPU执行模块相连并传输调度信息。
CN202110318094.7A 2021-03-25 2021-03-25 基于图形处理器的图采样和随机游走加速方法及系统 Active CN112925627B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110318094.7A CN112925627B (zh) 2021-03-25 2021-03-25 基于图形处理器的图采样和随机游走加速方法及系统
PCT/CN2021/084847 WO2022198713A1 (zh) 2021-03-25 2021-04-01 基于图形处理器的图采样和随机游走加速方法及系统
US17/661,663 US11875426B2 (en) 2021-03-25 2022-05-02 Graph sampling and random walk acceleration method and system on GPU

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110318094.7A CN112925627B (zh) 2021-03-25 2021-03-25 基于图形处理器的图采样和随机游走加速方法及系统

Publications (2)

Publication Number Publication Date
CN112925627A true CN112925627A (zh) 2021-06-08
CN112925627B CN112925627B (zh) 2022-03-29

Family

ID=76175981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110318094.7A Active CN112925627B (zh) 2021-03-25 2021-03-25 基于图形处理器的图采样和随机游走加速方法及系统

Country Status (2)

Country Link
CN (1) CN112925627B (zh)
WO (1) WO2022198713A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220309609A1 (en) * 2021-03-25 2022-09-29 College Of Electronic Information And Electrical Engineering, Shanghai Jiaotong University Graph sampling and random walk acceleration method and system on GPU
CN116188239A (zh) * 2022-12-02 2023-05-30 上海交通大学 多请求并发的gpu图随机游走优化实现方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090322781A1 (en) * 2008-06-30 2009-12-31 Mikhail Letavin Anti-aliasing techniques for image processing
US8396066B1 (en) * 2008-10-07 2013-03-12 BCK Networks, Inc. Routing table for non-uniform random neighbor selection
CN104268021A (zh) * 2014-09-15 2015-01-07 西安电子科技大学 基于图形处理器的rs解码方法
CN108009933A (zh) * 2016-10-27 2018-05-08 中国科学技术大学先进技术研究院 图中心性计算方法及装置
CN110187968A (zh) * 2019-05-22 2019-08-30 上海交通大学 异构计算环境下的图数据处理加速方法
CN111950594A (zh) * 2020-07-14 2020-11-17 北京大学 基于子图采样的大规模属性图上的无监督图表示学习方法和装置
CN112258378A (zh) * 2020-10-15 2021-01-22 武汉易维晟医疗科技有限公司 基于gpu加速的实时三维测量系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196995B (zh) * 2019-04-30 2022-12-06 西安电子科技大学 一种基于带偏置随机游走的复杂网络特征提取方法
US11562170B2 (en) * 2019-07-15 2023-01-24 Microsoft Technology Licensing, Llc Modeling higher-level metrics from graph data derived from already-collected but not yet connected data
CN112417224B (zh) * 2020-11-27 2024-07-05 华中科技大学 一种基于熵驱动的随机游走的图嵌入方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090322781A1 (en) * 2008-06-30 2009-12-31 Mikhail Letavin Anti-aliasing techniques for image processing
US8396066B1 (en) * 2008-10-07 2013-03-12 BCK Networks, Inc. Routing table for non-uniform random neighbor selection
CN104268021A (zh) * 2014-09-15 2015-01-07 西安电子科技大学 基于图形处理器的rs解码方法
CN108009933A (zh) * 2016-10-27 2018-05-08 中国科学技术大学先进技术研究院 图中心性计算方法及装置
CN110187968A (zh) * 2019-05-22 2019-08-30 上海交通大学 异构计算环境下的图数据处理加速方法
CN111950594A (zh) * 2020-07-14 2020-11-17 北京大学 基于子图采样的大规模属性图上的无监督图表示学习方法和装置
CN112258378A (zh) * 2020-10-15 2021-01-22 武汉易维晟医疗科技有限公司 基于gpu加速的实时三维测量系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220309609A1 (en) * 2021-03-25 2022-09-29 College Of Electronic Information And Electrical Engineering, Shanghai Jiaotong University Graph sampling and random walk acceleration method and system on GPU
US11875426B2 (en) * 2021-03-25 2024-01-16 Shanghai Jiao Tong University Graph sampling and random walk acceleration method and system on GPU
CN116188239A (zh) * 2022-12-02 2023-05-30 上海交通大学 多请求并发的gpu图随机游走优化实现方法及系统
CN116188239B (zh) * 2022-12-02 2023-09-12 上海交通大学 多请求并发的gpu图随机游走优化实现方法及系统

Also Published As

Publication number Publication date
CN112925627B (zh) 2022-03-29
WO2022198713A1 (zh) 2022-09-29

Similar Documents

Publication Publication Date Title
CN112925627B (zh) 基于图形处理器的图采样和随机游走加速方法及系统
Gharaibeh et al. On graphs, gpus, and blind dating: A workload to processor matchmaking quest
US11875426B2 (en) Graph sampling and random walk acceleration method and system on GPU
Shi et al. A quantitative survey of communication optimizations in distributed deep learning
CN114490011B (zh) N体模拟在异构架构的并行加速实现方法
CN114647515A (zh) 一种面向gpu集群的动态资源调度方法
Zhang et al. GMMA: GPU-based multiobjective memetic algorithms for vehicle routing problem with route balancing
Kerdprasop et al. Parallelization of k-means clustering on multi-core processors
CN103679564B (zh) 一种用于配电网拓扑分析分布式计算的任务分配方法
Li et al. {MilliSort} and {MilliQuery}:{Large-Scale}{Data-Intensive} Computing in Milliseconds
Almasri et al. Hykernel: A hybrid selection of one/two-phase kernels for triangle counting on gpus
Lai et al. Accelerating geospatial applications on hybrid architectures
Li et al. A parallel immune algorithm based on fine-grained model with GPU-acceleration
Luo et al. A survey on parallel genetic algorithms for shop scheduling problems
CN116841762A (zh) 一种图神经网络训练中的定长式边点结合采样机制
Wen et al. Challenges and Opportunities of Building Fast GBDT Systems.
Ma et al. A parallel multi-swarm particle swarm optimization algorithm based on CUDA streams
Hou et al. An adaptive neighborhood taboo search on GPU for hardware/software co-design
Ovalle et al. Distributed Cache Strategies for Machine Learning Classification Tasks over Cluster Computing Resources
Ganesh et al. A Hyper Heuristics Technique for Data Partitioning and Scheduling to Heterogeneous Systems Using Genetic Algorithm and Improved Particle Swarm Optimisation
Wiggins et al. Evaluating multi-agent reinforcement learning on heterogeneous platforms
CN116188239B (zh) 多请求并发的gpu图随机游走优化实现方法及系统
Kun-lun et al. Improved GEP Algorithm for Task Scheduling in Cloud Computing
VanCompernolle et al. Maximum clique solver using bitsets on GPUs
Li et al. A hybrid genetic algorithm for task scheduling in internet of things

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
GR01 Patent grant
GR01 Patent grant