A Parallel Algorithm for Game Tree Search Using GPGPU

Game tree search is a classical problem in the field of game theory and artificial intelligence. Fast game tree search algorithm is critical for computer games asking for real-time responses. In this paper, we focus on how to leverage massive parallelism capabilities of GPU to accelerate the speed of game tree search algorithms and propose a concise and general parallel game tree search algorithm on GPU. The performance model of our algorithm is presented and analyzed theoretically. We implement the algorithm for two real computer games called Connect6 and Chess. We also use these two games to verify the effectiveness and efficiency of our algorithm. Experiments support our theoretical results and show good performance of our approach. Compared to classical CPU-based game tree search algorithms, our algorithm can achieve speedups of 89.95x for Connect6 and 11.43x for Chess, in case of no pruning. When pruning is considered, which means the practical performance of our algorithm, the speedup can reach about 10.58x for Connect6 and 7.26x for Chess. The insight of our work is that using GPU is a feasible way to improve the performance of game tree search algorithms.

[1]  Burkhard Monien,et al.  Distributed Game Tree Search on a Massively Parallel System , 1992, Data Structures and Efficient Algorithms.

[2]  Peter Sanders,et al.  Parallel Game Tree Search on SIMD Machines , 1995, IRREGULAR.

[3]  T. Anthony Marsland,et al.  A Comparison of Minimax Tree Search Algorithms , 1983, Artif. Intell..

[4]  Dhabaleswar K. Panda,et al.  GPU-Aware MPI on RDMA-Enabled Clusters: Design, Implementation and Evaluation , 2014, IEEE Transactions on Parallel and Distributed Systems.

[5]  Arie E. Kaufman,et al.  GPU Cluster for High Performance Computing , 2004, Proceedings of the ACM/IEEE SC2004 Conference.

[6]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[7]  Lim Yew Jin ON FORWARD PRUNING IN GAME-TREE SEARCH , 2007 .

[8]  Damjan Strnad,et al.  Parallel alpha-beta algorithm on the GPU , 2011, Proceedings of the ITI 2011, 33rd International Conference on Information Technology Interfaces.

[9]  Robert M. Hyatt,et al.  A High-Performance Parallel Algorithm to Search Depth-First Game Trees , 1988, J. Int. Comput. Games Assoc..

[10]  Gagan Agrawal,et al.  An integer programming framework for optimizing shared memory use on GPUs , 2010, 2010 International Conference on High Performance Computing.

[11]  Robert M. Hyatt The Dynamic Tree-Splitting Parallel Search Algorithm , 1997, J. Int. Comput. Games Assoc..

[12]  Kevin Crowley,et al.  Flexible Strategy Use in Young Children's Tic-Tac-Toe , 1993, Cogn. Sci..

[13]  H. Jaap van den Herik,et al.  Games solved: Now and in the future , 2002, Artif. Intell..

[14]  Gagan Agrawal,et al.  Approaches for parallelizing reductions on modern GPUs , 2010, 2010 International Conference on High Performance Computing.

[15]  Jonathan Schaeffer,et al.  Asynchronous parallel game-tree search , 1998 .

[16]  Valavan Manohararajah Parallel alpha-beta search on shared memory multiprocessors , 2001 .

[17]  Avi Bleiweiss,et al.  GPU accelerated pathfinding , 2008, GH '08.

[18]  Wu-chun Feng,et al.  Petascale Application of a Coupled CPU-GPU Algorithm for Simulation and Analysis of Multiphase Flow Solutions in Porous Medium Systems , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[19]  Claude E. Shannon,et al.  Programming a computer for playing chess , 1950 .

[20]  David P. Luebke,et al.  CUDA: Scalable parallel programming for high-performance scientific computing , 2008, 2008 5th IEEE International Symposium on Biomedical Imaging: From Nano to Macro.

[21]  Kiran Kumar Matam,et al.  Efficient Discrete Range Searching primitives on the GPU with applications , 2010, 2010 International Conference on High Performance Computing.

[22]  Jean-Christophe Weill The ABDADA Distributed Minimax-Search Algorithm , 1996, J. Int. Comput. Games Assoc..

[23]  Donald E. Knuth,et al.  The Solution for the Branching Factor of the Alpha-Beta Pruning Algorithm , 1981, ICALP.

[24]  Jonathan Schaeffer,et al.  Distributed game-tree search using transposition table driven work scheduling , 2002, Proceedings International Conference on Parallel Processing.

[25]  Hao Wang,et al.  cuBLASTP: Fine-Grained Parallelization of Protein Sequence Search on a GPU , 2017, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[26]  Jonathan Schaeffer,et al.  APHID: Asynchronous Parallel Game-Tree Search , 2000, J. Parallel Distributed Comput..

[27]  Mark G. Brockington,et al.  A Taxonomy of Parallel Game-Tree Search Algorithms , 1996, J. Int. Comput. Games Assoc..

[28]  John Tromp,et al.  Combinatorics of Go , 2006, Computers and Games.

[29]  Murray Campbell,et al.  Deep Blue , 2002, Artif. Intell..

[30]  Burkhard Monien,et al.  A Distributed Algorithm to Evaluate Quantified Boolean Formulae , 2000, AAAI/IAAI.

[31]  Richard M. Karp,et al.  On parallel evaluation of game trees , 1989, SPAA '89.

[32]  Fred Popowich,et al.  Parallel Game-Tree Search , 1985, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[33]  Vipin Kumar,et al.  Unstructured Tree Search on SIMD Parallel Computers , 1994, IEEE Trans. Parallel Distributed Syst..

[34]  José D. P. Rolim,et al.  Parallel Algorithms for Irregularly Structured Problems , 1995, Lecture Notes in Computer Science.

[35]  Kamil Rocki,et al.  Large-Scale Parallel Monte Carlo Tree Search on GPU , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[36]  Kamil Rocki,et al.  Parallel Minimax Tree Searching on GPU , 2009, PPAM.

[37]  I-Chen Wu,et al.  A New Family of k-in-a-Row Games , 2006, ACG.

[38]  Jonathan Schaeffer,et al.  Distributed Game-Tree Searching , 1989, J. Parallel Distributed Comput..

[39]  Changming Xu,et al.  Enhancements of proof number search in connect6 , 2009, 2009 Chinese Control and Decision Conference.