Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2656075.2656081acmconferencesArticle/Chapter ViewAbstractPublication PagesesweekConference Proceedingsconference-collections
research-article

Code generation from a domain-specific language for C-based HLS of hardware accelerators

Published: 12 October 2014 Publication History

Abstract

As today's computer architectures are becoming more and more heterogeneous, a plethora of options including CPUs, GPUs, DSPs, reconfigurable logic (FPGAs), and other application-specific processors come into consideration for close-to-sensor processing. Especially, in the domain of image processing on mobile devices, among numerous design challenges, a very stringent energy budget is of utmost importance, making embedded GPUs and FPGAs ideal targets for implementation.
Recently, the HIPAcc framework was proposed as a means for automatic code generation of image processing algorithms for embedded GPUs, based on a Domain-Specific Language (DSL). Despite of huge advancements in High-Level Synthesis (HLS) for FPGAs, designers are still required to have detailed knowledge about coding techniques and the targeted architecture to achieve efficient solutions. As a remedy, in this work, we propose code generation techniques for C-based HLS from a common high-level DSL description targeting FPGAs. Our approach includes FPGA-specific memory architectures for handling point and local operators, numerous high-level transformations, and automatic test bench generation. We evaluate our approach by comparing the resulting hardware accelerators to existing frameworks in terms of performance and resource requirements. Moreover, we assess the achieved energy efficiency in contrast to software implementations, generated by HIPAcc from the same code base, executed on GPUs.

References

[1]
G. Bradski. "The OpenCV library". In: Dr. Dobb's Journal of Software Tools (2000).
[2]
A. Canis, J. Choi, M. Aldham, V. Zhang, A. Kammoona, J. H. Anderson, S. Brown, and T. Czajkowski. "LegUp: High-level synthesis for FPGA-based processor/accelerator systems". In: Proc. of the 19th ACM/SIGDA Int. Symposium on Field Programmable Gate Arrays (FPGA). ACM, 2011, pp. 33--36.
[3]
N. George, D. Novo, T. Rompf, M. Odersky, and P. Ienne. "Making domain-specific hardware synthesis tools cost-efficient". In: Proc. of the Int. Conference on Field-Programmable Technology (FPT). Dec. 2013, pp. 120--127.
[4]
C. Harris and M. Stephens. "A combined corner and edge detector". In: Alvey Vision Conference. 1988, pp. 147--151.
[5]
J. Hegarty, J. Brunhaver, Z. DeVito, J. Ragan-Kelley, N. Cohen, S. Bell, A. Vasilyev, M. Horowitz, and P. Hanrahan. "Darkroom: Compiling High-Level Image Processing Code into Hardware Pipelines". In: Proc. of the 41st Int. Conference on Computer Graphics and Interactive Techniques (SIGGRAPH). Aug. 10--14, 2014.
[6]
R. Membarth, F. Hannig, J. Teich, M. Körner, and W. Eckert. "Generating device-specific GPU code for local operators in medical imaging". In: Proc. of the 26th IEEE Int. Parallel & Distributed Processing Symposium (IPDPS). IEEE. May 21--25, 2012, pp. 569--581.
[7]
R. Membarth, O. Reiche, F. Hannig, and J. Teich. "Code generation for embedded heterogeneous architectures on Android". In: Proc. of the Conference on Design, Automation and Test in Europe (DATE). Mar. 24--28, 2014.
[8]
M. Püschel, F. Franchetti, and Y. Voronenko. "SPIRAL". In: Encyclopedia of Parallel Computing. Ed. by D. Padua. Springer, 2011.
[9]
M. Schmid, N. Apelt, F. Hannig, and J. Teich. "An image processing library for c-based high-level synthesis". In: Proc. of the Int. Conference on Field Programmable Logic and Applications (FPL). IEEE, Sept. 2--4, 2014.
[10]
M. Schmid, A. Tanase, F. Hannig, J. Teich, V. Bhadouria, and D. Ghoshal. "Domain-specific augmentations for high-level synthesis". In: Proc. of the 25th IEEE Int. Conference on Application-specific Systems, Architectures and Processors (ASAP). IEEE, June 18--20, 2014, pp. 173--177.
[11]
F. Stein. "Efficient computation of optical flow using the census transform". In: Pattern Recognition. Vol. 3175. Lecture Notes in Computer Science. Springer, 2004, pp. 79--86.
[12]
R. Tessier and W. Burleson. "Reconfigurable computing for digital signal processing: a survey". English. In: Journal of VLSI signal processing systems for signal, image and video technology 28.1-2 (2001), pp. 7--27.
[13]
J. Villarreal, A. Park, W. Najjar, and R. Halstead. "Designing modular hardware accelerators in C with ROCCC 2.0". In: Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM) (2010), pp. 127--134.
[14]
V. Volkov. Better performance at lower occupancy. Presentation at the GPU Technology Conference (GTC). Sept. 2010. URL: http://www.cs.berkeley.edu/~volkov/volkov10-GTC.pdf (visited on 04/21/2014).
[15]
Z. Zhang, Y. Fan, W. Jiang, G. Han, C. Yang, and J. Cong. "AutoPilot: A platform-based ESL synthesis system". In: High-Level Synthesis. Ed. by P. Coussy and A. Morawiec. Springer, 2008, pp. 99--112.

Cited By

View all
  • (2024)Fast Generation of Custom Floating-Point Spatial Filters on FPGAsIEEE Access10.1109/ACCESS.2024.348606612(167059-167071)Online publication date: 2024
  • (2024)SlidingConv: Domain-Specific Description of Sliding Discrete Cosine Transform Convolution for HalideIEEE Access10.1109/ACCESS.2023.334566012(7563-7583)Online publication date: 2024
  • (2023)Unified Buffer: Compiling Image Processing and Machine Learning Applications to Push-Memory AcceleratorsACM Transactions on Architecture and Code Optimization10.1145/357290820:2(1-26)Online publication date: 1-Mar-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CODES '14: Proceedings of the 2014 International Conference on Hardware/Software Codesign and System Synthesis
October 2014
331 pages
ISBN:9781450330510
DOI:10.1145/2656075
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 October 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. FPGA
  2. GPU
  3. code generation
  4. domain-specific language
  5. hardware accelerator
  6. high-level synthesis
  7. image processing

Qualifiers

  • Research-article

Conference

ESWEEK'14
ESWEEK'14: TENTH EMBEDDED SYSTEM WEEK
October 12 - 17, 2014
New Delhi, India

Acceptance Rates

Overall Acceptance Rate 280 of 864 submissions, 32%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)38
  • Downloads (Last 6 weeks)4
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Fast Generation of Custom Floating-Point Spatial Filters on FPGAsIEEE Access10.1109/ACCESS.2024.348606612(167059-167071)Online publication date: 2024
  • (2024)SlidingConv: Domain-Specific Description of Sliding Discrete Cosine Transform Convolution for HalideIEEE Access10.1109/ACCESS.2023.334566012(7563-7583)Online publication date: 2024
  • (2023)Unified Buffer: Compiling Image Processing and Machine Learning Applications to Push-Memory AcceleratorsACM Transactions on Architecture and Code Optimization10.1145/357290820:2(1-26)Online publication date: 1-Mar-2023
  • (2023)AHA: An Agile Approach to the Design of Coarse-Grained Reconfigurable Accelerators and CompilersACM Transactions on Embedded Computing Systems10.1145/353493322:2(1-34)Online publication date: 24-Jan-2023
  • (2022)Pushing the Level of Abstraction of Digital System Design: A Survey on How to Program FPGAsACM Computing Surveys10.1145/353298955:5(1-48)Online publication date: 3-Dec-2022
  • (2021)Clockwork: Resource-Efficient Static Scheduling for Multi-Rate Image Processing Applications on FPGAs2021 IEEE 29th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM)10.1109/FCCM51124.2021.00030(186-194)Online publication date: May-2021
  • (2020)FPGA-Based Evaluation and Implementation of an Automotive RADAR Signal Processing System using High-Level Synthesis2020 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE)10.1109/CCECE47787.2020.9255725(1-6)Online publication date: 30-Aug-2020
  • (2020)Accelerated High-Level Synthesis Feature Detection for FPGAs Using HiFlipVXTowards Ubiquitous Low-power Image Processing Platforms10.1007/978-3-030-53532-2_7(115-135)Online publication date: 16-Dec-2020
  • (2019)High-Throughput Line Buffer Microarchitecture for Arbitrary Sized Streaming Image ProcessingJournal of Imaging10.3390/jimaging50300345:3(34)Online publication date: 6-Mar-2019
  • (2019)Frame-based Programming, Stream-Based Processing for Medical Image Processing ApplicationsJournal of Signal Processing Systems10.1007/s11265-018-1422-391:1(47-59)Online publication date: 1-Jan-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media