Nearest Neighbor in OpenCL
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 385
- Forks
- 102
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 9
Description
I'd like to start this discussion because I might research this topic when I get bored. I am not an OpenCL or CUDA expert (or even novice) so I'm putting my findings here as I go.
- https://forums.khronos.org/showthread.php/7402-kd-tree-nearest-neighbour
Summary: KDTree is not typically a great algorithm for GPUs, it is intentionally good for CPUs. At the end someone provides a link to their paper on a GPU-friendly KDTree algorithm. - https://github.com/gieseke/bufferkdtree
Python library with GPU OpenCL implementation with a mix of a KDTree and brute force algorithm. - HALMD: http://halmd.org/
C++ library advertised on Stackoverflow as "the fastest nearest neighbor algorithm on a GPU" - https://stackoverflow.com/questions/5381397/openclnearest-neighbour-using-euclidean-distance
Simple OpenCL code for a brute force "minimum distance between this point and all others" - https://arxiv.org/abs/0804.1448
Fast k Nearest Neighbor Search using GPU - https://github.com/Jackie-Chou/pyopencl_knn
- https://github.com/yszheda/OpenCL-knn-1GPU
- https://github.com/chrischoy/knn_cuda
Has a python wrapper and has lots of stars
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no repository files, entry points, or tests. Start by reviewing the linked OpenCL and GPU nearest-neighbor resources, including bufferkdtree, pyopencl_knn, and the cited papers. A concrete project scope and completion criteria would need to be established before implementation can be considered done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100