CN110187968A - 异构计算环境下的图数据处理加速方法 - Google Patents
异构计算环境下的图数据处理加速方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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:依据目标算法,依次处理各出边。
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)
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)
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 | 华中科技大学 | 一种基于子图构建的磁盘图处理方法及系统 |
-
2019
- 2019-05-22 CN CN201910428567.1A patent/CN110187968B/zh active Active
Patent Citations (7)
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)
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)
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) | 异构计算环境下的图数据处理加速方法 | |
US9529590B2 (en) | Processor for large graph algorithm computations and matrix operations | |
CN110998649B (zh) | 图形处理器中灵活的缓冲区大小调整 | |
EP3407182B1 (en) | Vector computing device | |
US8065503B2 (en) | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process | |
CN110929627B (zh) | 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法 | |
CN103914399B (zh) | 一种并行计算系统中的磁盘缓存方法及装置 | |
Lakhotia et al. | Accelerating {PageRank} using {Partition-Centric} Processing | |
CN108205433A (zh) | 用来加速稀疏矩阵乘密集向量以及稀疏向量乘密集向量乘法的存储器到存储器指令 | |
WO2012076377A2 (en) | Optimizing output vector data generation using a formatted matrix data structure | |
CN103745008A (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-堆进行向量化的方法 | |
US20230164088A1 (en) | Low Latency Queuing System | |
CN116112563A (zh) | 一种基于流行度预测的双策略自适应缓存替换方法 | |
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执行方法及系统 | |
CN109213592B (zh) | 一种基于自动选择副本因子模型的图计算方法 | |
CN108809726B (zh) | 盒覆盖节点的方法和系统 | |
CN104899007A (zh) | 利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法 | |
He et al. | An optimal parallel implementation of Markov Clustering based on the coordination of CPU and GPU | |
CN107529638A (zh) | 线性求解器的加速方法、存储数据库及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 |