Abstract
It could be said that much of the evolution of computers has been the quest to make use of the exponentially-growing amount of on-chip circuitry that Moore predicted in 1965 – a trend that many now claim is coming to an end [1]. Whether that rate slows or not, it is no longer the driver; there is already more circuitry than can be continuously powered. The immediate future of parallel language and compiler technology should be less about finding and using parallelism and more about maximizing the return on investment of power.
Programming language constructs generally operate on data words, and so does most compiler analysis and transformation. However, individual word-level operations often harbor pointless, yet power hungry, lower-level operations. This paper suggests that parallel compilers should not only be identifying and manipulating massive parallelism, but that the analysis and transformations should go all the way down to the bit or gate level with the goal of maximizing parallel throughput per unit of power consumed. Several different ways in which compiler analysis can go lower than word-level are discussed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Fletcher, S.: Computing after Moore’s Law. Scientific American, 1 May 2015. https://www.scientificamerican.com/article/moores-law-computing-after-moores-law/
Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice Hall, Upper Saddle River (1978). ISBN 0-13-110163-3
Klerer, M., May, J.: Two-dimensional programming. In: Proceedings of the 30 November–1 December 1965, Fall Joint Computer Conference, Part I, pp. 63–75 (1965)
AMD: Radeon Instinct MI25. http://instinct.radeon.com/_downloads/radeon-instinct-mi25-datasheet-15.6.17.pdf. Accessed July 2017
IEEE: IEEE Standard for Binary Floating Point Arithmetic Std 754–1985 (1985)
Dietz, H., Dieter, B., Fisher, R., Chang, K.: Floating-point computation with just enough accuracy. In: Alexandrov, V.N., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds.) ICCS 2006. LNCS, vol. 3991, pp. 226–233. Springer, Heidelberg (2006). https://doi.org/10.1007/11758501_34
Chugh, M., Parhami, B.: Logarithmic arithmetic as an alternative to floating-point: a review. In: 2013 Asilomar Conference on Signals, Systems and Computers, pp. 1139–1143 (2013)
Fisher, R.J., Dietz, H.G.: Compiling for SIMD within a register. In: Chatterjee, S., Prins, J.F., Carter, L., Ferrante, J., Li, Z., Sehr, D., Yew, P.-C. (eds.) LCPC 1998. LNCS, vol. 1656, pp. 290–305. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48319-5_19. ISBN 978-3-540-48319-9
Lento, G.: Optimizing Performance with Intel Advanced Vector Extensions. Intel White Paper, September 2014
ARM: NEON. https://developer.arm.com/technologies/neon. Accessed July 2017
Waterman, A., Asanovic, K. (eds.): The RISC-V instruction set manual, volume 1: user-level ISA, Document Version 2.2. RISC-V Foundation, May 2017
Dietz, H.: Common subexpression induction. Technical report, TR-EE 92–5. School of Electrical Engineering, Purdue University, January 1992
Wilkes, M.V.: EDSAC 2. IEEE Ann. Hist. Comput. 14(4), 49–56 (1992). ISSN 1058-6180
Advanced Micro Devices: The Am 2900 Family Data Book With Related Support Circuits. Advanced Micro Devices (1979)
Reddaway, S.F.: DAP - a distributed array processor. In: Proceedings of the 1st Annual Symposium on Computer Architecture, pp. 61–65, ACM Press (1973)
Batcher, K.E.: STARAN parallel processor system hardware. In: National Computer Conference, pp. 405–410 (1974)
Batcher, K.: Design of a massively parallel processor. IEEE Trans. Comput. C–29(9), 836–840 (1980)
Tucker, L.W., Robertson, G.G.: Architecture and applications of the connection machine. IEEE Comput. 21(8), 26–38 (1988)
Morely, R.E., Sullivan, T.J.: A massively parallel systolic array processor system. In: Proceedings of the International Conference on Systolic Arrays, pp. 217–225 (1988)
Blank, T.: The MasPar MP-1 architecture. In: Thirty-Fifth IEEE Computer Society International Conference, Compcon, pp. 20–24 (1990)
Dietz, H.G., Arcot, S.D., Gorantla, S.: Much ado about almost nothing: compilation for nanocontrollers. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 466–480. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24644-2_30
Sawada, J., et al.: TrueNorth ecosystem for brain-inspired computing: scalable systems, software, and applications. In: IEEE/ACM SC16: International Conference for High Performance Computing, Networking, Storage and Analysis, pp. 130–141 (2016)
Brayton, R.K., Sangiovanni-Vincentelli, A.L., McMullen, C.T., Hachtel, G.D.: Logic Minimization Algorithms for VLSI Synthesis. Kluwer Academic Publishers, Dordrecht (1984). ISBN 0898381649
Patel, R.B., Ho, J., Ferreyrol, F., Ralph, T.C., Pryde, G.J.: A quantum Fredkin gate. Sci. Adv. 2(3) (2016)
Dietz, H.G.: Spring 2017 EE599-006/EE699-007 optimizing compilers, “hardly software” class project. Electrical and Computer Engineering Department, University of Kentucky, 5 May 2017
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Dietz, H. (2019). How Low Can You Go?. In: Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2017. Lecture Notes in Computer Science(), vol 11403. Springer, Cham. https://doi.org/10.1007/978-3-030-35225-7_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-35225-7_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-35224-0
Online ISBN: 978-3-030-35225-7
eBook Packages: Computer ScienceComputer Science (R0)