Abstract
Stream programming is a promising step towards portable, efficient, correct use of parallelism. A stream program is built from kernels that communicate only through point-to-point streams. The stream compiler maps a portable stream program onto the target, automatically sizing communications buffers and applying optimizing transformations such as blocking, task fission and task fusion.
This paper presents the Abstract Streaming Machine (ASM), the machine description and performance model used by the ACOTES stream compiler. We explain how the parameters of the ASM and the ASM coarse-grain simulator are used by the partitioning and queue length assignment phases of the ACOTES compiler. Our experiments on the Cell Broadband Engine show that the predictions from the ASM have a maximum relative error of 15% across our benchmarks.
This article is an extended version of a paper presented at SAMOS 2009Â [1].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Advanced Compiler Technologies for Embedded Streaming.
References
Carpenter, P.M., Ramirez, A., Ayguade, E.: The abstract streaming machine: compile-time performance modelling of stream programs on heterogeneous multiprocessors. In: Bertels, K., Dimopoulos, N., Silvano, C., Wong, S. (eds.) SAMOS 2009. LNCS, vol. 5657, pp. 12–23. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03138-0_3
Olukotun, K., Hammond, L.: The future of microprocessors. Queue 3(7), 26–29 (2005)
Amdahl, G.: Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the 18–20 April 1967, Spring Joint Computer Conference, pp. 483–485. ACM, New York (1967)
Kumar, R., Tullsen, D., Jouppi, N., Ranganathan, P.: Heterogeneous chip multiprocessors. Computer 38(11), 32–38 (2005)
Chaoui, J., et al.: OMAP: enabling multimedia applications in third generation (3G) wireless terminals. SWPA001 (2000)
Hirata, K., Goodacre, J.: ARM MPCore; the streamlined and scalable ARM11 processor core. In: ASP-DAC 2007: Proceedings of the 2007 Asia and South Pacific Design Automation Conference, pp. 747–748. IEEE Computer Society, Washington, DC (2007)
Intel: IXP2850 Network Processor: Hardware Reference Manual (2004)
Dutta, S., Jensen, R., Rieckmann, A.: Viper: a multiprocessor SOC for advanced set-top box and digital TV systems. In: IEEE Design & Test of Computers, pp. 21–31 (2001)
Artieri, A., Alto, V., Chesson, R., Hopkins, M., Rossi, M.: Nomadik open multimedia platform for next-generation mobile devices. STMicroelectronics Technical Article TA305 (2003)
ClearSpeed: CSX Processor Architecture (2005). http://www.clearspeed.com/docs/resources/ClearSpeed_Architecture_Whitepaper_Feb07v2.pdf
Chen, T., Raghavan, R., Dale, J., Iwata, E.: Cell Broadband Engine Architecture and its first implementation. IBM developerWorks (2005)
Asanovic, K., et al.: The landscape of parallel computing research: a view from Berkeley. Technical report UCB/EECS-2006-183, University of California, Berkeley (2006)
ACOTES IST-034869: Advanced Compiler Technologies for Embedded Streaming. http://www.hitech-projects.com/euprojects/ACOTES/
Munk, H., et al.: ACOTES project: advanced compiler technologies for embedded streaming. Int. J. Parallel Program. 1–54 (2010). https://doi.org/10.1007/s10766-010-0132-7
Carpenter, P., Rodenas, D., Martorell, X., Ramirez, A., Ayguadé, E.: A streaming machine description and programming model. In: Vassiliadis, S., Bereković, M., Hämäläinen, T.D. (eds.) SAMOS 2007. LNCS, vol. 4599, pp. 107–116. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73625-7_13
ACOTES: IST ACOTES Project Deliverable D2.2 Report on Streaming Programming Model and Abstract Streaming Machine Description Final Version (2008)
Balart, J., Duran, A., Gonzalez, M., Martorell, X., Ayguade, E., Labarta, J.: Nanos Mercurium: a research compiler for OpenMP. In: Proceedings of the European Workshop on OpenMP, vol. 2004 (2004)
Carpenter, P.M., Ramirez, A., Ayguadé, E.: Buffer sizing for self-timed stream programs on heterogeneous distributed memory multiprocessors. In: Patt, Y.N., Foglia, P., Duesterwald, E., Faraboschi, P., Martorell, X. (eds.) HiPEAC 2010. LNCS, vol. 5952, pp. 96–110. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11515-8_9
Carpenter, P.M., Ramirez, A., Ayguade, E.: Mapping stream programs onto heterogeneous multiprocessor systems. In: CASES 2009, pp. 57–66 (2009)
Fursin, G., Cohen, A.: Building a practical iterative interactive compiler. In: 1st Workshop on Statistical and Machine Learning Approaches Applied to Architectures and Compilation (SMART 2007) (2007)
Stephens, R.: A survey of stream processing. Acta Informatica 34(7), 491–541 (1997)
Kahn, G.: The semantics of a simple language for parallel processing. Inf. Process. 74, 471–475 (1974)
van der Wolf, P., de Kock, E., Henriksson, T., Kruijtzer, W., Essink, G.: Design and programming of embedded multiprocessors: an interface-centric approach. In: Proceedings of the 2nd IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, pp. 206–217 (2004)
Girona, S., Labarta, J., Badia, R.M.: Validation of dimemas communication model for MPI collective operations. In: Dongarra, J., Kacsuk, P., Podhorszki, N. (eds.) EuroPVM/MPI 2000. LNCS, vol. 1908, pp. 39–46. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-45255-9_9
CEPBA: PARAVER Performance Visualization and Analysis Tool. http://www.cepba.upc.edu/paraver/
GNU Radio. http://www.gnu.org/software/gnuradio/
Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: a language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 179–196. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45937-5_14
Lee, E., Messerschmitt, D.: Synchronous data flow. Proc. IEEE 75(9), 1235–1245 (1987)
Gummaraju, J., Rosenblum, M.: Stream programming on general-purpose processors. In: Proceedings of MICRO 38, Barcelona, Spain, November 2005
Fauth, A., Van Praet, J., Freericks, M.: Describing instruction set processors using nML. In: Proceedings of the 1995 European Conference on Design and Test, 503 (1995)
Halambi, A., Grun, P., Ganesh, V., Khare, A., Dutt, N., Nicolau, A.: EXPRESSION: a language for architecture exploration through compiler/simulator retargetability. In: Proceedings of the Conference on Design, Automation and Test in Europe (1999)
Ramsey, N., Davidson, J., Fernandez, M.: Design principles for machine-description languages (1998). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.128.204
Labonte, F., Mattson, P., Thies, W., Buck, I., Kozyrakis, C., Horowitz, M.: The stream virtual machine. In: Proceedings of PACT, pp. 267–277 (2004)
Mattson, P., Thies, W., Hammond, L., Vahey, M.: Streaming virtual machine specification 1.0. Technical report (2004). http://www.morphware.org
Mattson, P.: PCA Machine Model, 1.0. Technical report (2004)
Kienhuis, B.: Design Space Exploration of Stream-based Dataflow Architectures: Methods and Tools. Delft University of Technology, The Netherlands (1999)
Gordon, M., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In: Proceedings of ASPLOS 2006, pp. 151–162 (2006)
Lundgren, W., Barnes, K., Steed, J.: Gedae: auto coding to a virtual machine. In: Proceedings of HPEC (2004)
Kupriyanov, A., Hannig, F., Kissler, D., Teich, J., Schaffer, R., Merker, R.: An architecture description language for massively parallel processor architectures. In: Proceedings 9th ITG/GMM/GI Workshop, Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (2006)
Acknowledgements
The researchers at BSC-UPC were supported by the Spanish Ministry of Science and Innovation (contract no. TIN2007-60625), the European Commission in the context of the ACOTES project (contract no. IST-34869) and the HiPEAC Network of Excellence (contract no. IST-004408). We would also like to acknowledge our partners in the ACOTES project for the insightful discussions on the topics presented in this paper.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer-Verlag GmbH Germany, part of Springer Nature
About this chapter
Cite this chapter
Carpenter, P.M., Ramirez, A., Ayguade, E. (2019). The Abstract Streaming Machine: Compile-Time Performance Modelling of Stream Programs on Heterogeneous Multiprocessors. In: Silvano, C., Bertels, K., Schulte, M. (eds) Transactions on High-Performance Embedded Architectures and Compilers V. Lecture Notes in Computer Science(), vol 11225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-58834-5_5
Download citation
DOI: https://doi.org/10.1007/978-3-662-58834-5_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-58833-8
Online ISBN: 978-3-662-58834-5
eBook Packages: Computer ScienceComputer Science (R0)