Data processing in FPGA-based systems

More than 50% of FPGA market is in the scope of communication and information. Data processing is a very broad area that is important for numerous computations, networking, embedded systems, Internet-based applications, etc. Many problems in this area are computationally intensive and thus, they require parallelization and acceleration based on new technologies. FPGAs can be seen as a very attractive platform permitting application-specific software and problem-targeted hardware to be combined on a single configurable microchip. The tutorial is dedicated to hardware-oriented data processing algorithms with emphasis on parallelism and pipelining. FPGA-targeted design flow is based on the rational use of configurable logic blocks/logic elements and embedded components (DSP slices and block RAMs). Particular examples, potential practical applications, experiments and comparisons will be demonstrated.

[1]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[2]  Valery Sklyarov,et al.  Architecture of a Reconfigurable Processor for Implementing Search Algorithm over Discrete Matrices , 2003, Engineering of Reconfigurable Systems and Algorithms.

[3]  Valery Sklyarov,et al.  Implementation in FPGA of Address-Based Data Sorting , 2011, 2011 21st International Conference on Field Programmable Logic and Applications.

[4]  Iouliia Skliarova,et al.  Reconfigurable hardware SAT solvers: a survey of systems , 2003, IEEE Transactions on Computers.

[5]  Robert Sedgewick,et al.  Algorithms in C , 1990 .

[6]  Jim Tørresen,et al.  FPGASort: a high performance sorting architecture exploiting run-time reconfiguration on fpgas for large problem sorting , 2011, FPGA '11.

[7]  Gustavo Alonso,et al.  Sorting networks on FPGAs , 2012, The VLDB Journal.

[8]  Valery Sklyarov,et al.  Parallel FPGA-Based Implementation of Recursive Sorting Algorithms , 2010, 2010 International Conference on Reconfigurable Computing and FPGAs.

[9]  Valery Sklyarov,et al.  Processing tree-like data structures for sorting and managing priorities , 2011, 2011 IEEE Symposium on Computers & Informatics.

[10]  Satnam Singh,et al.  Kiwi: Synthesis of FPGA Circuits from Parallel Programs , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[11]  Roger D. Chamberlain,et al.  Sorting on architecturally diverse computer systems , 2009, HPRCTA '09.

[12]  Masato Edahiro,et al.  Parallelizing fundamental algorithms such as sorting on multi-core processors for EDA acceleration , 2009, 2009 Asia and South Pacific Design Automation Conference.

[13]  Cristian Grozea,et al.  FPGA vs. Multi-core CPUs vs. GPUs: Hands-On Experience with a Sorting Application , 2010, Facing the Multicore-Challenge.

[14]  Fabrizio Silvestri,et al.  Sorting on GPUs for large scale datasets: A thorough comparison , 2012, Inf. Process. Manag..

[15]  Valery Sklyarov,et al.  DESIGN METHODS FOR FPGA-BASED IMPLEMENTATION OF COMBINATORIAL SEARCH ALGORITHMS , 2006 .

[16]  Rafael C Núñez,et al.  LAPACKrc: Fast linear algebra kernels/solvers for FPGA accelerators , 2009 .

[17]  René Müller,et al.  Data Stream Processing on Embedded Devices , 2010 .

[18]  Michael Garland,et al.  Designing efficient sorting algorithms for manycore GPUs , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[19]  Kevin Skadron,et al.  Accelerating Compute-Intensive Applications with GPUs and FPGAs , 2008, 2008 Symposium on Application Specific Processors.

[20]  Y. Mukaigawa,et al.  Large Deviations Estimates for Some Non-local Equations I. Fast Decaying Kernels and Explicit Bounds , 2022 .

[21]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[22]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[23]  Fang Yu,et al.  A practical reconfigurable hardware accelerator for boolean satisfiability solvers , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[24]  Valery Sklyarov,et al.  Implementation of address-based data sorting on different FPGA platforms , 2013, East-West Design & Test Symposium (EWDTS 2013).

[25]  Robert Sedgewick,et al.  Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition , 1998 .

[26]  Gustavo Alonso,et al.  Frequent Item Computation on a Chip , 2011, IEEE Transactions on Knowledge and Data Engineering.

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

[28]  Dongrui Fan,et al.  High performance comparison-based sorting algorithm on many-core GPUs , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[29]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[30]  Philippas Tsigas,et al.  A Practical Quicksort Algorithm for Graphics Processors , 2008, ESA.