A Parallel Genetic Algorithm With Dispersion Correction for HW/SW Partitioning on Multi-Core CPU and Many-Core GPU

In hardware/software (HW/SW) co-design, hardware/software partitioning is an essential step in that it determines which components to be implemented in hardware and which ones in software. Most of HW/SW partitioning problems are NP hard. For large-size problems, heuristic methods have to be utilized. This paper presents a parallel genetic algorithm with dispersion correction for HW/SW partitioning on CPU-GPU. First, an enhanced genetic algorithm with dispersion correction is presented. The under-constraint individuals are marched to feasible region step by step. In this way, the intensification can be enhanced as well as the constraint problem can be handled. Second, the individuals performing costs computation and dispersion correction are run in parallel. For a given problem size, the overall run-time can be reduced while the diversity of genetic algorithm can be kept. Third, especially when a number of under-constraint individuals should be corrected in an irregular way, the computation process is complicated and the computation overhead is large. Therefore, we present a novel parallel strategy by leveraging the parallel power of a multi-core CPU and that of a many-core GPU. The proposed strategy computes the costs of each individual in parallel on GPU and corrects the under-constraint individuals in parallel on the multi-core CPU. In this way, a highly efficient parallel computing can be achieved in which dozens of irregular correction computing steps are mapped to the multi-core CPU and thousands of regular cost computing steps are mapped to the many-core GPU. Fourth, at each iteration of the hybrid parallel strategy, the solution vectors of individuals are transferred to the GPU and their costs are transferred back to the CPU. In order to further improve the efficiency of proposed algorithm, we propose an asynchronous transfer pattern (stream concurrency pattern) for CPU-GPU, in which the transfer process and computation process are overlapped and eventually the overall run-time can be reduced further. Finally, the experiments show that the solution quality obtained by our method is competitive with existing heuristic methods in reasonable time. Furthermore, by combining with the multi-core CPU and many-core GPU, the running time of the proposed method is efficiently reduced.

[1]  Giovanni De Micheli,et al.  Hardware-software cosynthesis for digital systems , 1993, IEEE Design & Test of Computers.

[2]  Yu Jiang,et al.  Uncertain Model and Algorithm for Hardware/Software Partitioning , 2012, 2012 IEEE Computer Society Annual Symposium on VLSI.

[3]  Xiao Chen,et al.  A parallel and robust object tracking approach synthesizing adaptive Bayesian learning and improved incremental subspace learning , 2019, Frontiers of Computer Science.

[4]  Tao Zhang,et al.  Comments on “Algorithmic Aspectsof Hardware/Software Partitioning:1D Search Algorithms” , 2014, IEEE Transactions on Computers.

[5]  Fazhi He,et al.  Using shapes correlation for active contour segmentation of uterine fibroid ultrasound images in computer-aided therapy , 2016 .

[6]  Mahmoud Al-Ayyoub,et al.  Accelerating compute intensive medical imaging segmentation algorithms using hybrid CPU-GPU implementations , 2017, Multimedia Tools and Applications.

[7]  Mohamed B. Abdelhalim,et al.  An integrated high-level hardware/software partitioning methodology , 2011, Des. Autom. Embed. Syst..

[8]  Mehdi Kamal,et al.  Parallel-Genetic-Algorithm-Based HW/SW Partitioning , 2006, International Symposium on Parallel Computing in Electrical Engineering (PARELEC'06).

[9]  Mouloud Koudil,et al.  Using artificial bees to solve partitioning and scheduling problems in codesign , 2007, Appl. Math. Comput..

[10]  P. Arato,et al.  Hardware-software partitioning in embedded system design , 2003, IEEE International Symposium on Intelligent Signal Processing, 2003.

[11]  Zoltán Ádám Mann,et al.  Algorithmic aspects of hardware/software partitioning , 2005, TODE.

[12]  Rajesh Gupta,et al.  Hardware Software Co-Design of Embedded Systems , 1996, VLSI Design.

[13]  Yi Zhou,et al.  Optimization of parallel iterated local search algorithms on graphics processing unit , 2016, The Journal of Supercomputing.

[14]  M. Montaz Ali,et al.  A Tabu Search-Based Memetic Algorithm for Hardware/Software Partitioning , 2014 .

[15]  Wayne H. Wolf A Decade of Hardware/Software Codesign , 2003, Computer.

[16]  Fazhi He,et al.  An Efficient Particle Swarm Optimization for Large-Scale Hardware/Software Co-Design System , 2017, Int. J. Cooperative Inf. Syst..

[17]  Siwar Ben Haj Hassine,et al.  Power and Execution Time Optimization through Hardware Software Partitioning Algorithm for Core Based Embedded System , 2017 .

[18]  Nithiyanantham Janakiraman,et al.  Multi-objective module partitioning design for dynamic and partial reconfigurable system-on-chip using genetic algorithm , 2014, J. Syst. Archit..

[19]  Yong Wang,et al.  An improved (μ + λ)-constrained differential evolution for constrained optimization , 2013, Inf. Sci..

[20]  R. A. Rahman,et al.  Evolutionary Algorithm with Roulette-Tournament Selection for Solving Aquaculture Diet Formulation , 2016 .

[21]  Hao Zhang,et al.  Research on Parallel HW/SW Partitioning Based on Hybrid PSO Algorithm , 2009, ICA3PP.

[22]  Guowu Yang,et al.  Uncertainty Model for Configurable Hardware/Software and Resource Partitioning , 2016, IEEE Transactions on Computers.

[23]  Gang Wang,et al.  Application partitioning on programmable platforms using the ant colony optimization , 2006, J. Embed. Comput..

[24]  Wu Jigang,et al.  NodeRank:An Efficient Algorithm for Hardware/Software Partitioning , 2014 .

[25]  Deming Chen,et al.  Accurate high-level modeling and automated hardware/software co-design for effective SoC design space exploration , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[26]  Yuan Cheng,et al.  A string-wise CRDT algorithm for smart and large-scale collaborative editing systems , 2017, Adv. Eng. Informatics.

[27]  Jürgen Teich,et al.  Hardware/Software Codesign: The Past, the Present, and Predicting the Future , 2012, Proceedings of the IEEE.

[28]  Fazhi He,et al.  A Novel Hardware/Software Partitioning Method Based on Position Disturbed Particle Swarm Optimization with Invasive Weed Optimization , 2017, Journal of Computer Science and Technology.

[29]  Cong Wang,et al.  HARDWARE/SOFTWARE PARTITIONING ALGORITHM BASED ON THE COMBINATION OF GENETIC ALGORITHM AND TABU SEARCH , 2014 .

[30]  Yiqi Wu,et al.  A local start search algorithm to compute exact Hausdorff Distance for arbitrary point sets , 2017, Pattern Recognit..

[31]  Fazhi He,et al.  Quantitative optimization of interoperability during feature-based data exchange , 2015, Integr. Comput. Aided Eng..

[32]  Yuan Cheng,et al.  Meta-operation conflict resolution for human–human interaction in collaborative feature-based CAD systems , 2016, Cluster Computing.

[33]  Wenlei Xiao,et al.  Efficient GPU out-of-core visualization of large-scale CAD models with voxel representations , 2016, Adv. Eng. Softw..

[34]  Kun Zhou,et al.  Efficient GPU path rendering using scanline rasterization , 2016, ACM Trans. Graph..

[35]  Xiao Chen,et al.  Real-time object tracking via compressive feature selection , 2016, Frontiers of Computer Science.

[36]  Yi Zhou,et al.  Dynamic strategy based parallel ant colony optimization on GPUs for TSPs , 2017, Science China Information Sciences.

[37]  Zoltán Ádám Mann,et al.  Finding optimal hardware/software partitions , 2007, Formal Methods Syst. Des..

[38]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[39]  Wu Jigang,et al.  Algorithmic Aspects of Hardware/Software Partitioning: 1D Search Algorithms , 2010, IEEE Transactions on Computers.

[40]  Jörg Henkel,et al.  An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[41]  Wu Jigang,et al.  Efficient heuristic and tabu search for hardware/software partitioning , 2013, The Journal of Supercomputing.

[42]  Thambipillai Srikanthan,et al.  KnapSim - Run-time efficient hardware-software partitioning technique for FPGAs , 2015, 2015 28th IEEE International System-on-Chip Conference (SOCC).

[43]  Fazhi He,et al.  Service-Oriented Feature-Based Data Exchange for Cloud-Based Design and Manufacturing , 2018, IEEE Transactions on Services Computing.

[44]  Wu Jigang,et al.  Algorithms for bi-objective multiple-choice hardware/software partitioning , 2016, Comput. Electr. Eng..

[45]  Ijcsis A Comprehensive Survey on Hardware/Software Partitioning Process in Co-Design , 2016 .

[46]  Pier Luca Lanzi,et al.  Ant Colony Optimization for mapping, scheduling and placing in reconfigurable systems , 2013, 2013 NASA/ESA Conference on Adaptive Hardware and Systems (AHS-2013).

[47]  Ch. Mallikarjuna Rao,et al.  GPU Based Video Tracking System , 2016, 2016 IEEE Tenth International Conference on Semantic Computing (ICSC).

[48]  Fazhi He,et al.  A correlative classifiers approach based on particle filter and sample set for tracking occluded target , 2017 .

[49]  Lucas C. Cordeiro,et al.  Applying SMT-based verification to hardware/software partitioning in embedded systems , 2016, Des. Autom. Embed. Syst..

[50]  Xin Zhao,et al.  Using Blind Optimization Algorithm for Hardware/Software Partitioning , 2017, IEEE Access.

[51]  Amir-Hossein Jahangir,et al.  A polynomial algorithm for partitioning problems , 2010, TECS.

[52]  Bin Li,et al.  A hardware/software partitioning algorithm based on artificial immune principles , 2008, Appl. Soft Comput..

[53]  Jörg Henkel,et al.  Hardware-software cosynthesis for microcontrollers , 1993, IEEE Design & Test of Computers.