Optimizing Dataflow Programs for Hardware ... Optimizing Dataflow Programs for Hardware Synthesis...

Click here to load reader

  • date post

    10-Mar-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Optimizing Dataflow Programs for Hardware ... Optimizing Dataflow Programs for Hardware Synthesis...

  • POUR L'OBTENTION DU GRADE DE DOCTEUR ÈS SCIENCES

    acceptée sur proposition du jury:

    Dr G. Boero, président du jury Dr M. Mattavelli, directeur de thèse

    Prof. A. Prihozhy, rapporteur Dr M. Raulet, rapporteur Dr A. Schmid, rapporteur

    Optimizing Dataflow Programs for Hardware Synthesis

    THÈSE NO 6059 (2013)

    ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE

    PRÉSENTÉE LE 23 JANVIER 2014

    À LA FACULTÉ DES SCIENCES ET TECHNIQUES DE L'INGÉNIEUR GROUPE SCI STI MM

    PROGRAMME DOCTORAL EN MICROSYSTÈMES ET MICROÉLECTRONIQUE

    Suisse 2014

    PAR

    Ab Al Hadi Bin AB RAHMAN

  • For my parents,

    my wife, and our two daughters.

  • Acknowledgements

    I would like to express my gratitude and thanks to all individuals that have made this thesis

    possible. First and foremost is to my thesis director, Dr. Marco Mattavelli for giving me the

    opportunity to work on this very exciting research project, and also for all the advice and

    encouragement he has given me throughout the years. Next, I would like to thank these people

    who have contributed directly to the work in this thesis: Prof. Anatoly Prihozhy with the

    formulation of the pipeline synthesis and optimization tool and technique, Dr. Ihab Amer

    and Hossam Amer on the work on dataflow program refactoring, Dr. Christophe Lucarz on

    the first dataflow program analysis tool, Dr. Richard Thavot on the work to optimize buffer

    size in dataflow programs, and the hardware implementation of the MPEG-4 decoder on an

    FPGA evaluation board, Damien De Saint Jorre with the design of the MPEG-4 AVC/H.264

    decoder, and fellow Ph.D students Endri Bezati and Simone Casale Brunet with their respective

    synthesis and analysis tools Xronos and TURNUS, and the frequently lengthy discussions on

    several design and implementation issues with dataflow programming. I would also like to

    thank other lab members and scientists who have contributed indirectly to the work in this

    thesis: Dr. Jörn Janneck, Dr. Ghislain Roquier, Dr. Junaid Ahmad, Dr. Romuald Mosqueron,

    and Pascal Faure.

    This work will not have been possible without the necessary financial support. For this, I

    would like to thank the Malaysian Ministry of Higher Education and the Univesiti Teknologi

    Malaysia, along with the arrangements with EPFL for the funds throughout the duration of the

    work.

    Last but not least, I want to thank my parents, Ab Rahman and Zaiton, my wife Zue, and my

    two young daughters, Zahra and Dania, for their continuous love, dedication, and support.

    Ab Al-Hadi Bin Ab Rahman

    Lausanne, October 15th 2013

    iii

  • Abstract

    Digital signal processing (DSP) systems can be represented by a Dataflow Process Network

    (DPN), which is a model of computation (MoC) based on a directed graph where a number

    of concurrent processes communicate through unidirectional FIFO channels. One of the

    formal programming languages that directly captures this MoC is the CAL dataflow language.

    It features among others, platform-agnostic specifications and an actor-oriented approach in

    systems design that makes it suitable for heterogeneous implementation of data-intensive

    DSP applications as compared to classical and other design methodologies. In this thesis, a

    new systems design methodology based on CAL is presented and validated for a complete

    design flow from specification to implementation, with high-level synthesis and analysis. The

    methodology is extended to rapidly explore design alternatives at high-level by the applica-

    tion of several novel optimization techniques on critical parts of complex CAL designs for

    hardware synthesis. The first optimization technique is by dataflow program refactoring with

    an objective of minimizing system latency with data and task parallelism, and with memory

    access reductions. The second optimization technique is refactoring by exploiting pipeline

    parallelism with an objective of maximizing operating frequency and minimizing resource.

    The third and final optimization technique is by minimizing and optimizing the FIFO buffer

    interconnection sizes using two distinct approaches on the implementation and the dataflow

    program level. As case studies, the efficacy of the optimization techniques are proven using

    the standardized CAL specification of the MPEG-4 Part 2 Visual Simple Profile (SP) decoder

    and the MPEG-4 Advanced Video Coding (AVC)/H.264 Constrained Baseline Profile (CBP)

    decoder respectively for hardware and heterogeneous hardware/software implementations.

    Results show that using appropriate combinations of the optimization techniques, throughput

    can be improved by up to 12x compared to the original design. Compared to similar works

    in literature using classical and other design methodologies, some design alternatives have

    also shown to be comparable and superior in various performance criteria. Consequently,

    this work proves the viability of complex systems design and implementation using dataflow

    programming, not only for higher degree of productivity but also real-time performance.

    Keywords: optimization techniques, dataflow programs, hardware implementation, heteroge-

    neous platforms, digital signal processing, performance evaluation, design space exploration.

    v

  • Résumé

    Les systèmes de traitement de signaux numériques peuvent être représentés par des réseaux

    de processus flux de données, qui est un modèle de calcul graphique, où un certain nombre

    de processus concurrents communiquent via des canaux de communication unidirectionnels

    de type FIFO. L’un des langages de programmation formels qui capte directement ce MoC est

    le langage flux de données CAL. Ce language de haut niveau, indépendant de la plate-forme,

    est également capable de synthétiser la description du modèle pour des implémentations

    logicielles et matérielles. Dans cette thèse, une nouvelle méthodologie de conception dédiée

    au langage CAL est présentée, validée et utilisée pour explorer rapidement des alternatives

    de conception à un haut niveau d’abstraction, par l’application de nouvelles techniques

    d’optimisation sur des descriptions CAL complexes. La première technique d’optimisation est

    la technique dite de remaniement qui vise à minimiser la latence du système en exploitant

    le parallélisme des tâches et des données, l’optimisation de la mémoire par la fusion de

    données ainsi que l’élimination des accès à la mémoire redondants. La seconde technique

    d’optimisation est une refactorisation qui consiste à diviser le chemin combinatoire le plus

    long dans le flux de données, de telle sorte qu’une fréquence maximale de fonctionnement

    plus élevée soit obtenue. Cette technique consiste à trouver le meilleur partitionnement

    tel que les ressources soient minimisées. La troisième et dernière technique d’optimisation

    consiste à minimiser et à optimiser la taille des tampons mémoires de type FIFO, en utilisant

    diverses approches et techniques sur le modèle de flux de données lui-même, ainsi que sur sa

    mise en œuvre sur la cible. Comme cas d’étude, l’efficacité des techniques d’optimisation est

    étudiée sur l’implantation des spécifications CAL des décodeurs vidéo MPEG-4 Simple Profile

    (SP) et MPEG-4 Advanced Video Coding (AVC)/H.264 Baseline Profile Contraint (CBP) sur des

    cibles matérielles et des cibles hétérogènes logicielles/matérielles. Les résultats montrent que

    l’utilisation des techniques d’optimisation permet d’améliorer les performances (en terme

    de débits) par 12 comparés au modèle originale. Certaines alternatives de conception ont

    également montré qu’elles étaient comparables ou de qualité supérieure dans divers critères

    de performance comparé à l’état de l’art. Par conséquent, ce travail prouve la viabilité de la

    méthodologie pour la conception et la mise en œuvre de systèmes complexes en utilisant la

    programmation flux de données, non seulement pour son degré élevé de productivité ainsi

    que pour ses performances en temps réel.

    vii

  • Résumé

    Mots-clés: techniques d’optimisation, des programmes de flux de données, le matériel la mise

    en œuvre des plates-formes hétérogènes, traitement numérique du signal, de la performance

    évaluation, la conception de l’exploration spatiale.

    viii

  • Contents Acknowledgements iii

    Abstract v

    Table of Contents xi

    List of figures xviii

    List of tables xxi

    1 Digital systems design and implementation: state-of-the-art 1

    1.1 Design methodology with imperative languages . . . . . . . . . . . . . . . . . . . 2

    1.2 Design methodology with high-level languages and models . . . . . . . . . . . . 5

    1.2.1 SystemC and C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.2.2 Synchronous languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.2.3 Pre-configured blocks and templates . . . . . . . . . . . . . . . . . . . . . 9

    1.2.4 Dataflow programming models . . . . . . . . . . . . . . . . . . . . . . . . 9