Implementing algorithms on FPGAs using high-level languages and low-level libraries

Bruce, R. and Chamberlain, R. and Devlin, M. and Marshall, S. (2006) Implementing algorithms on FPGAs using high-level languages and low-level libraries. In: 2006 ACM/IEEE conference on Supercomputing, 2006-11-04 - 2006-11-04. (https://doi.org/10.1145/1188455.1188614)

Full text not available in this repository.Request a copy

Abstract

Until relatively recently, users of FPGA-based computers have needed electronic-design skills to implement high-performance computing (HPC) algorithms. With the advent of high-level languages for FPGAs it is possible for non-experts in FPGA design to implement algorithms by describing them in a high-level syntax. A natural progression from developing high-level languages is to develop low-level libraries that support them.DIME-C is a high-level language that takes a subset of ANSI C as its input and outputs auto-generated hardware description language (HDL) and pre-synthesised netlists. Within DIME-C, the authors have implemented a math library composed of single-precision, floating-point, elementary functions such as the natural exponential and logarithm. Complex, fully-pipelined algorithms can be described in ANSI-compatible C and implemented on FPGAs, delivering orders of magnitude speed-up over microprocessor implementations. Work is ongoing, expanding the library.The poster will detail project motivations and direction, speedup and resource-use measurements, C-code examples and multi-fpga examples.