• DocumentCode
    2974272
  • Title

    High-level synthesis of dynamic data structures: A case study using Vivado HLS

  • Author

    Winterstein, Felix ; Bayliss, Samuel ; Constantinides, George A.

  • Author_Institution
    Ground Station Syst. Div., Eur. Space Agency, Darmstadt, Germany
  • fYear
    2013
  • fDate
    9-11 Dec. 2013
  • Firstpage
    362
  • Lastpage
    365
  • Abstract
    High-level synthesis promises a significant shortening of the FPGA design cycle when compared with design entry using register transfer level (RTL) languages. Recent evaluations report that C-to-RTL flows can produce results with a quality close to hand-crafted designs [1]. Algorithms which use dynamic, pointer-based data structures, which are common in software, remain difficult to implement well. In this paper, we describe a comparative case study using Xilinx Vivado HLS as an exemplary state-of-the-art high-level synthesis tool. Our test cases are two alternative algorithms for the same compute-intensive machine learning technique (clustering) with significantly different computational properties. We compare a data-flow centric implementation to a recursive tree traversal implementation which incorporates complex data-dependent control flow and makes use of pointer-linked data structures and dynamic memory allocation. The outcome of this case study is twofold: We confirm similar performance between the hand-written and automatically generated RTL designs for the first test case. The second case reveals a degradation in latency by a factor greater than 30× if the source code is not altered prior to high-level synthesis. We identify the reasons for this shortcoming and present code transformations that narrow the performance gap to a factor of four. We generalise our source-to-source transformations whose automation motivates research directions to improve high-level synthesis of dynamic data structures in the future.
  • Keywords
    data structures; field programmable gate arrays; high level synthesis; learning (artificial intelligence); logic design; C-to-RTL flows; FPGA design cycle; RTL designs; Xilinx Vivado HLS; complex data-dependent control flow; compute-intensive machine learning technique; data-flow centric implementation; design entry; dynamic data structures; dynamic memory allocation; hand-crafted designs; high-level synthesis tool; pointer-based data structures; pointer-linked data structures; recursive tree traversal implementation; register transfer level languages; source code; source-to-source transformations; Algorithm design and analysis; Clustering algorithms; Data structures; Dynamic scheduling; Heuristic algorithms; Pipeline processing; Resource management;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Field-Programmable Technology (FPT), 2013 International Conference on
  • Conference_Location
    Kyoto
  • Print_ISBN
    978-1-4799-2199-7
  • Type

    conf

  • DOI
    10.1109/FPT.2013.6718388
  • Filename
    6718388