Abstract
Go is a fascinating game that has yet to be played well by a computer program due to its large board size and exponential time complexity. This paper presents a GPU implementation of PV-Split, a parallel implementation of a widely used game tree search algorithm for two-player zero-sum games. With many game trees, it often takes too much time to traverse the entire tree, but theoretically, the deeper the tree is traversed, the more accurate the best move found will be. By parallelizing the Go game tree search, we have successfully reduced the computation time, enabling deeper levels of the tree to be reached in smaller amounts of time. Results for the sequential and GPU implementations were compared, and the highest speedup achieved with the parallel algorithm was approximately 72x at 6 levels deep in the game tree. Although there has been related work with respect to game tree searches on the GPU, no exact best move search algorithms have been presented for Go, which uses significantly more memory due to its large board size. This paper also presents a technique for reducing the amount of required memory from previous game tree traversal methods while still allowing each processing element to play out games independently.
Chapter PDF
Similar content being viewed by others
References
Comparision between chess and go. http://users.eniinternet.com/bradleym/Compare.html
Cuda toolkit documentation. https://docs.nvidia.com/cuda/index.html
The mystery of go, the ancient game that computers still can’t win. http://www.wired.com/2014/05/the-world-of-computer-go/
Campbell, M., Hoane, A.J., Hsu, F.H.: Deep blue. Artificial Intelligence 134(1), 57–83 (2002)
Chou, C.W., Chou, P.C., Doghmen, H., Lee, C.S., Su, T.C., Teytaud, F., Teytaud, O., Wang, H.M., Wang, M.H., Wu, L.W., et al.: Towards a solution of 7x7 go with meta-MCTS. In: Advances in Computer Games, pp. 84–95. Springer (2012)
Elnaggar, A., Gadallah, M., Aziem, M.A., Aldeeb, H., et al.: Autonomous checkers robot using enhanced massive parallel game tree search. In: 2014 9th International Conference on Informatics and Systems (INFOS), pp. PDC–35. IEEE (2014)
Elnaggar, A.A., Aziem, M.A., Gadallah, M., El-Deeb, H.: A comparative study of game tree searching methods. International Journal of Advanced Computer Science and Applications (IJACSA) 5(5) (2014)
Li, L., Liu, H., Wang, H., Liu, T., Li, W.: A parallel algorithm for game tree search using GPGPU (2014)
Marsland, T.A., Campbell, M.: Parallel search of strongly ordered game trees. ACM Computing Surveys (CSUR) 14(4), 533–551 (1982)
Sanders, J., Kandrot, E.: CUDA by example: an introduction to general-purpose GPU programming. Addison-Wesley Professional (2010)
Sipser, M.: Introduction to the Theory of Computation. Cengage Learning (2012)
Strnad, D., Guid, N.: Parallel alpha-beta algorithm on the GPU. In: 2011 33rd International Conference on Information Technology Interfaces (ITI), Proceedings of the ITI, pp. 571–576. IEEE (2011)
van der Werf, E.C., Van Den Herik, H.J., Uiterwijk, J.W.: Solving go on small boards. ICGA Journal 26(2), 92–107 (2003)
van der Werf, E.C.D.: AI techniques for the game of Go. UPM, Universitaire Pers Maastricht (2005)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Johnson, C., Barford, L., Dascalu, S.M., Harris, F.C. (2016). CUDA Implementation of Computer Go Game Tree Search. In: Latifi, S. (eds) Information Technology: New Generations. Advances in Intelligent Systems and Computing, vol 448. Springer, Cham. https://doi.org/10.1007/978-3-319-32467-8_31
Download citation
DOI: https://doi.org/10.1007/978-3-319-32467-8_31
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-32466-1
Online ISBN: 978-3-319-32467-8
eBook Packages: EngineeringEngineering (R0)