A Fixed Point Arithmetic Library for Spinnaker
Total Page:16
File Type:pdf, Size:1020Kb
A fixed point arithmetic library for SpiNNaker A dissertation submitted to the University of Manchester for the degree of Master of Science in the Faculty of Engineering and Physical Sciences -2012- Mircea Moise School of Computer Science Mircea Moise – A fixed point arithmetic library for SpiNNaker Contents Contents .............................................................................................................. 2 List of tables ....................................................................................................... 4 List of figures ...................................................................................................... 5 Abstract ............................................................................................................... 6 Declaration ......................................................................................................... 7 Intellectual property statement .......................................................................... 8 Acknowledgement .............................................................................................. 9 Chapter 1 Introduction ..................................................................................... 10 1.1 Motivation ................................................................................................................. 10 1.2 Aim and Objectives .................................................................................................. 12 1.3 Report Structure ....................................................................................................... 12 Chapter 2 Context ............................................................................................. 14 2.1 SpiNNaker ................................................................................................................. 14 2.2 ARM ........................................................................................................................... 18 2.3 Number representation systems ............................................................................. 20 2.4 Software implementation for fixed point arithmetic ........................................... 21 2.5 Summary .................................................................................................................... 22 Chapter 3 Research Methods ........................................................................... 23 3.1 Project outline ........................................................................................................... 23 3.2 Methodology for assessing algorithms .................................................................. 24 3.3 Tools used .................................................................................................................. 26 3.4 Evaluation strategy ................................................................................................... 27 3.5 Summary .................................................................................................................... 28 Chapter 4 Theoretical Background .................................................................. 29 4.1 Taylor series approximation .................................................................................... 29 4.2 Chebyshev polynomials ........................................................................................... 30 4.3 Newton-Raphson iteration ...................................................................................... 32 4.4 CORDIC algorithms ................................................................................................ 33 2 Mircea Moise – A fixed point arithmetic library for SpiNNaker 4.5 Normalization algorithms ........................................................................................ 35 4.6 Normalization to shorter intervals ......................................................................... 36 4.7 Use of lookup tables................................................................................................. 37 4.8 Summary .................................................................................................................... 38 Chapter 5 Algorithm assessment ...................................................................... 39 5.1 Division ...................................................................................................................... 39 5.2 Square Root ............................................................................................................... 42 5.3 Logarithm .................................................................................................................. 44 5.4 Exponential ............................................................................................................... 47 5.5 Simple trigonometric functions – sine and cosine ............................................... 49 5.6 Summary .................................................................................................................... 54 Chapter 6 Implementation ............................................................................... 55 6.1 Testing approach ...................................................................................................... 55 6.2 Testing framework.................................................................................................... 58 6.3 Libraries overview .................................................................................................... 62 6.4 Basic library ............................................................................................................... 63 6.5 Math library ............................................................................................................... 68 6.6 Debugging library ..................................................................................................... 75 6.7 Summary .................................................................................................................... 77 Chapter 7 Evaluation ........................................................................................ 78 7.1 Evaluation criteria ..................................................................................................... 78 7.2 Software usability ...................................................................................................... 79 7.3 Accuracy ..................................................................................................................... 81 7.4 Efficiency ................................................................................................................... 85 7.5 Summary .................................................................................................................... 90 Chapter 8 Conclusions and future work ........................................................... 91 Appendix A ....................................................................................................... 94 Bibliography ..................................................................................................... 96 Word count: 27 960 3 Mircea Moise – A fixed point arithmetic library for SpiNNaker List of tables Table 1 SpiNNaker machine description .......................................................................... 14 Table 2 Impact of VFP unit on ARM core....................................................................... 20 Table 3 Useful trigonometric formulas ............................................................................. 50 Table 4 Maximum error for Taylor series - sine algorithm ............................................ 51 Table 5 Maximum error for power series - sine algorithm ............................................. 52 Table 6 Maximum error for CORDIC - sine algorithm ................................................. 53 Table 7 Types of validation used ........................................................................................ 57 Table 8 Interpreter – description of methods .................................................................. 61 Table 9 MinUnit description ............................................................................................... 62 Table 10 Libraries description ............................................................................................ 63 Table 11 Names used for functions ................................................................................... 81 Table 12 Division evaluation results - Random case ....................................................... 83 Table 13 Square root evaluation results - Random case ................................................. 84 Table 14 Logarithm evaluation results - Random case ................................................... 84 Table 15 Exponential evaluation results ........................................................................... 85 Table 16 Sin evaluation results ........................................................................................... 85 Table 17 Efficiency results – exponential ......................................................................... 88 Table 18 Efficiency evalutation – logarithm ..................................................................... 88 Table 19 Efficiency evaluation - square root .................................................................... 88 Table 20 Efficiency evaluation - sinus ..............................................................................