CPU (C++) & GPU (CUDA) Iterative closest point implementation
EPITA SCIA 2021 major GPGPU course project, made by :
- geoffrey.bossut ([email protected])
- guillaume.blassel ([email protected])
- tom.mechineau ([email protected])
- sabrina.meng ([email protected])
mkdir build
cd build
cat ../requirements.system | xargs sudo apt-get install
pip3 install -r ../requirements.txt
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
make
./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
./CPUICP ${FILE1} ${FILE2} ${NB_ITERS}
Four different implementations at your disposition:
- "-loop"
- "-shared"
- "-shared-loop"
- "-batch" Example:
./GPUICP ${FILE1} ${FILE2} ${NB_ITERS} -shared-loop
numpy + pandas testing for our linear algebra library
Testing mean, dotproduct and svd: (from the build folder)
python3 ../tests/test.py
Run every test{name} executables in the build folder to get usages and test out the features.
Example:
./testgpusvd ../data/3ptsP.txt
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}