Skip to content
/ ICP Public

CPU (C++) & GPU (CUDA) Iterative closest point implementation

Notifications You must be signed in to change notification settings

FanatoniQ/ICP

Repository files navigation

ICP

CPU (C++) & GPU (CUDA) Iterative closest point implementation

Build + Tests (master)

Authors

EPITA SCIA 2021 major GPGPU course project, made by :

Installation

mkdir build
cd build
cat ../requirements.system | xargs sudo apt-get install
pip3 install -r ../requirements.txt
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
make

Example Usage

./CPUICP ../data/30points_notebook_P.txt ../data/30points_notebook_Q.txt 5
./GPUICP ../data/30points_notebook_P.txt ../data/30points_notebook_Q.txt 5 -shared-loop

Options

CPU

./CPUICP ${FILE1} ${FILE2} ${NB_ITERS}

GPU

Four different implementations at your disposition:

  • "-loop"
  • "-shared"
  • "-shared-loop"
  • "-batch" Example:
./GPUICP ${FILE1} ${FILE2} ${NB_ITERS} -shared-loop

Testing

liblinalg (CPU)

numpy + pandas testing for our linear algebra library

Testing mean, dotproduct and svd: (from the build folder)

python3 ../tests/test.py

Extra tests

Run every test{name} executables in the build folder to get usages and test out the features.

Example:

./testgpusvd ../data/3ptsP.txt

Benchmark

cd build/
cp ../tests/benchmark.sh .

Without full metrics:

./benchmark method={loop|batch|shared|shared-loop} ${FILE1} ${FILE2} ${NB_ITERS}

With full metrics:

./benchmark method={metric-loop|metric-batch|metric-shared|metric-shared-loop} ${FILE1} ${FILE2} ${NB_ITERS}

Creates a file "metric.nvvp" in current folder

Example:

./benchmark metric-shared-loop ${FILE1} ${FILE2} ${NB_ITERS}

About

CPU (C++) & GPU (CUDA) Iterative closest point implementation

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •