Loop splitting for efficient pipelining in high-level synthesis
File(s)JunyiFCCM16.pdf (380.87 KB)
Accepted version
Author(s)
Liu, J
Wickerson, J
Constantinides, GA
Type
Conference Paper
Abstract
Loop pipelining is widely adopted as a key optimization
method in high-level synthesis (HLS). However, when
complex memory dependencies appear in a loop, commercial
HLS tools are still not able to maximize pipeline performance.
In this paper, we leverage parametric polyhedral analysis to
reason about memory dependence patterns that are uncertain
(i.e., parameterised by an undetermined variable) and/or nonuniform
(i.e., varying between loop iterations). We develop an
automated source-to-source code transformation to split the
loop into pieces, which are then synthesised by Vivado HLS
as the hardware generation back-end. Our technique allows
generated loops to run with a minimal interval, automatically
inserting statically-determined parametric pipeline breaks at
those iterations violating dependencies. Our experiments on
seven representative benchmarks show that, compared to default
loop pipelining, our parametric loop splitting improves pipeline
performance by 4:3 in terms of clock cycles per iteration. The
optimized pipelines consume 2:0 as many LUTs, 1:8 as many
registers, and 1:1 as many DSP blocks. Hence the area-time
product is improved by nearly a factor of 2.
method in high-level synthesis (HLS). However, when
complex memory dependencies appear in a loop, commercial
HLS tools are still not able to maximize pipeline performance.
In this paper, we leverage parametric polyhedral analysis to
reason about memory dependence patterns that are uncertain
(i.e., parameterised by an undetermined variable) and/or nonuniform
(i.e., varying between loop iterations). We develop an
automated source-to-source code transformation to split the
loop into pieces, which are then synthesised by Vivado HLS
as the hardware generation back-end. Our technique allows
generated loops to run with a minimal interval, automatically
inserting statically-determined parametric pipeline breaks at
those iterations violating dependencies. Our experiments on
seven representative benchmarks show that, compared to default
loop pipelining, our parametric loop splitting improves pipeline
performance by 4:3 in terms of clock cycles per iteration. The
optimized pipelines consume 2:0 as many LUTs, 1:8 as many
registers, and 1:1 as many DSP blocks. Hence the area-time
product is improved by nearly a factor of 2.
Date Issued
2016-08-18
Date Acceptance
2016-03-01
Citation
2016
Publisher
IEEE
Copyright Statement
© 2016 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
Sponsor
Royal Academy Of Engineering
Imagination Technologies Ltd
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (EPSRC)
Identifier
https://ieeexplore.ieee.org/document/7544750
Grant Number
Prof Constantinides Chair
Prof Constantinides Chair
11908 (EP/K034448/1)
EP/I020357/1
Source
IEEE International Symposium on Field-Programmable Custom Computing Machines (FCCM)
Subjects
Science & Technology
Technology
Computer Science, Information Systems
Computer Science, Theory & Methods
Computer Science
Publication Status
Published
Start Date
2016-05-01
Finish Date
2016-05-03
Coverage Spatial
Washington, D.C., USA
Date Publish Online
2016-08-18