Enhancing Design Space Exploration by Extending CPU/GPU Specifications onto FPGAs

The design cycle for complex special-purpose computing systems is extremely costly and time-consuming. It involves a multiparametric design space exploration for optimization, followed by design verification. Designers of special purpose VLSI implementations often need to explore parameters, such as optimal bitwidth and data representation, through time-consuming Monte Carlo simulations. A prominent example of this simulation-based exploration process is the design of decoders for error correcting systems, such as the Low-Density Parity-Check (LDPC) codes adopted by modern communication standards, which involves thousands of Monte Carlo runs for each design point. Currently, high-performance computing offers a wide set of acceleration options that range from multicore CPUs to Graphics Processing Units (GPUs) and Field Programmable Gate Arrays (FPGAs). The exploitation of diverse target architectures is typically associated with developing multiple code versions, often using distinct programming paradigms. In this context, we evaluate the concept of retargeting a single OpenCL program to multiple platforms, thereby significantly reducing design time. A single OpenCL-based parallel kernel is used without modifications or code tuning on multicore CPUs, GPUs, and FPGAs. We use SOpenCL (Silicon to OpenCL), a tool that automatically converts OpenCL kernels to RTL in order to introduce FPGAs as a potential platform to efficiently execute simulations coded in OpenCL. We use LDPC decoding simulations as a case study. Experimental results were obtained by testing a variety of regular and irregular LDPC codes that range from short/medium (e.g., 8,000 bit) to long length (e.g., 64,800 bit) DVB-S2 codes. We observe that, depending on the design parameters to be simulated, on the dimension and phase of the design, the GPU or FPGA may suit different purposes more conveniently, thus providing different acceleration factors over conventional multicore CPUs.

[1]  Jason Cong,et al.  AutoPilot: A Platform-Based ESL Synthesis System , 2008 .

[2]  Erik Perrins,et al.  Using Functional Programming to Generate an LDPC Forward Error Corrector , 2011, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines.

[3]  Akila Gothandaraman,et al.  Comparing Hardware Accelerators in Scientific Applications: A Case Study , 2011, IEEE Transactions on Parallel and Distributed Systems.

[4]  H. Jin,et al.  Irregular repeat accumulate codes , 2000 .

[5]  Muhsen Owaida,et al.  Massively parallel programming models used as hardware description languages: The OpenCL case , 2011, 2011 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[6]  Leonel Sousa,et al.  Portable LDPC Decoding on Multicores Using OpenCL [Applications Corner] , 2012, IEEE Signal Processing Magazine.

[7]  Frank R. Kschischang,et al.  Staircase Codes: FEC for 100 Gb/s OTN , 2012, Journal of Lightwave Technology.

[8]  Jason Helge Anderson,et al.  LegUp: high-level synthesis for FPGA-based processor/accelerator systems , 2011, FPGA '11.

[9]  Josep Llosa,et al.  Swing module scheduling: a lifetime-sensitive approach , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[10]  Markus Rupp,et al.  Rapid prototyping for wireless designs: the five-ones approach , 2003, Signal Process..

[11]  Muhsen Owaida,et al.  Synthesis of Platform Architectures from OpenCL Programs , 2011, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines.

[12]  B. Ramakrishna Rau,et al.  PICO: Automatically Designing Custom Computers , 2002, Computer.

[13]  Robert G. Gallager,et al.  Low-density parity-check codes , 1962, IRE Trans. Inf. Theory.

[14]  Chaitali Chakrabarti,et al.  Transpose-free SAR imaging on FPGA platform , 2012, 2012 IEEE International Symposium on Circuits and Systems.

[15]  Mark Stephenson,et al.  Bidwidth analysis with application to silicon compilation , 2000, PLDI '00.

[16]  Jason Cong,et al.  FCUDA: Enabling efficient compilation of CUDA kernels onto FPGAs , 2009, 2009 IEEE 7th Symposium on Application Specific Processors.

[17]  J. Xu OpenCL – The Open Standard for Parallel Programming of Heterogeneous Systems , 2009 .

[18]  John Wawrzynek,et al.  OpenRCL: Low-Power High-Performance Computing with Reconfigurable Devices , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[19]  Mustafa Eroz,et al.  DVB‐S2 low density parity check codes with near Shannon limit performance , 2004, Int. J. Satell. Commun. Netw..

[20]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[21]  Leonel Sousa,et al.  GPU-based DVB-S2 LDPC decoder with high throughput and fast error floor detection , 2011 .

[22]  Stephen B. Wicker,et al.  Fundamentals of Codes, Graphs, and Iterative Decoding , 2002 .

[23]  Hamid Laga,et al.  CUDA (Computer Unified Device Architecture) , 2009 .

[24]  IennePaolo,et al.  Enhancing Design Space Exploration by Extending CPU/GPU Specifications onto FPGAs , 2015 .

[25]  Philippe Coussy,et al.  High-Level Synthesis: from Algorithm to Digital Circuit , 2008 .

[26]  Wayne Luk,et al.  Performance Comparison of Graphics Processors to Reconfigurable Logic: A Case Study , 2010, IEEE Transactions on Computers.