Abstract
Riverside optimizing compiler for configurable computing (ROCCC) was started as a project at The University of California, Riverside in 2002. To put in a historical context: Field programmable gate arrays (FPGAs) were much smaller, and slower, then they are today (2015); Graphics processing units (GPUs) were used exclusively for graphics; reconfigurable computing was taking shape as a research area but not yet within the main stream of academic research, let alone in industrial production. However, multiple research projects had already demonstrated, many times over, the clear advantages and potentials of this nascent paradigm as an alternative that combines the re-programmability advantages of fixed data path devices (Central processing units (CPUs), Digital signal processors (DSPs) and GPUs) with the high speed of custom hardware (Application-specific integrated circuits (ASICs)). Within that time frame, the nearly exclusive focus of reconfigurable computing was on signal and image processing because of their streaming nature. Video processing was considered a future possibility to be realized when the size (area) and bandwidth capabilities of FPGAs got larger.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The source code and documentation (including User and Developers Manuals), on ROCCC can be found on https://github.com/nxt4hll/roccc-2.0 and http://roccc.cs.ucr.edu.
- 2.
We use the term target platform to indicate the architecture of the board around the FPGA device(s) including memory banks, I/O ports etc.
References
B. Buyukkurt, J. Cortes, J. Villarreal, and W. A. Najjar. Impact of high-level transformations within the ROCCC framework. ACM Trans. Archit. Code Optim., 7(4):17:1–17:36, December 2010.
Convey Computers. http://www.conveycomputer.com/, 2015. [Online; accessed 2-April].
E. Fernandez, J. Villarreal, S. Lonardi, and W. Najjar. FHAST: FPGA-based acceleration of Bowtie in hardware. Computational Biology and Bioinformatics, IEEE/ACM Transactions on, PP(99):1–1, 2015.
Z. Guo, A. Buyukkurt, J. Cortes, A. Mitra, and W. Najjart. A compiler intermediate representation for reconfigurable fabrics. International Journal of Parallel Programming (IJPP), 36(5):493–520, October 2008.
Z. Guo, B. Buyukkurt, and W. Najjar. Input data reuse in compiling window operations onto reconfigurable hardware. In ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems, pages 249–256, New York, NY, USA, June 2004. ACM Press.
Z. Guo, W. Najjar, and B. Buyukkurt. Efficient hardware code generation for FPGAs. ACM Transaction on Architecture and Code Optimizations (TACO), 5(1):26, May 2008.
R. J. Halstead, I. Absalyamov, W. A. Najjar, and V. J. Tsotras. FPGA-based multithreading for in-memory hash joins. In CIDR 2015, Seventh Biennial Conference on Innovative Data Systems Research, Asilomar, CA, USA, January 4-7, 2015, Online Proceedings, 2015.
R. J. Halstead, J. R. Villarreal, and W. A. Najjar. Compiling irregular applications for reconfigurable systems. IJHPCN International Journal of High-Performance Computing and Networking, 7(4):258–268, 2014.
C. Lattner and V. Adve. LLVM: A compilation framework for lifelong program analysis & transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization, CGO ’04, pages 75–88, Washington, DC, USA, 2004. IEEE Computer Society.
LLVM. LLVM - Low Level Virtual Machine, 2015. http://www.llvm.org [Online; accessed 1-April].
W. A. Najjar, A. P. W. Böhm, B. A. Draper, J. Hammes, R. Rinker, J. R. Beveridge, M. Chawathe, and C. Ross. High-level language abstraction for reconfigurable computing. IEEE Computer, 36(8):63–69, 2003.
R. P. Wilson, R. S. French, C. S. Wilson, S. P. Amarasinghe, J. M. Anderson, S. W. K. Tjiang, S.-W. Liao, C.-W. Tseng, M. W. Hall, M. S. Lam, and J. L. Hennessy. SUIF: An infrastructure for research on parallelizing and optimizing compilers. SIGPLAN Not., 29(12):31–37, December 1994.
Acknowledgements
The development of ROCCC at UC Riverside was supported, in part, by NSF Grants CCF-0745490, CCF-0811416, CCF-0905509, IIS-1144158, IIS-1161997, CCF-1219180. The development of ROCCC 2.0 from the initial ROCCC toolset was carried out at Jacquard Computing Inc. supported by the US Air Force Research Lab contract FA945309C0173.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Najjar, W.A., Villarreal, J., Halstead, R.J. (2016). ROCCC 2.0. In: Koch, D., Hannig, F., Ziener, D. (eds) FPGAs for Software Programmers. Springer, Cham. https://doi.org/10.1007/978-3-319-26408-0_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-26408-0_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-26406-6
Online ISBN: 978-3-319-26408-0
eBook Packages: EngineeringEngineering (R0)