Implementation of elementary functions for FPGA compute accelerators

Field programmable gate arrays (FPGA) are growing from the role of glue logic into the area of application acceleration and compute. This is fostered by advances in silicon technologies as well as standards based methodologies for interacting with heterogeneous compute resources. As these standards generally require the implementation of elementary functions, this work outlines the implementation and evaluation of the elementary functions required by the heterogeneous programming standard OpenCL. It outlines the implementation of the math “builtin” functions using CORDIC methods and details the processes that will be taken to benchmark the resource usage, maximum frequency, and latency of each function on Xilinx 7 Series FPGAs. Because of the applicability and standardization of the OpenCL math functions, this benchmarking effort provides a basis for understanding and analysing future implementations.

[1]  Ray Andraka,et al.  A survey of CORDIC algorithms for FPGA based computers , 1998, FPGA '98.

[2]  Jean-Michel Muller,et al.  Computing Functions cos^{-1} and sin^{-1} Using Cordic , 1993, IEEE Trans. Computers.

[3]  Sergio Andreozzi,et al.  Answering the Cost Assessment Scaling Challenge: Modelling the Annual Cost of European Computing Services for Research , 2014, Journal of Grid Computing.

[4]  Behrooz Parhami,et al.  Computer arithmetic - algorithms and hardware designs , 1999 .

[5]  Jason Cong,et al.  High-Level Synthesis for FPGAs: From Prototyping to Deployment , 2011, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[6]  J. S. Walther,et al.  A unified algorithm for elementary functions , 1899, AFIPS '71 (Spring).

[7]  Tomás Lang,et al.  CORDIC-based computation of ArcCos and ArcSin , 1997, Proceedings IEEE International Conference on Application-Specific Systems, Architectures and Processors.

[8]  J. Muller Elementary Functions , 1997, Birkhäuser Boston.

[9]  Shuzo Yajima,et al.  Redundant CORDIC Methods with a Constant Scale Factor for Sine and Cosine Computation , 1991, IEEE Trans. Computers.

[10]  Junshe An,et al.  A Low Latency High-Throughput Elementary Function Generator Based on Enhanced Double Rotation CORDIC , 2014, 2014 IEEE Symposium on Computer Applications and Communications.

[11]  Tomás Lang,et al.  CORDIC Vectoring with Arbitrary Target Value , 1998, IEEE Trans. Computers.

[12]  Wu-chun Feng,et al.  Trends in energy-efficient computing: A perspective from the Green500 , 2013, 2013 International Green Computing Conference Proceedings.

[13]  Jack E. Volder The CORDIC Trigonometric Computing Technique , 1959, IRE Trans. Electron. Comput..