Abstract
This paper presents Sassy, a single-assignment variant of the C programming language developed in concert with Khoral Inc. and designed to exploit both coarse-grain and fine-grain parallelism in image processing applications. Sassy programs are written in the Khoros software development environment, and can be manipulated inside Cantata (the Khoros GUI). The Sassy language supports image processing with true multidimensional arrays, sophisticated array access and windowing mechanisms, and built-in reduction operators (e.g. histogram). At the same time, Sassy restricts C so as to enable compiler optimizations for parallel execution environments, with the goal of reducing data traffic, code size and execution time.
In particular, the Sassy language and its optimizing compiler target reconfigurable systems, which are fine-grain parallel processors. Reconfigurable systems consist of field-programmable gate arrays (FPGAs), memories and interconnection hardware, and can be used as inexpensive co-processors with conventional workstations or PCs. The compiler optimizations needed to generate highly optimal host, FPGA, and communication code, are discussed. The massive parallelism and high throughput of reconfigurable systems makes them well-suited to image processing tasks, but they have not previously been used in this context because they are typically programmed in hardware description languages such as VHDL. Sassy was developed as part of the Cameron project, with the goal of elevating the programming level for reconfigurable systems from hardware circuits to programming language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
F. Bodin, H. Essafi and M. Pic. A Specific Compilation Scheme for Image Processing Architecture. Computer Architectures for Machine Perception, Cambridge, MA, 1997, pp. 56–60.
S. Brown and J. Rose. Architecture of FPGAs and CPLDs: A Tutorial. IEEE Design and Test of Computers, Vol 12, number 2, pages 42–57, Summer 1996.
D. C. Cann. Retire Fortran? A Debate Rekindled. Communications of the ACM, Vol 35(8), 1992.
DataCube: http://www.datacube/com (or http://robocop.anu.edu.au/docs/MaxVideo250)
A. DeHon. Dynamically Programmable Gate Arrays: A Step Toward Increased Computational Density. Proc of Fourth Canadian Workshop of Field-Programmable Devices, Toronto, Canada, May 1996.
A. Fatni, D. Houzet and J. Basille. The C Data Parallel Language on a Shared Memory Multiprocessor. Computer Architectures for Machine Perception, Cambridge, MA, 1997, pp. 51–55.
A. J. Field and P. G. Harrison. Functional Programming. Addison-Wesley, 1988.
R. Hartenstein, J. Becker, R. Kress, H. Reinig and K. Schmidt. A Reconfigurable Machine for Applications in Image and Video Compression. Conf. on Compression Technologies and Standard for Image and Video Compression, Amsterdam, 1995.
D. Houzet and A. Fatni. A 1-D Linearly Expandable Interconnection Network Performance Analysis. IEEE Int. Conf. On Application Specific Array Processors, Venice, 1993, pp. 572–582.
J. Hammes, O. Lubeck, and A. P. W. Böhm. Comparing Id and Haskell in a Monte Carlo photon transport code. Journal of Functional Programming, Vol. 5, Part 3, pp 283–316, July 1995.
J. Hammes, S. Sur, and A. P. W. Böhm. On the effectiveness of functional language features: NAS benchmark FT. Journal of Functional Programming, Vol. 7, Part 1, pp 103–123, January 1997.
P. Hudak, S. Peyton Jones and P. Wadler eds. Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.2). ACM SIG-PLAN Notices, vol 27, number 5, 1992.
M. Maurer, R. Behringer, S. Fürst, F. Thomanek, E.D. Dickmanns. A Compact Vision System for Road Vehicle Guidance, International Conference on Pattern Recognition, Vienna, 1996. Vol. C, pp. 313–317.
D. MacQueen, R. Harper, R. Milner, et al. Functional Programming in ML. Lfcs education, University of Edinburgh, 1987.
J. McCarthy, et al. LISP 1.5 programmers manual. MIT Press, 1962.
J. McGrawet.al., SISAL: Streams and Iteration in a Single Assignment Language: Reference Manual Version 1.2, Lawrence Livermore National Laboratory, Memo M-146, Rev. 1, 1985.
J. Mundy. The Image Understanding Environment Progam. IEEE Expert, 10(6):64–73, 1995.
R. S. Nikhil. Id Version 90.0 Reference Manual. Computational Structures Group Memo 284-1, Massachusetts Institute of Technology, 1990.
Oxford Hardware Compilation Group. The Handel Language. Technical report, Oxford University, 1997.
D. Perry. VHDL. McGraw-Hill, 1993.
R. Petersen and B. Hutchings. An Assessment of the Suitability of FPGA-Based Systems for use in Digital Signal Processing. 5th Int. Workshop on Field-Programmable Logic and Applications, Oxford, 1995.
J. Rasure and S. Kubica. The KHOROS Application Development Environment. In H. I. Christenses and J. L. Crowley, editors, Experimental Environments for Computer Vision and Image Processing. World Scientific, New Jersey, 1994.
S. Umbaugh. Computer Vision and Image Processing: A Practical Approach using CVIPtools. Prentice Hall, New Jersey, 1998.
S. B. Scholz. Single Assignment C-Functional Programming Using Imperative Style. In Proc. of the 6th International Workshop on th Implementation of Functional Languages. University of East Anglia, 1994.
S. K. Skedzielewski, J. R. W. Glauert. IF1, an Intermediate Form for Applicative Languages. Refernce Manual, M-170, Lawrence Livermore National Laboratory, July 1985.
C. Weems and J. Burrill. “The Image Understanding Architecture and its Software Development Tools,” Applied Imagery and Pattern Recognition Workshop, McLean, VA, 1991.
M. Wolfe. High Performance Compilers for Parallel Computing. Addison-Wesley Publishing Company, 1996.
Xilinx. The Programmable Logic Data Book. Xilinx, Inc., San Jose, California, 1998.
H. Zima. Supercompilers for Parallel and Vector Computers. Addison-Wesley Publishing Company, 1990.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hammes, J.P., Draper, B.A., Willem Böhm, A.P. (1999). Sassy: A Language and Optimizing Compiler for Image Processing on Reconfigurable Computing Systems. In: Computer Vision Systems. ICVS 1999. Lecture Notes in Computer Science, vol 1542. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49256-9_6
Download citation
DOI: https://doi.org/10.1007/3-540-49256-9_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65459-9
Online ISBN: 978-3-540-49256-6
eBook Packages: Springer Book Archive