bdice / neighbor

A flexible, templated GPU library of neighbor search algorithms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

neighbor

A header-only library of GPU neighbor search algorithms based on bounding volume hierarchies. For additional details, please refer to the following publications:

Dependencies

For installation:

  • CMake >= 3.9

To use with NVIDIA GPUs:

To use with AMD GPUs:

Optionally:

  • hipper header-only GPU runtime interoperability layer. If not found, it will be added as a git submodule.
  • upp11 header-only test library. If not found, it will be downloaded automatically to the build directory.

Compiling

The neighbor library is header-only. It can be installed via CMake:

cmake ..
make install

(It can be included as part of an existing project, or simply downloaded.) CMake projects can discover the installation using find_package in CONFIG mode and should link against the neighbor::neighbor target.

neighbor will select between a CUDA or HIP build using the NEIGHBOR_HIP define. If NEIGHBOR_HIP=ON, neighbor will use HIP for the GPU runtime, and both NVIDIA and AMD GPUs are supported. If NEIGHBOR_HIP=OFF, neighbor will use CUDA for the GPU runtime. If only NVIDIA GPUs are targeted, performance may be slightly improved by setting NEIGHBOR_HIP=OFF.

Testing

If neighbor is being built directly by CMake, tests can optionally be built with a working CUDA or HIP installation by setting NEIGHBOR_TEST=ON. Run the included test suite with ctest.

Versioning

This library is currently under development, so APIs may change between all minor versions in 0.x. Stability of the API will be guaranteed between minor versions beginning with 1.x.

About

A flexible, templated GPU library of neighbor search algorithms.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 46.2%Language:Cuda 29.3%Language:CMake 24.3%Language:C 0.2%