Stock, Florian-Wolfgang (2019)
Rapid Prototyping and Exploration Environment for Generating C-to-Hardware-Compilers.
Technische Universität Darmstadt
Ph.D. Thesis, Primary publication
|
Text
20190307_Diss_FS.pdf - Accepted Version Copyright Information: CC BY-NC-SA 4.0 International - Creative Commons, Attribution NonCommercial, ShareAlike. Download (5MB) | Preview |
Item Type: | Ph.D. Thesis | ||||
---|---|---|---|---|---|
Type of entry: | Primary publication | ||||
Title: | Rapid Prototyping and Exploration Environment for Generating C-to-Hardware-Compilers | ||||
Language: | English | ||||
Referees: | Koch, Prof. Dr. Andreas ; Hochberger, Prof. Dr. Christian | ||||
Date: | March 2019 | ||||
Place of Publication: | Darmstadt | ||||
Date of oral examination: | 19 March 2018 | ||||
Abstract: | There is today an ever-increasing demand for more computational power coupled with a desire to minimize energy requirements. Hardware accelerators currently appear to be the best solution to this problem. While general purpose computation with GPUs seem to be very successful in this area, they perform adequately only in those cases where the data access patterns and utilized algorithms fit the underlying architecture. ASICs on the other hand can yield even better results in terms of performance and energy consumption, but are very inflexible, as they are manufactured with an application specific circuitry. Field Programmable Gate Arrays (FPGAs) represent a combination of approaches: With their application specific hardware they provide high computational power while requiring, for many applications, less energy than a CPU or a GPU. On the other hand they are far more flexible than an ASIC due to their reconfigurability. The only remaining problem is the programming of the FPGAs, as they are far more difficult to program compared to regular software. To allow common software developers, who have at best very limited knowledge in hardware design, to make use of these devices, tools were developed that take a regular high level language and generate hardware from it. Among such tools, C-to-HDL compilers are a particularly wide-spread approach. These compilers attempt to translate common C code into a hardware description language from which a datapath is generated. Most of these compilers have many restrictions for the input and differ in their underlying generated micro architecture, their scheduling method, their applied optimizations, their execution model and even their target hardware. Thus, a comparison of a certain aspect alone, like their implemented scheduling method or their generated micro architecture, is almost impossible, as they differ in so many other aspects. This work provides a survey of the existing C-to-HDL compilers and presents a new approach to evaluating and exploring different micro architectures for dynamic scheduling used by such compilers. From a mathematically formulated rule set the Triad compiler generates a backend for the Scale compiler framework, which then implements a hardware generation backend with described dynamic scheduling. While more than a factor of four slower than hardware from highly optimized compilers, this environment allows easy comparison and exploration of different rule sets and the micro architecture for the dynamically scheduled datapaths generated from them. For demonstration purposes a rule set modeling the COCOMA token flow model from the COMRADE 2.0 compiler was implemented. Multiple variants of it were explored: Savings of up to 11% of the required hardware resources were possible. |
||||
Alternative Abstract: |
|
||||
URN: | urn:nbn:de:tuda-tuprints-85250 | ||||
Classification DDC: | 000 Generalities, computers, information > 004 Computer science | ||||
Divisions: | 20 Department of Computer Science 20 Department of Computer Science > Embedded Systems and Applications |
||||
Date Deposited: | 13 Mar 2019 07:47 | ||||
Last Modified: | 09 Jul 2020 02:32 | ||||
URI: | https://tuprints.ulb.tu-darmstadt.de/id/eprint/8525 | ||||
PPN: | 446301566 | ||||
Export: |
View Item |