Code Monkey home page Code Monkey logo

csrs's Introduction

CSRS-DLL: A Library for Coherent Spherical Range-Search on GPUs

Lianping Xing, Charlie C.L. Wang and Kin-Chuen Hui

What is CSRS-DLL?

CSRS-DLL is a wrapped dynamic-link library for the research Coherent Spherical Range-Search for dynamic points on GPUs [1], which supports algorithms for exact spherical range-search in arbitrarily dimensions.

Range-search with a radius r for a query q on a set of data points P is an operation to find all the neighbors p the distances from which to q are not larger than r. As the range of search is a d-dimensional sphere, this is called spherical range-search (SRS).

Different from finding k approximate nearest neighbors (ANNs), exact SRS is needed in geometry processing and physical simulation to avoid missing small features. With the help of a balanced AABB-tree, the spatial coherence of query points and the temporal coherence of dynamic points are exploited to achieve very efficient range-search and hierarchical update.

The library provides the implementation of method presented in the following paper, where the source code can be found at the page: Project page. The purpose of this DLL is to allow developers, who are not familiar with the CUDA development, to benefit from the performance of highly parallel range search. Note that, in order to use CSRS-DLL, you only need to install the most updated driver for NVIDIA graphics card but not the CUDA development enviornment.

Video

Youtube

Getting Started

Choose the search method

Search_Method method = NEAREST;	 //GENERAL, DATAPNTS, NEAREST

Declare the search parameters

csrs_attr.data_nb = 100000;   // Data point number
csrs_attr.query_nb = 100000;   // Query point number
csrs_attr.dim = CSRS_PNT_DIM;   // Dimension of points
csrs_attr.bucket_size = 20;
csrs_attr.max_neighbor_num = (method == NEAREST) ? 1 : 350;

Initialize the search and query data

PrepareRandomData(data_pnts, query_pnts, query_radius, csrs_attr);

Perform searching and output the results

if (run_search(data_pnts, query_pnts, query_radius, ret_indexes, ret_dists, ret_neigh, method, csrs_attr, iterations)) {

Citation

If you use this code for your research, please cite our paper:

@article{CSRS2017,
  title={Coherent spherical range-search for dynamic points on GPUs},
  author={Xing, Lianping and Wang, Charlie C.L. and Hui, Kin-Chuen},
  journal={Computer-Aided Design},
  volume = {86},
  number = {C},
  pages = {12--25},
  year={2017}
}

Copyright

All rights about the program are reserved by Lianping Xing, Charlie C.L. Wang and Kin-Chuen Hui at the Department of Mechanical and Automation Engineering, The Chinese University of Hong Kong. In no event shall the author be liable to any party for direct, indirect, special, incidental, or consequential damage arising out of the use of this program.

csrs's People

Contributors

debbieleung avatar

Stargazers

John Lagerquist avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.