vix.ing · top · new · best · stats · spec

Transformations of High-Level Synthesis Codes for High-Performance Computing

2018/05/21 by Johannes de Fine Licht, Licht, Johannes de Fine, Maciej Besta +5 · 1 citation
Computer Science · Engineering · #Advanced Software Engineering Methodologies #C.1.4 #D.1.3 #Distributed #FOS: Computer and information sciences #I.1.3 #Modular Robots and Swarm Intelligence #Parallel #Parallel Computing and Optimization Techniques #Programming Languages (cs.PL) #and Cluster Computing (cs.DC)

paper · pdf · doi:10.48550/arxiv.1805.08288

openalex publication_date 2018/05/21 · openalex created_date 2022/10/03 · openalex updated_date 2026/07/30

Abstract

Spatial computing architectures promise a major stride in performance and energy efficiency over the traditional load/store devices currently employed in large scale computing systems. The adoption of high-level synthesis (HLS) from languages such as C++ and OpenCL has greatly increased programmer productivity when designing for such platforms. While this has enabled a wider audience to target spatial computing architectures, the optimization principles known from traditional software design are no longer sufficient to implement high-performance codes, due to fundamentally distinct aspects of hardware design, such as programming for deep pipelines, distributed memory resources, and scalable routing. To alleviate this, we present a collection of optimizing transformations for HLS, targeting scalable and efficient architectures for high-performance computing (HPC) applications. We systematically identify classes of transformations (pipelining, scalability, and memory), the characteristics of their effect on the HLS code and the resulting hardware (e.g., increasing data reuse or resource consumption), and the objectives that each transformation can target (e.g., resolve interface contention, or increase parallelism). We show how these can be used to efficiently exploit pipelining, on-chip distributed fast memory, and on-chip dataflow, allowing for massively parallel architectures. To quantify the effect of various transformations, we cover the optimization process of a sample set of HPC kernels, provided as open source reference codes. We aim to establish a common toolbox to guide both performance engineers and compiler engineers in tapping into the performance potential offered by spatial computing architectures using HLS.

Cited by

Related