Code Generation for a Variety of Accelerators for a Graph DSL

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Kumar, Ashwina, Krishna, M. Venkata, Bartakke, Prasanna, Kumar, Rahul, M, Rajesh Pandian, Behera, Nibedita, Nasre, Rupesh
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866911748956618752
author Kumar, Ashwina
Krishna, M. Venkata
Bartakke, Prasanna
Kumar, Rahul
M, Rajesh Pandian
Behera, Nibedita
Nasre, Rupesh
author_facet Kumar, Ashwina
Krishna, M. Venkata
Bartakke, Prasanna
Kumar, Rahul
M, Rajesh Pandian
Behera, Nibedita
Nasre, Rupesh
contents Sparse graphs are ubiquitous in real and virtual worlds. With the phenomenal growth in semi-structured and unstructured data, sizes of the underlying graphs have witnessed a rapid growth over the years. Analyzing such large structures necessitates parallel processing, which is challenged by the intrinsic irregularity of sparse computation, memory access, and communication. It would be ideal if programmers and domain-experts get to focus only on the sequential computation and a compiler takes care of auto-generating the parallel code. On the other side, there is a variety in the number of target hardware devices, and achieving optimal performance often demands coding in specific languages or frameworks. Our goal in this work is to focus on a graph DSL which allows the domain-experts to write almost-sequential code, and generate parallel code for different accelerators from the same algorithmic specification. In particular, we illustrate code generation from the StarPlat graph DSL for NVIDIA, AMD, and Intel GPUs using CUDA, OpenCL, SYCL, and OpenACC programming languages. Using a suite of ten large graphs and four popular algorithms, we present the efficacy of StarPlat's versatile code generator.
format Preprint
id arxiv_https___arxiv_org_abs_2401_02472
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Code Generation for a Variety of Accelerators for a Graph DSL
Kumar, Ashwina
Krishna, M. Venkata
Bartakke, Prasanna
Kumar, Rahul
M, Rajesh Pandian
Behera, Nibedita
Nasre, Rupesh
Distributed, Parallel, and Cluster Computing
Sparse graphs are ubiquitous in real and virtual worlds. With the phenomenal growth in semi-structured and unstructured data, sizes of the underlying graphs have witnessed a rapid growth over the years. Analyzing such large structures necessitates parallel processing, which is challenged by the intrinsic irregularity of sparse computation, memory access, and communication. It would be ideal if programmers and domain-experts get to focus only on the sequential computation and a compiler takes care of auto-generating the parallel code. On the other side, there is a variety in the number of target hardware devices, and achieving optimal performance often demands coding in specific languages or frameworks. Our goal in this work is to focus on a graph DSL which allows the domain-experts to write almost-sequential code, and generate parallel code for different accelerators from the same algorithmic specification. In particular, we illustrate code generation from the StarPlat graph DSL for NVIDIA, AMD, and Intel GPUs using CUDA, OpenCL, SYCL, and OpenACC programming languages. Using a suite of ten large graphs and four popular algorithms, we present the efficacy of StarPlat's versatile code generator.
title Code Generation for a Variety of Accelerators for a Graph DSL
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2401.02472