Git Product home page Git Product logo

icp's Introduction

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}

icp's People

Contributors

fanatoniq avatar tomatodelavegas avatar asukasas avatar unterfox avatar

Stargazers

 avatar

Watchers

 avatar

icp's Issues

cpu icp functions not usable in gpu icp testing binary

Leads CMakeLists

  • use .o
  • make src/cpu/icp.cpp as static lib
  • add src/cpu/icp.cpp to cmakelist sources (but not libgpualg sources... rather alongside each compile main cpp)

Sidenote: it would be smarter for our libs used a lot to dynamic link instead

Cmake cuda Release build

-DCMAKE_BUILD_TYPE=RELEASE does not work... we shall add release build capability to cmakelists.txt for cuda

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.