1.
GPU Computation in Bioinspired Algorithms. A review M.G. Arenas, A.M. Mora, G. Romero, P.A. Castillo Depto. Arquitectura y Tecnología de Computadores
2.
GPU Computation in Bioinspired Algorithms. A review1. Introduction• Growing interest in GPU computation• A GPU is able to perform graphics manipulation at high speed• Developers can write their own high-level programs to run on GPU• These architectures suited to run large computational problems (bioinformatics area)
3.
GPU Computation in Bioinspired Algorithms. A review1. Introduction• GPUs can be seen as SIMD multi-core processors• Internally the GPU contains a number of small processors that are used to perform calculations• Depending on the GPU, the number of threads that can be executed in parallel is in the order of hundreds
4.
GPU Computation in Bioinspired Algorithms. A reviewIndex1. Introduction2. Throughput, parallelism and GPUs3. GPUs Programming4. Bioinspired Methods on GPUs5. Conclusions
5.
GPU Computation in Bioinspired Algorithms. A review2. Throughput, parallelism and GPUs• For years, processor makers increased clock rates and instruction- level paralelism => sequential code run faster• Nowadays, they design multicore-chips => software adapted to multithreaded / multiprocess
6.
GPU Computation in Bioinspired Algorithms. A review2. Throughput, parallelism and GPUs• GPUs have matured, becoming general purpose computational devices for highly parallel work-loads
7.
GPU Computation in Bioinspired Algorithms. A reviewIndex1. Introduction2. Throughput, parallelism and GPUs3. GPUs Programming4. Bioinspired Methods on GPUs5. Conclusions
8.
GPU Computation in Bioinspired Algorithms. A review3. GPUs Programming. Programming Model• APIs based on C-like languages• nVidia => GeForce => CUDA• ATI => Radeon => Close to metal• Aple => OpenCL• Microsoft => DirectCompute
9.
GPU Computation in Bioinspired Algorithms. A review3. GPUs Programming. Programming Model• OpenCL applications: • GPUs, multi-core CPUs, FPGAs • portable across different platforms • keep functionality and correctness
10.
GPU Computation in Bioinspired Algorithms. A review3. GPUs Programming. Execution Model• Applications have serial portions and parallel portions (kernel)• A kernel applies a single stream of instructions to many data (SIMD)
11.
GPU Computation in Bioinspired Algorithms. A review3. GPUs Programming. Execution Model• Terminology: – Each piece of data = work-item (thread) – A kernel has thousands of work-items – A kernel is organized into many work-groups (thread block) – Each work-group process many work-items
12.
GPU Computation in Bioinspired Algorithms. A review3. GPUs Programming. Memory Model• Define how the data is stored and communicated between CPU and GPU• Global memory CPU->rw / work-items->rw• Constant memory CPU->rw / work-items->ro• Private memory CPU->X / single work-item->rw• Local memory CPU->X / work-group->rw
13.
GPU Computation in Bioinspired Algorithms. A reviewIndex1. Introduction2. Throughput, parallelism and GPUs3. GPUs Programming4. Bioinspired Methods on GPUs5. Conclusions
14.
GPU Computation in Bioinspired Algorithms. A review4. Bioinspired Methods on GPUs• Review of different evolutionary computation approaches using GPU• Master-slave• Fine-grained• Island-model• ANN on GPUs
15.
GPU Computation in Bioinspired Algorithms. A review4.1 Master-slave approaches:• Some actions are executed in the CPU (main loop)• Evaluation and mutation are run on GPU• Competition and selection are performed on the CPU, while mutation, reproduction and evaluation on the GPU CPU GPU
16.
GPU Computation in Bioinspired Algorithms. A review4.1 Master-slave approachesReferences• Zhang, S., He, Z.: Implementation of parallel genetic algorithm based on cuda. In et al., Z.C., Lecture Notes in Computer Science, vol 5821. 2009• Wong, M., Wong, T., Fok, K.: Parallel evolutionary algorithms on graphics processing unit. CEC 2005• Harding, S., Banzhaf, W.: Fast genetic programming and artificial developmental systems on gpus. High Performance Computing Systems and Applications. 2007
17.
GPU Computation in Bioinspired Algorithms. A review4.2 Fine-grained approaches:• The whole evolutionary process is run on the GPU• Each EA individual is set to each GPU processor• Store individuals and fitness in the GPU global memory• Problem: random number generation (on CPU)
18.
GPU Computation in Bioinspired Algorithms. A review4.2 Fine-grained approachesReferences• Wong, M., Wong, T.: Parallel hybrid genetic algorithms on Consumer-Level graphics hardware. CEC 2006• Wong, M., Wong, T.: Implementation of parallel genetic algorithms on graphics processing units. Studies in Computational Intelligence, vol 187, pp. 197–216. 2009• Yu, Q., Chen, C., Pan, Z.: Parallel genetic algorithms on programmable graphics hardware. Lecture Notes in Computer Science, vol 3612, pp. 1051–1059. 2005• Luo, Z., Liu, H.: Cellular genetic algorithms and local search for 3-SAT problem on graphic hardware. CEC 2006• Li, J.,Wang, X., He, R., Chi, Z.: An efficient fine-grained parallel genetic algorithm based on GPU-Accelerated. Network and Parallel Computing Workshop. 2007• Li, J., Zhang, L., Liu, L.: A parallel immune algorithm based on fine-grained model with gpu-acceleration. International Conference on Innovative Computing. 2009• Vidal, P., Alba, E.: Cellular genetic algorithm on graphic processing units. NICSO 2010
19.
GPU Computation in Bioinspired Algorithms. A review4.3 Coarse-grained approaches (island model):• Code an “island” (EA) on GPU• Generate the initial population on CPU and copy it to the GPU VRAM• Each subpopulation evolves in each GPU processor• At some generations, individuals in subpopulations are shuffled via the GPU VRAM
20.
GPU Computation in Bioinspired Algorithms. A review4.3 Island-model approachesReferences• Pospichal, P., Jaros., J.: Gpu-based acceleration of the genetic algorithm. Technical report, GECOO competition (2009)• Tsutsui, S., Fujimoto, N.: Solving quadratic assignment problems by genetic algorithms with gpu computation: a case study. GECCO 2009• Luong, T.V., Melab, N., Talbi, E.G.: GPU-based Island Model for Evolutionary Algorithms. GECCO 2010• Pospichal, P., Jaros, J., Schwarz, J.: Parallel genetic algorithm on the cuda architecture. Lecture Notes in Computer Science, vol 6024. 2010• Pospichal, P., Schwarz, J., Jaros, J.: Parallel genetic algorithm solving 0/1 knapsack problem running on the gpu. International Conference on Soft Computing 2010
21.
GPU Computation in Bioinspired Algorithms. A review4.4 ANN approaches• Widely used in pattern recognition• Usually the computation for ANN is inherently parallel• However, many algorithms require some steps that are difficult to parallelize
22.
GPU Computation in Bioinspired Algorithms. A review4.4 ANN approachesReferences• http://www.irontaco.com/Documents/MeuthNeuralGPGPUSurvey.pdf• Kyoung-Su Oh, Keechul Jung, GPU implementation of neural networks, Pattern Recognition, vol. 37, n.6, 2004• Z.Luo, H. Liu and X.Wu, Artificial Neural Network Computation on Graphic Process Unit, IJCNN 2005• M. Martínez-Zarzuela et al. Fuzzy ART Neural Network Parallel Computing on the GPU. IWANN 2007Libraries:• http://www.codeproject.com/KB/graphics/GPUNN.aspx
23.
GPU Computation in Bioinspired Algorithms. A reviewIndex1. Introduction2. Throughput, parallelism and GPUs3. GPUs Programming4. Bioinspired Methods on GPUs5. Conclusions
24.
GPU Computation in Bioinspired Algorithms. A review5. Conclusions• GPU computing approach• Overview current programming languages and software tools• Review the use of GPUs to implement bioinspired algorithms
25.
GPU Computation in Bioinspired Algorithms. A review5. Conclusions• Most of the bioinspired methods use the GPU to speed-up the fitness evaluation• Competition and selection are performed on CPU• Fitness, mutation and reproduction are performed on GPU• Speed-ups up to several thousands times higher on GPU compared to CPU sequential versions
26.
GPU Computation in Bioinspired Algorithms. A review Thank you! pedro@atc.ugr.eshttp://atc.ugr.es/~pedro/research/gpu/
Be the first to comment