Version 5 (modified by nakasato, 13 years ago) (diff) |
---|
Implementation of a Parallel Tree Method on a GPU
by N.Nakasato (Journal of Computational Science)
abstract
The kd-tree is a fundamental tool in computer science. Among other applications, the application of kd-tree search (by the tree method) to the fast evaluation of particle interactions and neighbor search is highly important, since the computational complexity of these problems is reduced from O(N2) for a brute force method to O(N log N) for the tree method, where N is the number of particles. In this paper, we present a parallel implementation of the tree method running on a graphics processing unit (GPU). We present a detailed description of how we have implemented the tree method on a Cypress GPU. An optimization that we found important is localized particle ordering to effectively utilize cache memory. We present a number of test results and performance measurements. Our results show that the execution of the tree traversal in a force calculation on a GPU is practical and efficient.
Link
http://dx.doi.org/10.1016/j.jocs.2011.01.006
Recent Update (201112)
Here is a recent resulst with AMD APP OpenCL SDK verstion 2.5 on Cayman (Radeon 6970). Thanks for much better cache treatment in AMD OpenSDK, our OpenCL version outperforms our IL version. "VL" refers to the explicit vector length in our new tree walk kernel in OpenCL.
Attachments (2)
- tree_cayman.png (63.2 KB) - added by nakasato 13 years ago.
- tree_comparison.png (53.1 KB) - added by nakasato 13 years ago.
Download all attachments as: .zip