Loading…
Designing Modular Hardware Accelerators in C with ROCCC 2.0
While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not comm...
Saved in:
Main Authors: | , , , |
---|---|
Format: | Conference Proceeding |
Language: | English |
Subjects: | |
Citations: | Items that cite this one |
Online Access: | Request full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c218t-a009044973363aa5233882b553c2fa2ee550791cb19eaad002f0cb2050bc29333 |
---|---|
cites | |
container_end_page | 134 |
container_issue | |
container_start_page | 127 |
container_title | |
container_volume | |
creator | Villarreal, Jason Park, Adrian Najjar, Walid Halstead, Robert |
description | While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not common among application developers and a process that is often tedious and error-prone. Programming FPGAs from high level languages would provide easier integration with software systems as well as open up hardware accelerators to a wider spectrum of application developers. In this paper, we present a major revision to the Riverside Optimizing Compiler for Configurable Circuits (ROCCC) designed to create hardware accelerators from C programs. Novel additions to ROCCC include (1) intuitive modular bottom-up design of circuits from C, and (2) separation of code generation from specific FPGA platforms. The additions we make do not introduce any new syntax to the C code and maintain the high level optimizations from the ROCCC system that generate efficient code. The modular code we support functions identically as software or hardware. Additionally, we enable user control of hardware optimizations such as systolic array generation and temporal common subexpression elimination. We evaluate the quality of the ROCCC 2.0 tool by comparing it to hand-written VHDL code. We show comparable clock frequencies and a 18% higher throughput. The productivity advantages of ROCCC 2.0 is evaluated using the metrics of lines of code and programming time showing an average of 15× improvement over hand-written VHDL. |
doi_str_mv | 10.1109/FCCM.2010.28 |
format | conference_proceeding |
fullrecord | <record><control><sourceid>ieee_6IE</sourceid><recordid>TN_cdi_ieee_primary_5474060</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>5474060</ieee_id><sourcerecordid>5474060</sourcerecordid><originalsourceid>FETCH-LOGICAL-c218t-a009044973363aa5233882b553c2fa2ee550791cb19eaad002f0cb2050bc29333</originalsourceid><addsrcrecordid>eNpVjEFLwzAYQCMyUGdv3rzkD7R--b6kafA0onPCxkD0PL6m6azUTdLK8N870Yunx4PHE-JKQaEUuJu596sC4ahYnYjM2Upp1NoqTXD6z5Em4uKndKiJ7JnIhuENAJQtS1LqXNzexaHb7rrdVq72zWfPSS44NQdOUc5CiH1MPO7TILud9PLQja_yae29l1jApZi03A8x--NUvMzvn_0iX64fHv1smQdU1ZgzgAOtnSUqidkgUVVhbQwFbBljNAasU6FWLjI3ANhCqBEM1AEdEU3F9e-3izFuPlL3zulrY7TVUAJ9A1kWRxQ</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Designing Modular Hardware Accelerators in C with ROCCC 2.0</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Villarreal, Jason ; Park, Adrian ; Najjar, Walid ; Halstead, Robert</creator><creatorcontrib>Villarreal, Jason ; Park, Adrian ; Najjar, Walid ; Halstead, Robert</creatorcontrib><description>While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not common among application developers and a process that is often tedious and error-prone. Programming FPGAs from high level languages would provide easier integration with software systems as well as open up hardware accelerators to a wider spectrum of application developers. In this paper, we present a major revision to the Riverside Optimizing Compiler for Configurable Circuits (ROCCC) designed to create hardware accelerators from C programs. Novel additions to ROCCC include (1) intuitive modular bottom-up design of circuits from C, and (2) separation of code generation from specific FPGA platforms. The additions we make do not introduce any new syntax to the C code and maintain the high level optimizations from the ROCCC system that generate efficient code. The modular code we support functions identically as software or hardware. Additionally, we enable user control of hardware optimizations such as systolic array generation and temporal common subexpression elimination. We evaluate the quality of the ROCCC 2.0 tool by comparing it to hand-written VHDL code. We show comparable clock frequencies and a 18% higher throughput. The productivity advantages of ROCCC 2.0 is evaluated using the metrics of lines of code and programming time showing an average of 15× improvement over hand-written VHDL.</description><identifier>ISBN: 9781424471423</identifier><identifier>ISBN: 0769540562</identifier><identifier>ISBN: 9780769540566</identifier><identifier>ISBN: 1424471427</identifier><identifier>EISBN: 9781424471430</identifier><identifier>EISBN: 1424471435</identifier><identifier>DOI: 10.1109/FCCM.2010.28</identifier><identifier>LCCN: 2010924337</identifier><language>eng</language><publisher>IEEE</publisher><subject>Application software ; C-to-VHDL ; Circuits ; Clocks ; Compilers ; Field programmable gate arrays ; FPGAs ; Frequency ; Hardware design languages ; High level languages ; High Level Synthesis ; Optimizing compilers ; Software systems ; Systolic arrays</subject><ispartof>2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines, 2010, p.127-134</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c218t-a009044973363aa5233882b553c2fa2ee550791cb19eaad002f0cb2050bc29333</citedby></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/5474060$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,776,780,785,786,2052,27902,54895</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/5474060$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Villarreal, Jason</creatorcontrib><creatorcontrib>Park, Adrian</creatorcontrib><creatorcontrib>Najjar, Walid</creatorcontrib><creatorcontrib>Halstead, Robert</creatorcontrib><title>Designing Modular Hardware Accelerators in C with ROCCC 2.0</title><title>2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines</title><addtitle>FCCM</addtitle><description>While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not common among application developers and a process that is often tedious and error-prone. Programming FPGAs from high level languages would provide easier integration with software systems as well as open up hardware accelerators to a wider spectrum of application developers. In this paper, we present a major revision to the Riverside Optimizing Compiler for Configurable Circuits (ROCCC) designed to create hardware accelerators from C programs. Novel additions to ROCCC include (1) intuitive modular bottom-up design of circuits from C, and (2) separation of code generation from specific FPGA platforms. The additions we make do not introduce any new syntax to the C code and maintain the high level optimizations from the ROCCC system that generate efficient code. The modular code we support functions identically as software or hardware. Additionally, we enable user control of hardware optimizations such as systolic array generation and temporal common subexpression elimination. We evaluate the quality of the ROCCC 2.0 tool by comparing it to hand-written VHDL code. We show comparable clock frequencies and a 18% higher throughput. The productivity advantages of ROCCC 2.0 is evaluated using the metrics of lines of code and programming time showing an average of 15× improvement over hand-written VHDL.</description><subject>Application software</subject><subject>C-to-VHDL</subject><subject>Circuits</subject><subject>Clocks</subject><subject>Compilers</subject><subject>Field programmable gate arrays</subject><subject>FPGAs</subject><subject>Frequency</subject><subject>Hardware design languages</subject><subject>High level languages</subject><subject>High Level Synthesis</subject><subject>Optimizing compilers</subject><subject>Software systems</subject><subject>Systolic arrays</subject><isbn>9781424471423</isbn><isbn>0769540562</isbn><isbn>9780769540566</isbn><isbn>1424471427</isbn><isbn>9781424471430</isbn><isbn>1424471435</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2010</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><recordid>eNpVjEFLwzAYQCMyUGdv3rzkD7R--b6kafA0onPCxkD0PL6m6azUTdLK8N870Yunx4PHE-JKQaEUuJu596sC4ahYnYjM2Upp1NoqTXD6z5Em4uKndKiJ7JnIhuENAJQtS1LqXNzexaHb7rrdVq72zWfPSS44NQdOUc5CiH1MPO7TILud9PLQja_yae29l1jApZi03A8x--NUvMzvn_0iX64fHv1smQdU1ZgzgAOtnSUqidkgUVVhbQwFbBljNAasU6FWLjI3ANhCqBEM1AEdEU3F9e-3izFuPlL3zulrY7TVUAJ9A1kWRxQ</recordid><startdate>201005</startdate><enddate>201005</enddate><creator>Villarreal, Jason</creator><creator>Park, Adrian</creator><creator>Najjar, Walid</creator><creator>Halstead, Robert</creator><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>201005</creationdate><title>Designing Modular Hardware Accelerators in C with ROCCC 2.0</title><author>Villarreal, Jason ; Park, Adrian ; Najjar, Walid ; Halstead, Robert</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c218t-a009044973363aa5233882b553c2fa2ee550791cb19eaad002f0cb2050bc29333</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2010</creationdate><topic>Application software</topic><topic>C-to-VHDL</topic><topic>Circuits</topic><topic>Clocks</topic><topic>Compilers</topic><topic>Field programmable gate arrays</topic><topic>FPGAs</topic><topic>Frequency</topic><topic>Hardware design languages</topic><topic>High level languages</topic><topic>High Level Synthesis</topic><topic>Optimizing compilers</topic><topic>Software systems</topic><topic>Systolic arrays</topic><toplevel>online_resources</toplevel><creatorcontrib>Villarreal, Jason</creatorcontrib><creatorcontrib>Park, Adrian</creatorcontrib><creatorcontrib>Najjar, Walid</creatorcontrib><creatorcontrib>Halstead, Robert</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Xplore</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Villarreal, Jason</au><au>Park, Adrian</au><au>Najjar, Walid</au><au>Halstead, Robert</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Designing Modular Hardware Accelerators in C with ROCCC 2.0</atitle><btitle>2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines</btitle><stitle>FCCM</stitle><date>2010-05</date><risdate>2010</risdate><spage>127</spage><epage>134</epage><pages>127-134</pages><isbn>9781424471423</isbn><isbn>0769540562</isbn><isbn>9780769540566</isbn><isbn>1424471427</isbn><eisbn>9781424471430</eisbn><eisbn>1424471435</eisbn><abstract>While FPGA-based hardware accelerators have repeatedly been demonstrated as a viable option, their programmability remains a major barrier to their wider acceptance by application code developers. These platforms are typically programmed in a low level hardware description language, a skill not common among application developers and a process that is often tedious and error-prone. Programming FPGAs from high level languages would provide easier integration with software systems as well as open up hardware accelerators to a wider spectrum of application developers. In this paper, we present a major revision to the Riverside Optimizing Compiler for Configurable Circuits (ROCCC) designed to create hardware accelerators from C programs. Novel additions to ROCCC include (1) intuitive modular bottom-up design of circuits from C, and (2) separation of code generation from specific FPGA platforms. The additions we make do not introduce any new syntax to the C code and maintain the high level optimizations from the ROCCC system that generate efficient code. The modular code we support functions identically as software or hardware. Additionally, we enable user control of hardware optimizations such as systolic array generation and temporal common subexpression elimination. We evaluate the quality of the ROCCC 2.0 tool by comparing it to hand-written VHDL code. We show comparable clock frequencies and a 18% higher throughput. The productivity advantages of ROCCC 2.0 is evaluated using the metrics of lines of code and programming time showing an average of 15× improvement over hand-written VHDL.</abstract><pub>IEEE</pub><doi>10.1109/FCCM.2010.28</doi><tpages>8</tpages></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | ISBN: 9781424471423 |
ispartof | 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines, 2010, p.127-134 |
issn | |
language | eng |
recordid | cdi_ieee_primary_5474060 |
source | IEEE Electronic Library (IEL) Conference Proceedings |
subjects | Application software C-to-VHDL Circuits Clocks Compilers Field programmable gate arrays FPGAs Frequency Hardware design languages High level languages High Level Synthesis Optimizing compilers Software systems Systolic arrays |
title | Designing Modular Hardware Accelerators in C with ROCCC 2.0 |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-01T01%3A53%3A22IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Designing%20Modular%20Hardware%20Accelerators%20in%20C%20with%20ROCCC%202.0&rft.btitle=2010%2018th%20IEEE%20Annual%20International%20Symposium%20on%20Field-Programmable%20Custom%20Computing%20Machines&rft.au=Villarreal,%20Jason&rft.date=2010-05&rft.spage=127&rft.epage=134&rft.pages=127-134&rft.isbn=9781424471423&rft.isbn_list=0769540562&rft.isbn_list=9780769540566&rft.isbn_list=1424471427&rft_id=info:doi/10.1109/FCCM.2010.28&rft.eisbn=9781424471430&rft.eisbn_list=1424471435&rft_dat=%3Cieee_6IE%3E5474060%3C/ieee_6IE%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c218t-a009044973363aa5233882b553c2fa2ee550791cb19eaad002f0cb2050bc29333%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=5474060&rfr_iscdi=true |