Computer Science > Distributed, Parallel, and Cluster Computing
[Submitted on 14 Oct 2019 (this version), latest version 25 Feb 2020 (v4)]
Title:A High-Throughput Solver for Marginalized Graph Kernels on GPU
View PDFAbstract:We present the design of a solver for the efficient and high-throughput computation of the marginalized graph kernel on General Purpose GPUs. The graph kernel is computed using conjugate gradient to solve a generalized Laplacian of the tensor product between a pair of graphs. To cope with the large gap between the instruction throughput and the memory bandwidth of the GPUs, our solver forms the graph tensor product on-the-fly without storing it in memory. This is achieved by using threads in a warp cooperatively to stream the adjacency and edge label matrices of individual graphs by small square tiles, which are then staged in registers and the shared memory for later reuse. Warps across a thread block can further share tiles via the shared memory to increase data reuse. The sparsity of the graphs is exploited hierarchically by storing only non-empty tiles of the graphs and non-zero elements within each tile using a coordinate format and bitmaps, respectively. A new partition-based reordering algorithm is proposed for aggregating non-zero elements of the graphs into fewer but denser tiles in order to improve the efficiency of the sparse format. We carried out extensive theoretical analyses on the graph tensor product primitives between tiles of various density, and evaluated their performance on synthetic and real-world datasets. Our implementation is able to deliver three to four orders of magnitude speedup over existing CPU-based solvers. The capability of the solver can enable kernel-based learning tasks at unprecedented scales.
Submission history
From: Yu-Hang Tang [view email][v1] Mon, 14 Oct 2019 17:46:47 UTC (975 KB)
[v2] Wed, 16 Oct 2019 08:58:01 UTC (768 KB)
[v3] Mon, 16 Dec 2019 08:09:42 UTC (768 KB)
[v4] Tue, 25 Feb 2020 23:28:34 UTC (774 KB)
Current browse context:
cs.DC
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.