CN110187968A - 异构计算环境下的图数据处理加速方法 - Google Patents

异构计算环境下的图数据处理加速方法 Download PDF

Info

Publication number
CN110187968A
CN110187968A CN201910428567.1A CN201910428567A CN110187968A CN 110187968 A CN110187968 A CN 110187968A CN 201910428567 A CN201910428567 A CN 201910428567A CN 110187968 A CN110187968 A CN 110187968A
Authority
CN
China
Prior art keywords
vertex
work item
diagram data
thread
gpu
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
CN201910428567.1A
Other languages
English (en)
Other versions
CN110187968B (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 CN201910428567.1A priority Critical patent/CN110187968B/zh
Publication of CN110187968A publication Critical patent/CN110187968A/zh
Application granted granted Critical
Publication of CN110187968B publication Critical patent/CN110187968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种异构计算环境下的图数据处理加速方法,通过对顶点数据迭代地进行工作项转换、图数据处理、收敛判断更新以实现加速处理,其中:工作项转换是指将待处理顶点动态分配至至少一个GPU线程;图数据处理的起始阶段,将GPU上运行的顶点为中心的遍历函数所有分配的顶点数据读取并暂存入共享内存。本发明能够在相同硬件平台上显著提升图数据处理的性能,包括提高GPU缓存命中率和GPU内存吞吐量,以及减少整体运行时间。

Description

异构计算环境下的图数据处理加速方法
技术领域
本发明涉及的是一种图形处理领域的技术,具体是一种异构计算环境下的图数据处理加速方法。
背景技术
图算法是运筹学、推荐系统、数据挖掘、网络安全等众多领域应用的关键计算任务。在大数据时代,图数据规模越来越大,对其进行快速、低成本地处理至关重要。图形处理器(GPU)因其大规模并行和高内存带宽等特点,可被用来作为图数据处理的加速器。
现有针对多GPU的图算法虽然能够进行并行处理(例如:一种基于多GPU的图数据处理系统及方法),但这类技术无法很好的解决处理度数不同的顶点的负载均衡问题,使得不同的数据集和算法无法实现最优化适配,导致运算效率无法满足需求。
发明内容
本发明针对现有技术存在的上述不足,提出一种异构计算环境下的图数据处理加速方法,能够在相同硬件平台上显著提升图数据处理的性能,包括提高GPU缓存命中率和GPU内存吞吐量,以及减少整体运行时间。
本发明是通过以下技术方案实现的:
本发明涉及一种异构计算环境下的图数据处理加速方法,通过对顶点数据迭代地进行工作项转换、图数据处理、收敛判断更新以实现加速处理,其中:工作项转换是指将待处理顶点动态分配至至少一个GPU线程;图数据处理的起始阶段,将GPU上运行的顶点为中心的遍历函数所有分配的顶点数据读取并暂存入共享内存。
所述的动态分配,根据出度数组中顶点的出度大小与预设的度数阈值的比值,动态地将待处理顶点分配给至少一个GPU线程进行处理,其中出度为有向图中各顶点的指向其他顶点的边的数目,度数阈值K通常指派为10,以便可高效地处理常见的图数据。
所述的动态分配具体为:
①分配工作集和虚拟工作集的空间,工作集对应图处理算法激活的顶点,虚拟工作集对应各GPU线程待处理的工作项。
②在每次图数据处理的起始阶段,通过转换函数将工作集的顶点根据固定的度数阈值K转化为虚拟工作项,其中:一个顶点的出度为d,是向上取整操作。
所述的共享内存中,各线程的存储地址起点由线程的序号和一致顶点划分的度数阈值的乘积决定,即将某个工作项的出边信息存入当前线程块的共享内存的a*K到a*K+K的位置,其中:a为一个线程的线程块内序号。
附图说明
图1为本发明系统整体流程图;
图2为本发明每轮迭代示意图;
图3为本发明工作集到虚拟工作集转换过程示意图;
图中:转换过程的主体为GPU线程;
图4为本发明共享内存预取示意图;
图中:过程的主体为GPU线程。
具体实施方式
本实施例涉及一种使用工作集和虚拟工作集辅助迭代过程,通过工作集指示每轮迭代待处理的顶点,采用虚拟工作集指示每轮迭代中各GPU线程要处理的虚拟工作项,工作集和虚拟工作集支持插入元素、初始化等操作。
所述的虚拟工作项包括:顶点序号、出边索引的起始位置。
所述的工作集和虚拟工作集预先空间大小为顶点数目的常数倍大小,此常数为其中d′为图数据的所有顶点出度的平均值。
如图1所示,本实施例具体包括以下步骤:
步骤1:从内存或磁盘中读取图数据;
步骤2:将读取图数据转化为Compressed Sparse Row(CSR)格式;
步骤3:将数据转移到GPU端;
步骤4:如图2所示,进行迭代过程,具体包括:
步骤4.1:将工作集转换为虚拟工作集,每一工作集中工作项转化出的虚拟工作项的数目为所有产生的虚拟工作项加入虚拟工作集,其中:表示向上取整操作。
步骤4.2:根据虚拟工作集的大小启动GPU端的处理函数,当虚拟工作集的大小为m,预定义的线程块大小为s,则GPU核函数启动参数为<<<m/s+1,s>>>,其中:<<<>>>中数字表示线程块个数和线程块大小。
步骤4.3:检查工作集的大小,当工作集为空,则迭代已完成;否则返回步骤1进行下一轮迭代。
如图3所示,为工作集到虚拟工作集转换过程,该过程的主体为GPU线程,具体包括:
步骤4.1.1:检查处理顶点的出度大小,当出度为0则结束。
步骤4.1.2:确定转换的虚拟工作项个数n,其中
步骤4.1.3:当当前虚拟工作集的个数为m,则采用原子操作将其更新为m+n。
步骤4.1.4:将n个虚拟工作项放入虚拟工作集的m到m+n-1的位置。
如图4所示,为共享内存预取过程,该过程的主体为GPU线程,具体包括:
步骤4.2.1:根据各线程序号计算地址偏移量。
步骤4.2.2:将虚拟工作项的出边读入共享内存,地址为地址偏移量
步骤4.2.3:依据目标算法,依次处理各出边。
步骤5:待迭代收敛后,将结果传输回CPU端。
本实施例上述方法在一个配备Intel Xeon E5-2620 CPU,128GB内存和NVIDIAGTX1080Ti GPU的服务器环境下,以K=10为参数、运行BFS算法,使用上述方法处理常用的LiveJournal数据集,所得到的结果为:包括数据从CPU转移到GPU和GPU端图数据处理的总时间为60ms,与最新的单GPU加速系统Tigr相比,实现了1.7倍加速比。与现有技术相比,本方法显著提高了GPU cache和内存吞吐量。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (7)

1.一种异构计算环境下的图数据处理加速方法,其特征在于,通过对顶点数据迭代地进行工作项转换、图数据处理、收敛判断更新以实现加速处理,其中:工作项转换是指将待处理顶点动态分配至至少一个GPU线程;图数据处理的起始阶段,将GPU上运行的顶点为中心的遍历函数所有分配的顶点数据读取并暂存入共享内存。
2.根据权利要求1所述的方法,其特征是,所述的动态分配,根据出度数组中顶点的出度大小与预设的度数阈值的比值,动态地将待处理顶点分配给至少一个GPU线程进行处理,其中出度为有向图中各顶点的指向其他顶点的边的数目,度数阈值K通常指派为10,以便可高效地处理常见的图数据。
3.根据权利要求1或2所述的方法,其特征是,所述的动态分配具体为:
①分配工作集和虚拟工作集的空间,工作集对应图处理算法激活的顶点,虚拟工作集对应各GPU线程待处理的工作项;
②在每次图数据处理的起始阶段,通过转换函数将工作集的顶点根据固定的度数阈值K转化为虚拟工作项,其中:一个顶点的出度为d,是向上取整操作。
4.根据权利要求3所述的方法,其特征是,所述的共享内存中,各线程的存储地址起点由线程的序号和一致顶点划分的度数阈值的乘积决定,即将某个工作项的出边信息存入当前线程块的共享内存的a*K到a*K+K的位置,其中:a为一个线程的线程块内序号。
5.根据权利要求3所述的方法,其特征是,所述的度数阈值K为10。
6.根据权利要求1所述的方法,其特征是,所述的工作项转换,具体包括:
步骤4.1.1:检查处理顶点的出度大小,当出度为0则结束;
步骤4.1.2:确定转换的虚拟工作项个数n,其中
步骤4.1.3:当当前虚拟工作集的个数为m,则采用原子操作将其更新为m+n;
步骤4.1.4:将n个虚拟工作项放入虚拟工作集的m到m+n-1的位置。
7.根据权利要求1所述的方法,其特征是,所述的暂存,具体包括:
步骤4.2.1:根据各线程序号计算地址偏移量;
步骤4.2.2:将虚拟工作项的出边读入共享内存,地址为地址偏移量;
步骤4.2.3:依据目标算法,依次处理各出边。
CN201910428567.1A 2019-05-22 2019-05-22 异构计算环境下的图数据处理加速方法 Active CN110187968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910428567.1A CN110187968B (zh) 2019-05-22 2019-05-22 异构计算环境下的图数据处理加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910428567.1A CN110187968B (zh) 2019-05-22 2019-05-22 异构计算环境下的图数据处理加速方法

Publications (2)

Publication Number Publication Date
CN110187968A true CN110187968A (zh) 2019-08-30
CN110187968B CN110187968B (zh) 2023-03-14

Family

ID=67717374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910428567.1A Active CN110187968B (zh) 2019-05-22 2019-05-22 异构计算环境下的图数据处理加速方法

Country Status (1)

Country Link
CN (1) CN110187968B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925627A (zh) * 2021-03-25 2021-06-08 上海交通大学 基于图形处理器的图采样和随机游走加速方法及系统
CN113886057A (zh) * 2020-07-01 2022-01-04 西南科技大学 异构众核上基于剖析技术以及数据流信息的动态资源调度方法
CN113993166A (zh) * 2021-11-03 2022-01-28 嘉兴国电通新能源科技有限公司 一种面向异构d2d网络的小基站抖动避免负载均衡方法
WO2022099925A1 (zh) * 2020-11-10 2022-05-19 上海交通大学 自适应的面向大图的统一内存管理方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750620A (zh) * 2015-04-23 2015-07-01 四川师范大学 一种内存迁移方法及装置
CN104835110A (zh) * 2015-04-15 2015-08-12 华中科技大学 一种基于gpu的异步图数据处理系统
CN105913063A (zh) * 2016-04-01 2016-08-31 中国地质大学(武汉) 一种图像数据集的稀疏表示的加速方法及装置
CN107122243A (zh) * 2017-04-12 2017-09-01 杭州远算云计算有限公司 用于cfd仿真计算的异构集群系统及cfd计算方法
CN108389152A (zh) * 2018-03-09 2018-08-10 华中科技大学 一种图结构感知的图处理方法及装置
US20180335946A1 (en) * 2017-05-18 2018-11-22 Aetna Inc. Scalable distributed computing system for determining exact median and other quantiles in big data applications
CN109254725A (zh) * 2018-07-26 2019-01-22 华中科技大学 一种基于子图构建的磁盘图处理方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104835110A (zh) * 2015-04-15 2015-08-12 华中科技大学 一种基于gpu的异步图数据处理系统
CN104750620A (zh) * 2015-04-23 2015-07-01 四川师范大学 一种内存迁移方法及装置
CN105913063A (zh) * 2016-04-01 2016-08-31 中国地质大学(武汉) 一种图像数据集的稀疏表示的加速方法及装置
CN107122243A (zh) * 2017-04-12 2017-09-01 杭州远算云计算有限公司 用于cfd仿真计算的异构集群系统及cfd计算方法
US20180335946A1 (en) * 2017-05-18 2018-11-22 Aetna Inc. Scalable distributed computing system for determining exact median and other quantiles in big data applications
CN108389152A (zh) * 2018-03-09 2018-08-10 华中科技大学 一种图结构感知的图处理方法及装置
CN109254725A (zh) * 2018-07-26 2019-01-22 华中科技大学 一种基于子图构建的磁盘图处理方法及系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CHAO LI等: "Towards Efficient Processing of Concurrent Graph Queries on NUMA Machines", 《IEEE XPLORE》 *
HAODUO YANG等: "High performance graph analytics with productivity on hybrid CPU-GPU platforms" *
JIANTING ZHANG等: "Regularizing irregularity: bitmap-based and portable sparse matrix multiplication for graph data on GPUs" *
徐冲冲: "基于FPGA的图计算加速器系统的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
李超等: "面向图计算的内存系统优化技术综述", 《中国科学》 *
罗璇: "基于多GPU的通信优化的图数据处理系统", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886057A (zh) * 2020-07-01 2022-01-04 西南科技大学 异构众核上基于剖析技术以及数据流信息的动态资源调度方法
WO2022099925A1 (zh) * 2020-11-10 2022-05-19 上海交通大学 自适应的面向大图的统一内存管理方法及系统
CN112925627A (zh) * 2021-03-25 2021-06-08 上海交通大学 基于图形处理器的图采样和随机游走加速方法及系统
CN112925627B (zh) * 2021-03-25 2022-03-29 上海交通大学 基于图形处理器的图采样和随机游走加速方法及系统
WO2022198713A1 (zh) * 2021-03-25 2022-09-29 上海交通大学 基于图形处理器的图采样和随机游走加速方法及系统
CN113993166A (zh) * 2021-11-03 2022-01-28 嘉兴国电通新能源科技有限公司 一种面向异构d2d网络的小基站抖动避免负载均衡方法
CN113993166B (zh) * 2021-11-03 2023-08-04 嘉兴国电通新能源科技有限公司 一种面向异构d2d网络的小基站抖动避免负载均衡方法

Also Published As

Publication number Publication date
CN110187968B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
CN110187968A (zh) 异构计算环境下的图数据处理加速方法
US8751556B2 (en) Processor for large graph algorithm computations and matrix operations
EP3407182B1 (en) Vector computing device
US8527739B2 (en) Iterative process partner pairing scheme for global reduce operation
CN102915347B (zh) 一种分布式数据流聚类方法及系统
CN110998649A (zh) 图形处理器中灵活的缓冲区大小调整
CN103914399B (zh) 一种并行计算系统中的磁盘缓存方法及装置
US20120203985A1 (en) Data Structure For Tiling And Packetizing A Sparse Matrix
CN110929627B (zh) 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法
CN108205433A (zh) 用来加速稀疏矩阵乘密集向量以及稀疏向量乘密集向量乘法的存储器到存储器指令
EP2858025A1 (en) An order book management device in a hardware platform
US20130227244A1 (en) Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
CN101841438A (zh) 一种访问存储海量并发tcp流的流记录的方法或系统
CN112930526B (zh) 使用水平聚合SIMD指令对d-堆进行向量化的方法
Shen et al. GPU‐based branch‐and‐bound method to solve large 0‐1 knapsack problems with data‐centric strategies
US20230164088A1 (en) Low Latency Queuing System
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
Afanasyev et al. Developing efficient implementations of shortest paths and page rank algorithms for NEC SX-Aurora TSUBASA architecture
CN107992358A (zh) 一种适用于核外图处理系统的异步io执行方法及系统
CN107451070A (zh) 一种数据的处理方法和服务器
CN109213592B (zh) 一种基于自动选择副本因子模型的图计算方法
CN107529638B (zh) 线性求解器的加速方法、存储数据库及gpu系统
CN108809726B (zh) 盒覆盖节点的方法和系统
CN104899007A (zh) 利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法
He et al. An optimal parallel implementation of Markov Clustering based on the coordination of CPU and GPU

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