Final Project Implementing Extremely Randomized Trees in CUDA
Department of Electrical Engineering, Stanford, CA
Technical report, Pervasive Parallelism Laboratory, Stanford University
@article{gearyfinal,
title={Final Project Implementing Extremely Randomized Trees in CUDA},
author={Geary, M.A. and Lee, H.J. and Signorelli, D. and Vaughan, J.}
}
In this paper, we present an implementation of extremely randomized trees (ERT), a supervised machine learning algorithm utilizing decision tree ensembles, in CUDA, nVidia’s GPU parallel programming extensions for C/C++. We describe the CUDA programming model and NVIDIA GPU architectures and explain the design tradeoffs that we made to exploit various forms of parallelism available in ERT. Furthermore, we provide the performance results of our algorithm executing on an NVIDIA GPU and compare its performance and scalability with sequential and OpenMP-based C++ implementations. Finally, we reflect on our performance results and our experiences while programming and debugging our algorithm in order to evaluate the suitability of CUDA for ERT and suggest alternative approaches to and future work on implementing ERT in CUDA.
February 20, 2011 by hgpu